Download or view VINChecker.frink in plain text format
// Checks VIN numbers checksum using the procedure found at:
// http://www.vehicleidentificationnumber.com/NHTSA_vehicle_identification_number_content.html
class VINChecker
{
class var d = undef
class var weights = [8,7,6,5,4,3,2,10,0,9,8,7,6,5,4,3,2]
class calculateVINChecksum[vin] :=
{
if d==undef
initCharMap[]
sum = 0
for pos = 0 to 16
{
c = substrLen[vin, pos, 1]
println["Char at " + (pos+1) + " is $c, value is " + d@c]
sum = sum + d@c * weights@pos
}
println["Sum is $sum"]
checksum = sum mod 11
if checksum == 10
checksum = "X"
else
checksum = "$checksum"
}
class initCharMap[] :=
{
d = new dict
d@"0" = 0
d@"1" = 1
d@"2" = 2
d@"3" = 3
d@"4" = 4
d@"5" = 5
d@"6" = 6
d@"7" = 7
d@"8" = 8
d@"9" = 9
d@"A" = 1
d@"B" = 2
d@"C" = 3
d@"D" = 4
d@"E" = 5
d@"F" = 6
d@"G" = 7
d@"H" = 8
d@"I" = undef
d@"J" = 1
d@"K" = 2
d@"L" = 3
d@"M" = 4
d@"N" = 5
d@"O" = undef
d@"P" = 7
d@"Q" = undef
d@"R" = 9
d@"S" = 2
d@"T" = 3
d@"U" = 4
d@"V" = 5
d@"W" = 6
d@"X" = 7
d@"Y" = 8
d@"Z" = 9
return d
}
}
vin = trim[input["Enter VIN: "]]
checksum = VINChecker.calculateVINChecksum[vin]
println["Calculated checksum is: $checksum"]
println["Digit in original VIN is: " + substrLen[vin,8,1]]
Download or view VINChecker.frink in plain text format
This is a program written in the programming language Frink.
For more information, view the Frink
Documentation or see More Sample Frink Programs.
Alan Eliasen was born 20143 days, 11 hours, 57 minutes ago.