以前的一個項目中遇到過要核對條碼的校正碼的需求,感覺有時候還是非常有用的,下面提供代碼,代碼版本為VB.net:
//根據輸入的的條碼來計算該條碼的校正位
Private Function GetCheckDigit(Byal strCode As String) As String
Dim intCurVal As Int16 = 0
Dim intChksum As Int16 = 0
Dim chrCur As String
Dim intPos As Int16 'Check for invalid characters and calculate check sum
For intPos = 1 To Len(strCode)
chrCur = Mid(strCode, intPos, 1)
Select Case chrCur
Case "0" To "9"
intCurVal = Val(chrCur)
Case "A" To "Z"
intCurVal = Asc(chrCur) - 55
Case "-"
intCurVal = 36
Case "."
intCurVal = 37
Case " "
intCurVal = 38
Case "$"
intCurVal = 39
Case "/"
intCurVal = 40
Case "+"
intCurVal = 41
Case "%"
intCurVal = 42
Case Else End Select
intChksum = intChksum + intCurVal
Next intChksum = intChksum Mod 43 Select Case intChksum
Case 0 To 9
Return intChksum.ToString()
Case 10 To 35
Return Chr(intChksum + 55)
Case 36
Return "-"
Case 37
Return "."
Case 38
Return " "
Case 39
Return "$"
Case 40
Return "/"
Case 41
Return "+"
Case 42
Return "%"
Case Else End Select Return "0"
End Function