- - PR -
最小値〜最大値内かのチェック
1|2|3|4
次のページへ»
投稿者 | 投稿内容 | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2004-01-20 11:16
チェック対象文字列が数値かどうか判断した上で、最小値〜最大値内かチェックをしたいのですが、どうすればいいのでしょうか。教えてください。
チェック対象文字列が数値かどうか判断するコードは出来ているのですが、 最小値〜最大値ないかどうかのチェックが出来ません。 よろしくお願いします。 ・・・以下、自分が作成したコードです。 Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click Dim bool_rtn As Boolean bool_rtn = Checkvalue(TextBox1.Text) If bool_rtn = True Then TextBox2.Text = "OK" Else TextBox2.Text = "NG" End If End Sub Private Sub Test(ByVal str) Dim i_buf As String i_buf = Str() End Sub Public Function Checkvalue( _ ByVal in_str_buf As String _ ) As Boolean '******* ' 変数 '******* Dim str_workbuf As String Dim dbl_dt As Integer '******** ' 初期化 '******** Checkvalue = False ' 前後の空白をトリム str_workbuf = Trim(in_str_buf) '文字の長さが0かどうかチェック If Len(str_workbuf) = 0 Then Exit Function End If '数値かどうかチェック If str_workbuf <> "" Then If IsNumeric(str_workbuf) = True Then End If End If Checkvalue = True End Function Public Function Checkvalue( _ ByVal in_str_chkstr As String, _ ByVal in_int_min As Integer, _ ByVal in_int_max As Integer _ ) As Boolean End Function | ||||||||||||
|
投稿日時: 2004-01-20 11:47
なんか、ハンドルが見慣れた文字列なので反応してしまった(^^;
Checkvalue = True Dim num As Integer Try num = CInt(in_str_buf) ' 数値に変換しようとする if num < in_int_min AndAlso in_int_max < num Then ' 範囲チェック Checkvalue = False End If Catch ' 数値でなければここへ来る ' (他の例外が発生してもそうだろ、というツッコミは無視(^^;) Checkvalue = False End Try | ||||||||||||
|
投稿日時: 2004-01-20 12:44
Jittaさんありがとうございます。
早速やってみたいと思います | ||||||||||||
|
投稿日時: 2004-01-20 15:32
先ほどJittaさんが教えてくださったコードを追加し実行してみたのですが、
私のコードの入れ方が良くないのか、うまく作動しませんでした。 そこで最初のCheckvalueでは、数値チェックをしていますので、 関数名を変えて '************************************************************ '関数名 :Checkvalueminmax '機能概要 :最小値〜最大値チェック '引数 :in_str_chkstr…チェック対象文字列 '備考 :チェック対象文字列稼動か判断した上で、 ' 最小〜最大値内かチェックする。 '************************************************************ Public Function Checkminmax( _ ByVal in_str_chkstr As String, _ ByVal in_int_min As Integer, _ ByVal in_int_max As Integer _ ) As Boolean 'ここに新しくコードを追加 End Function 数値チェックでTrimなどをしているため、 数値チェックの関数を入れ子にして、チェックをしたいのですが・・・ 最終的に数値チェックがOKになった時点で、 最大値、最小値チェックをコールして 全部の判断をするようにするには、どのようにすればいいのでしょうか。 教えてください。 | ||||||||||||
|
投稿日時: 2004-01-20 16:41
※ ここでダメなら、 num = Convert.ToInt32(in_str_chkstr) >> うまく作動しませんでした。 どういうものを期待して、どういう出力があったかを書いてください。ただ『うまく作動しませんでした』だけだと、CIntがエラーになったのか、コーディングが悪くてコンパイルできないのか、等々、いくらでも「可能性」があって何を書いて良いやらわかりません。5W1H…基本は押さえましょう。 [ メッセージ編集済み 編集者: Jitta 編集日時 2004-01-20 16:47 ] | ||||||||||||
|
投稿日時: 2004-01-20 17:09
すみませんでした・・・
今後は気をつけます。 えと。。この件について、
この通りに入れて、動かしてみたのですが、 この範囲チェックの前に数値チェックを入れているのですが、 その数値チェックでプログラムを終了されてしまい、 範囲チェックのプログラムの前で終了してしまいます。 うまく説明できなくて申し訳ありません。 自分が書いたコードをすべて乗せたいと思いますので、 どこがおかしいのか見ていただけないでしょうか。 よろしくお願いします。 | ||||||||||||
|
投稿日時: 2004-01-20 17:16
コードです。
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click Dim bool_rtn As Boolean bool_rtn = Checkvalue(TextBox1.Text) If bool_rtn = True Then TextBox2.Text = "OK" Else TextBox2.Text = "NG" End If End Sub Private Sub Test(ByVal str) Dim i_buf As String i_buf = Str() End Sub '************************************************************ '関数名 :Checkvalue '機能概要 :数値チェック '引数 :in_str_buf…チェック対象文字列 '戻り値 :True/False '作成日 :2004/01/15 '作成者 :kito '備考 : '履歴 : '***************************************************************** Public Function Checkvalue( _ ByVal in_str_buf As String _ ) As Boolean '******* ' 変数 '******* Dim str_workbuf As String Dim dbl_dt As Integer '******** ' 初期化 '******** Checkvalue = False ' 前後の空白をトリム str_workbuf = Trim(in_str_buf) '文字の長さが0かどうかチェック If Len(str_workbuf) = 0 Then Exit Function End If '数値かどうかチェック If str_workbuf <> "" Then If IsNumeric(str_workbuf) = True Then End If End If Checkvalue = True End Function '************************************************************ '関数名 :Checkminmax '機能概要 :最小値〜最大値チェック '引数 :in_str_chkstr…チェック対象文字列 '戻り値 :True/False '作成日 :2004/01/1x '作成者 :Hara '備考 :チェック対象文字列稼動か判断した上で、 ' 最小〜最大値内かチェックする。 '履歴 : '************************************************************ Public Function Checkminmax( _ ByVal in_str_chkstr As String, _ ByVal in_int_min As Integer, _ ByVal in_int_max As Integer _ ) As Boolean Dim num As Integer Checkminmax = True Try num = CInt(in_str_chkstr) ' 数値に変換しようとする ※ if num < in_int_min AndAlso in_int_max < num Then ' 範囲チェック Checkminmax = False End If Catch ' 数値でなければここへ来る ' (他の例外が発生してもそうだろ、というツッコミは無視(^^;) Checkminmax = False End Try End Function このようにさせていただきました。 長くて申し訳ありません。 よろしくお願いします。 | ||||||||||||
|
投稿日時: 2004-01-20 17:29
入力内容が分からないので、変換結果が分かりません。 in_str_chkstr には、何が入っていますか? それと、
|
1|2|3|4
次のページへ»