最近在使用一个信息统计系统,里面要对每个人的身份证号码验证,因为有90多人,一个一个手工输入难免会有错误,如图这种情况。
于是用VB6写了个身份证号码验证程序,代码如下:
添加文本框Text1,标签Label1,按键Command1
Private Sub Command1_Click()
Dim B() As String: Dim k&, j&, i(17) As Long
Const A As String = "7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2,1,0,X,9,8,7,6,5,4,3,2"
B() = Split(A, ",")
For j = 1 To 17
i(j - 1) = Val(Mid(Text1.Text, j, 1)) * Val(B(j - 1)) '第1位到第17位分别乘以B(0)...B(16),所有积求和
k = k + i(j - 1)
Next
Label1.Caption = "校验位是:" & B((k Mod 11) + 17) '余数1-10,对应B(17)-B(27)
End Sub
为了更精简些,反复修改了3次,应该不能再精简了吧?
校验码计算方法,网上有教程。