2009年11月7日土曜日

VB.NET 入力値数値チェック+0詰め

これもまた、学校の課題の中で使用するソースですが、
本来とはまた違う数値チェックになります。

そもそも「IsNumeric」や「TryParse」という存在を、
昨日に初めて知ったので、当然使用していませんでした。
個人としては、ずっとこのチェックを使ってきたので、
まぁいいかなぁという感じです。
' *******************************
' TextBox1 の中身の数値チェック
'  + 4桁まで頭に0を付ける
' *******************************
Try

    ' TextBox1の中身
    Dim sData As String = Me.TextBox1.Text

    ' Integerへ変換
    Dim iData As Integer = Integer.Parse(sData)
    Dim iLength As Integer = iData.ToString.Length

    ' 4桁制限
    If iLength > 4 Then

        MsgBox("4文字以内で入力して下さい")
        Me.TextBox1.Text = ""
        Me.TextBox1.Focus()
        Exit Sub

    End If

    ' 不足分"0"作成
    sData = ""
    For i As Integer = iLength To 3

        sData += "0"

    Next

    ' TextBox1へ戻す
    Me.TextBox1.Text = sData & iData.ToString


' 数値以外
Catch ex As Exception

    MsgBox("数値以外です")
    Me.TextBox1.Text = ""
    Me.TextBox1.Focus()

End Try
Try内で「Integer.Parse」を行い、 「変換できれば」0詰め処理を行います。 この場合「0002」など、すでに頭に0が付加されているものも数値をして認識し、 全角数字やローマ数字はエラーとなります(Integerへ変換できないため)。 頭に0詰めする理由としては、 データベースを用いてマスタメンテを作成する上で、 0を入力する手間を省くためです。 また、この処理では、 「1,525」などの区切りが行われている場合は、 当然文字として認識するので、使用出来なくなります。 その場合は、カンマの存在をチェックし、あるなら省く必要がありますね。

0 件のコメント:

コメントを投稿