我正在为表单编写代码,该表单应该确定用户输入的值是否有效作为校验位。他们输入一个13位数字,它应该确定最后一个值是否有效作为校验位。我已经为校验数字算法编写了代码,但是在比较算法找到的值与用户输入的内容时遇到了麻烦。我尝试使用substring方法将用户给出的第13个数字与算法确定的校验位进行比较,但是我在所有语法上都遇到了问题。
这是我一直在努力的代码:
Private Sub btnValidate_Click(sender As Object, e As EventArgs) Handles btnValidate.Click
Dim intDigit As Integer
Dim intTotalOdd As Integer
Dim intTotalEven As Integer
Dim intGrandTotal As Integer
Dim intRemainder As Integer
Dim intCheckDigit As Integer
If txtNumber.Text.Length = 13 Then
For intOdd As Integer = 1 To 11 Step 2
intTotalOdd += (intDigit * 3)
Next intOdd
For intEven As Integer = 0 To 10 Step 2
intTotalEven += intDigit
Next intEven
intGrandTotal = intTotalOdd + intTotalEven
intRemainder = intGrandTotal Mod 10
If intRemainder <> 0 Then
intCheckDigit = 10 - intRemainder
End If
If txtNumber.Text.Substring(12, 13) = intCheckDigit Then
lblStatus = "Valid"
Else
lblStatus = "Not Valid"
End If
End If
End Sub
我认为我的工作方式应该可以工作,但是我对如何使语法工作没有太多参考。我尝试执行此操作的方式会起作用还是需要以其他方式进行处理?