29 lines
864 B
Text
29 lines
864 B
Text
Public Sub Main()
|
|
Dim byWeight As Byte[] = [1, 3, 1, 7, 3, 9, 1]
|
|
Dim byCount, byCompute As Byte
|
|
Dim siTotal As Short
|
|
Dim sWork As New String[]
|
|
Dim sToProcess As String[] = ["710889", "B0YBKJ", "406566", "B0YBLH", "228276", "B0YBKL",
|
|
"557910", "B0YBKR", "585284", "B0YBKT", "B00030"]
|
|
|
|
For byCompute = 0 To sToProcess.Max
|
|
For byCount = 1 To 6
|
|
If IsLetter(Mid(sToProcess[byCompute], byCount, 1)) Then
|
|
sWork.Add(Str(Asc(Mid(sToProcess[byCompute], byCount, 1)) - 55) * byWeight[byCount - 1])
|
|
Else
|
|
sWork.Add(Val(Mid(sToProcess[byCompute], byCount, 1)) * byWeight[byCount - 1])
|
|
End If
|
|
Next
|
|
|
|
For byCount = 0 To 5
|
|
siTotal += Val(sWork[byCount])
|
|
Next
|
|
|
|
siTotal = (10 - (siTotal Mod 10)) Mod 10
|
|
|
|
Print sToProcess[byCompute] & " = " & sToProcess[byCompute] & siTotal
|
|
sWork.Clear()
|
|
siTotal = 0
|
|
Next
|
|
|
|
End
|