DOBON.NET DOBON.NETプログラミング掲示板過去ログ

型の判断

環境/言語:[windows2000]
分類:[.NET]

いつもお世話になっております。

現在formに10桁入力可能なテキストボックスを作成しました。
入力された10桁がintegerかどうかの判断なのですが、今のところ

Dim intUriage as Integer

try
intUriage = CInt(Trim(textBox1.text))
catch ex As Exception
msgbox("int型ではない")
End Try

という感じで判断しています。なにかよい方法があれば教えてください。
お願いします
こんにちは。
判断する方法としては間違って無いと思うのですが・・・

判断した結果、何をしたいのでしょうか??
エラーとして処理したいのであれば、
そのままでOKだと思いますし、数字以外入力されたくないのであれば、
テキストボックス自体を数字しか入力できないようにすれば良いと思います。
  • 題名: Re[2]: 型の判断
  • 著者: mb
  • 日時: 2004/08/18 15:10:20
  • ID: 5634
  • この記事の返信元:
  • この記事への返信:
    • (なし)
  • ツリーを表示
数値以外の文字も受け付けるのであれば
正規表現での Regex.IsMatch なども試してみてはいかがでしょうか。
  • 題名: Re[1]: 型の判断
  • 著者: java.lang.Nullpo
  • 日時: 2004/08/18 15:21:49
  • ID: 5636
  • この記事の返信元:
  • この記事への返信:
  • ツリーを表示
■No5632に返信(私さんの記事)
> いつもお世話になっております。
>
> 現在Formに10桁入力可能なテキストボックスを作成しました。
> 入力された10桁がIntegerかどうかの判断なのですが、今のところ
>
> Dim intUriage As Integer
>
> Try
>   intUriage = CInt(Trim(textBox1.text))
> Catch ex As Exception
>   MsgBox("int型ではない")
> End Try
>
> という感じで判断しています。なにかよい方法があれば教えてください。
> お願いします

いろんな方法があるかと思います。
とりあえず、例外をキャッチするのは止めた方がいいですね。
ExceptionClassのインスタンス生成時に時間がかかりますから。

あと、いきなりIntegerにすると小数点以下が丸められるので、
Doubleか何かにParseして、小数でないことも確認すべきかもしれません。

以下の関数を自作すればよいでしょう。

1. IsNumeric()や、Double.TryParse()、パターンマッチングなどで、数値項目かどうかを調べる || または数値以外を削る。
2. Double.Parse()で数値に置き換える。(必要ならば浮動小数点以下を調べる)
3. Int32.MinValue 〜 Int32.MaxValueの間か調べる。
4. 条件を満たせばTrueを返す。
  • 題名: Re[2]: 型の判断
  • 著者: 私
  • 日時: 2004/08/19 12:30:43
  • ID: 5664
  • この記事の返信元:
  • この記事への返信:
    • (なし)
  • ツリーを表示
ありがとうございます。
参考になりました。

数値のみ入力可能なテキストボックスの値をSQLSERVERのint型DBに登録するという処理でしたが、10桁のテキストボックスを作成して、int型でないものでエラーが発生した為、何か簡単な方法はないかと登校しました。大変参考になりました。

DOBON.NET | プログラミング道 | プログラミング掲示板