![]() |
#2
sdta2023-03-06 23:57
|



CLEAR
no1='6222888800010008' &&卡号
len2=INT(LEN(no1)/2)
IF LEN(no1)#16
=MESSAGEBOX('卡号长度错误')
ENDIF
endwei=0
FOR ii=1 TO len2 &&偶数*2 结果大于10 -9或者十位数+个位数
js=ALLTRIM(STR(VAL(LEFT(RIGHT(no1,ii*2),1))*2))
IF VAL(js)>=10
endwei=endwei+VAL(LEFT(js,1))+VAL(RIGHT(js,1))
ELSE
endwei=endwei+VAL(js)
ENDIF
ENDFOR
FOR ii=1 TO len2 &&奇数位直接相加
js=LEFT(right(no1,ii*2-1),1)
endwei=endwei+VAL(js)
ENDFOR
?endwei
IF MOD(endwei,10)=0 &&除10 整数 校验通过
?no1+' **校验正确'
ELSE
?no1+' **校验错误******'
ENDIF
no1='6222888800010008' &&卡号
len2=INT(LEN(no1)/2)
IF LEN(no1)#16
=MESSAGEBOX('卡号长度错误')
ENDIF
endwei=0
FOR ii=1 TO len2 &&偶数*2 结果大于10 -9或者十位数+个位数
js=ALLTRIM(STR(VAL(LEFT(RIGHT(no1,ii*2),1))*2))
IF VAL(js)>=10
endwei=endwei+VAL(LEFT(js,1))+VAL(RIGHT(js,1))
ELSE
endwei=endwei+VAL(js)
ENDIF
ENDFOR
FOR ii=1 TO len2 &&奇数位直接相加
js=LEFT(right(no1,ii*2-1),1)
endwei=endwei+VAL(js)
ENDFOR
?endwei
IF MOD(endwei,10)=0 &&除10 整数 校验通过
?no1+' **校验正确'
ELSE
?no1+' **校验错误******'
ENDIF