型?


リー  2005-07-02 17:43:23  No: 123201  IP: [192.*.*.*]

文字列 "ok" から型 'Integer' へのキャストが有効ではありません。
は何?どういったエラーなんです?

編集 削除
LESIA  2005-07-02 17:52:15  No: 123202  IP: [192.*.*.*]

型'Integer'は数値なので、文字列"ok"を数値にすることは出来ないという
ことでは?

編集 削除
暑くてバテバテ  2005-07-02 17:54:50  No: 123203  IP: [192.*.*.*]

環境とエラーが発生した箇所のコードをどうぞ!!

編集 削除
リー  2005-07-02 17:55:44  No: 123204  IP: [192.*.*.*]

じゃどうすれば、最初、数値が入っていた、ラベルに文字列"ok"を入れられるんですか?

編集 削除
暑くてバテバテ  2005-07-02 17:59:12  No: 123205  IP: [192.*.*.*]

数値が入っていたラベルではなく数値に見える文字列が入っている
ラベルだと思います。

編集 削除
通ってみた  2005-07-02 20:19:38  No: 123206  IP: [192.*.*.*]

Labelだったら普通に

Label1.caption = "ok"

でも

Label1.caption = "100"

でも
・・・どこに問題が?

編集 削除
LESIA  2005-07-03 10:04:53  No: 123207  IP: [192.*.*.*]

Labelに文字列を入れるだけなら、最初に入っていたのが
何かは関係ないと思います。

VB6だと暗黙の型変換がおこなわれるので、VB.NETだと
思いますが、どういうコードを書いてエラーになるの
かを掲示していただけないと適切な回答は得られない
ですよ。

編集 削除
マグ  2005-07-03 11:56:41  No: 123208  IP: [192.*.*.*]

キャストに関してのエラーが発生するなら、VB.NETの可能性が高いと思います。
それに質問でIntegerと記載されている時点でVB.NETですし・・・

>Labelに文字列を入れるだけなら、最初に入っていたのが
>何かは関係ないと思います。
推測ですが、リーさんは
TextBox2.Text = CInt(TextBox1.Text)

TextBox2.Text = CType(TextBox1.Text, Integer)
どちらかをしたかったのかな?と思います。

私なら
Try
    TextBox2.Text = CType(TextBox1.Text, Integer)
Catch ex As Exception
    TextBox2.Text = 0
End Try
のように組むかも?
もっといいコーティング方法があるかも?

編集 削除
マグ  2005-07-03 12:01:08  No: 123209  IP: [192.*.*.*]

あっ・・・・
すみません。
4番目のレスを読み飛ばしていました。
上に記載したソースと無関係でした。

編集 削除
特攻隊長まるるう  2005-07-04 14:08:49  No: 123210  IP: [192.*.*.*]

>じゃどうすれば、最初、数値が入っていた、ラベルに文字列"ok"を入れられるんですか?
いや、ラベルは関係ないと思うよ。
エラーの文章通りなら、"ok"という文字を数値型に変換しようとして失敗してる
ワケだから、ラベルの文字を数値型の変数に入れようとしているコードがある
んじゃない?1行1行ステップ実行して、エラーの発生している行を特定して下さい。
そこのコードが悪いと思われます。

編集 削除
マグ  2005-07-04 17:28:28  No: 123211  IP: [192.*.*.*]

>じゃどうすれば、最初、数値が入っていた、ラベルに文字列"ok"を入れられるんですか?

質問の意味が分かったかも?
もしかして・・・・
「Integerで宣言されている変数にラベルの文字列"ok"をどうすれば入れることが
出来ますか?」という質問でしょうか?
それで、エラーが「文字列 "ok" から型 'Integer' へのキャストが有効ではありません。」
ということですか?

もし、こういう質問なら、提示したソースが合ってました。
TextBox2がIntegerで宣言された変数
TextBox1がラベルの文字列で・・・・・
Try
    TextBox2.Text = CType(TextBox1.Text, Integer)
Catch ex As Exception
    TextBox2.Text = 0
End Try

編集 削除
特攻隊長まるるう  2005-07-04 19:13:27  No: 123212  IP: [192.*.*.*]

うーにゅ。そこは Try〜Catch で取るようなエラーではないので
[VB.NET]
        With Me.TextBox1
            If IsNumeric(.Text) Then
                Me.TextBox2.Text = CStr(CInt(.Text))
            Else
                Me.TextBox2.Text = "0"
            End If
        End With
つか、サンプルプログラムとして分かり難くなってる気も…。
こっちで想像するより質問者がコード出してくれるのを待った
方が早いと思います。

型が分からない(or 曖昧な)人はファイルの先頭に
[VB6.0]
Option Explicit
[VB.NET]
Option Strict On
…って書いて下さい。って気もしますが。

話は変わりますが、最初、マグさんの
    TextBox2.Text = CInt(TextBox1.Text)
のコードの意味が分からなかったけど『数値として有効なら
整数に修正する』って意味ならアリなんですね。

編集 削除
マグ  2005-07-05 16:47:42  No: 123213  IP: [192.*.*.*]

>話は変わりますが、最初、マグさんの
>TextBox2.Text = CInt(TextBox1.Text)・・・

聞かれてみれば、何も考えずに使っていましたw
文字列型から数字型への変換に使っていることが多いです。


ところで、リーさんからの連絡がありませ〜ん。
もしかして・・・・質問に対しての返答が難しすぎた?
もしくは、すでに解決したとか・・・・・
推測ですが・・・・・・

編集 削除
いな  2005-07-05 17:41:57  No: 123214  IP: [192.*.*.*]

返事が難しい場合、その旨を書くはず、
きっと解決報告もしないまま、放置

推測ですが...

編集 削除