2009年11月7日土曜日

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

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

そもそも「IsNumeric」や「TryParse」という存在を、
昨日に初めて知ったので、当然使用していませんでした。
個人としては、ずっとこのチェックを使ってきたので、
まぁいいかなぁという感じです。
01.' *******************************
02.' TextBox1 の中身の数値チェック
03.'  + 4桁まで頭に0を付ける
04.' *******************************
05.Try
06. 
07.    ' TextBox1の中身
08.    Dim sData As String = Me.TextBox1.Text
09. 
10.    ' Integerへ変換
11.    Dim iData As Integer = Integer.Parse(sData)
12.    Dim iLength As Integer = iData.ToString.Length
13. 
14.    ' 4桁制限
15.    If iLength > 4 Then
16. 
17.        MsgBox("4文字以内で入力して下さい")
18.        Me.TextBox1.Text = ""
19.        Me.TextBox1.Focus()
20.        Exit Sub
21. 
22.    End If
23. 
24.    ' 不足分"0"作成
25.    sData = ""
26.    For i As Integer = iLength To 3
27. 
28.        sData += "0"
29. 
30.    Next
31. 
32.    ' TextBox1へ戻す
33.    Me.TextBox1.Text = sData & iData.ToString
34. 
35. 
36.' 数値以外
37.Catch ex As Exception
38. 
39.    MsgBox("数値以外です")
40.    Me.TextBox1.Text = ""
41.    Me.TextBox1.Focus()
42. 
43.End Try
Try内で「Integer.Parse」を行い、 「変換できれば」0詰め処理を行います。 この場合「0002」など、すでに頭に0が付加されているものも数値をして認識し、 全角数字やローマ数字はエラーとなります(Integerへ変換できないため)。 頭に0詰めする理由としては、 データベースを用いてマスタメンテを作成する上で、 0を入力する手間を省くためです。 また、この処理では、 「1,525」などの区切りが行われている場合は、 当然文字として認識するので、使用出来なくなります。 その場合は、カンマの存在をチェックし、あるなら省く必要がありますね。

0 件のコメント:

コメントを投稿