电子二分频电路图:身份证第18位校验码验证

来源:百度文库 编辑:偶看新闻 时间:2024/05/03 15:52:45

身份证第18位校验码验证

分类: vfp-自定义函数 原创 2012-01-22 02:41 10人阅读 评论(0) 收藏 编辑 删除

* 函数功能:身份证第18位校验码验证

**********************************************************
PARAMETER SFZHM
DYZ="79X584216379X5842"  &&与身份证前17位相对应的码。X代表10
YZZ="0123456789X"  &&X代表10
XYM="10X98765432"  &&校验码
ZH=0
FOR I=1 TO LEN(SFZHM)-1
    CZF=SUBSTR(SFZHM,I,1) && 在SFZHM1中第I位取一个字符,保存在变量CZF中
    DO CASE
       CASE ISALPHA(SUBSTR(DYZ,I,1))=.T.
            NDYZ=10
       CASE ISALPHA(SUBSTR(DYZ,I,1))=.F.
            NDYZ=VAL(SUBSTR(DYZ,I,1))
    ENDCASE
    ZH=ZH+VAL(CZF)*NDYZ
ENDFOR
NYZZ=MOD(ZH,11)
XYM=IIF(NYZZ=10,"2",SUBSTR(XYM,NYZZ+1,1))
W18=SUBSTR(SFZHM,18,1) &&提取身份证第18位校验码
IF XYM=W18
   SFZQ=MESSAGEBOX("身份证第18位校验码为 "+XYM+" 正确",48,"系统信息")
ELSE
   SFZQ=MESSAGEBOX("身份证第18位校验码为 "+XYM+" 不正确",48,"系统信息")
ENDIF
RETURN SFZQ