车辆识别号(VIN码)正确性校验源码
.版本 2
.子程序 VIN_Check, 逻辑型, 公开, 校验车辆识别号是否合法
.参数 VIN, 文本型, , 车辆识别号
.局部变量 TMP, 文本型
.局部变量 i, 整数型
.局部变量 j, 整数型
.局部变量 值, 整数型
.局部变量 Ret, 整数型
.局部变量 实际数字, 文本型, , "23"
.局部变量 加权系数, , , "17"
实际数字 = 分割文本 (#实际数字, “,”, )
加权系数 = { 8, 7, 6, 5, 4, 3, 2, 10, 0, 9, 8, 7, 6, 5, 4, 3, 2 }
.如果真 (取文本长度 (VIN) ≠ 17)
返回 (假)
.如果真结束
.计次循环首 (17, i)
TMP = 取文本中间 (VIN, i, 1)
.计次循环首 (23, j)
.判断开始 (TMP = 实际数字 [j]) ' 加入成员 (Val, 到整数 (实际数字1 [j + 23]))
值 = 加权系数 [i] × 到整数 (实际数字 [j + 23])
跳出循环 ()
.判断 (取代码 (TMP, ) ≥ 48 且 取代码 (TMP, ) ≤ 57) ' 加入成员 (Val, 到整数 (TMP))
值 = 加权系数 [i] × 到整数 (TMP)
跳出循环 ()
.默认
.判断结束
.计次循环尾 ()
Ret = Ret + 值
.计次循环尾 ()
Ret = Ret % 11
TMP = 取文本中间 (VIN, 9, 1)
返回 (Ret = 10 且 TMP = “X” 或 到文本 (Ret) = TMP)
易语言算校验码