如何利用VisualBasic开发身份证号码批量验证工具软件

如何利用VisualBasic开发身份证号码批量验证工具软件
如何利用VisualBasic开发身份证号码批量验证工具软件

如何利用VisualBasic开发身份证号码批量

验证工具软件

导读:本文如何利用VisualBasic开发身份证号码批量验证工具软件,仅供参考,如果觉得很不错,欢迎点评和分享。

如何利用Visual Basic开发身份证号码批量验证工具软件作者/刘小龙

通过对身份证号码实际应用中存在的问题进行详细分析,我们发现每学年的学籍建档、国家助学金申报等方面都离不开身份证号码。同时,人工核对信息工作量大,也易出错,势必对工作造成一定的影响。为此,我们运用大学学习的一些VB知识,根据身份证号码编码规则编写了《身份证号码批量验证工具》软件,使身份证号码核对工作变得简单、轻松。

一、软件的设计步骤

二、软件详细设计

1. 解决方案与软件特色

本程序使用VB在Windows XP环境开发,解决了身份证号码验证过程中存在的易出错、工作量大的问题,支持Excel文件批量验证及信息追加,绿色免安装、小巧、实用性强。

2. 具体设计

下面就根据软件的操作流程图进行介绍软件的功能和实现原理:

(1)操作流程图。

参数设置说明:身份证号码、性别、出生年月所在列均以阿拉伯数字表示,性别、出生年月信息的追加属于选择项。

(2)身份证号码校验值计算函数代码。

Public Function sfzjym(num As String)As String

Dim n1,n2,n3,n4,n5,n6,n7,n8,n9,n10,n11,n12,n13,n14,n15,n16,n17,y,s As Integer

n1=Val(Mid$(num,1,1))*7

n2=Val(Mid$(num,2,1))*9

n3=Val(Mid$(num,3,1))*10

n4=Val(Mid$(num,4,1))*5

n5=Val(Mid$(num,5,1))*8

n6=Val(Mid$(num,6,1))*4

n7=Val(Mid$(num,7,1))*2

n8=Val(Mid$(num,8,1))*1

n9=Val(Mid$(num,9,1))*6

n10=Val(Mid$(num,10,1))*3

n11=Val(Mid$(num,11,1))*7

n12=Val(Mid$(num,12,1))*9

n13=Val(Mid$(num,13,1))*10

n14=Val(Mid$(num,14,1))*5

n15=Val(Mid$(num,15,1))*8

n16=Val(Mid$(num,16,1))*4

n17=Val(Mid$(num,17,1))*2

y=n1+n2+n3+n4+n5+n6+n7+n8+n9+n10+n11+n12+n13+n 14+n15+n16+n17

s=y Mod 11

Select Cases

Case 0

sfzjym=“1”

Case 1

sfzjym=“0”

Case 2

sfzjym=“X”

Case 3

sfzjym=“9”

Case 4

sfzjym=“8”

Case 5

sfzjym=“7”

Case 6

sfzjym=“6”

Case 7

sfzjym=“5”

Case 8

sfzjym=“4”

Case 9

sfzjym=“3”

Case 10

sfzjym=“2”

End Select

End Function

函数参数为18位身份证号码,返回值为身份证号码的校验值,即身份证号码最后一位,整个计算过程严格按照GB11643-1999 《公民身份号码》中的规定完成。

(3)验证代码。

Private Sub yz_Click()

On Error GoTo errh

Dim app As Excel.Application

Dim appworkbook As Workbook

Dim appworksheet As Worksheet

Dim hs1 As Integer,hs2 As Integer,err As Integer

Dim adr As String,sfzbh As String

err=0

dkdhk.Action=1

adr$=Mid$(dkdhk.InitDir &“\”& dkdhk.FileName,2,Len(dkdhk.InitDir & “\” & dkdhk.FileName)- 1)Set app=New Excel.Application

Set appworkbook=app.Workbooks.Open(adr$)

Set appworksheet=appworkbook.Sheets(1)

Do While appworksheet.Cells(2,1)“”

hs1=hs1+1

Loop

jc.Max=hs1

For hs2=2 To hs1+1

sfzbh$=appworksheet.Cells(hs2,Val(l1.Text))

If Mid$(sfzbh$,18,1)=“x"”Then

appworksheet.Cells(hs2,Val(l1.Text))=Mid$(sfzbh$,1,17)& “X”

sfzbh$=Mid$(sfzbh$,1,17)& “X”

End If

If Len(sfzbh$)18 Then

err=err+1

appworksheet.Cells(hs2,Val(l1.Text))=“不够18位” & sfzbh$

appworksheet.Cells(hs2,Val(l1.Text))。Font.ColorIndex=3 Else

If Mid$(sfzbh$,18,1)sfzjym(sfzbh$)Then

err=err+1

appworksheet.Cells(hs2,Val(l1.Text))=“校验码错误” & sfzbh$

appworksheet.Cells(hs2,Val(l1.Text))。Font.ColorIndex=3 Else

If jz1.Value=1 Then

If Mid$(sfzbh$,17,1)Mod 2=1 Then

appworksheet.Cells(hs2,Val(xb.Text))=“男”

Else

appworksheet.Cells(hs2,Val(xb.Text))=“女”

End If

End If

If jz2.Value=1 Then

appworksheet.Cells(hs2,Val(csny.Text))=Mid$(sfzbh$,7,4)& “-”& Mid$(sfzbh$,11,2)& “-” & Mid$(sfzbh$,13,2)

End If

End If

End If

jc.Value=hs2-2

Next hs2

“MsgBox ”数据验证完成,到文件中查看验证结果“& ”(共验证“& hs1 &”条记录,发现“& err &”处身份证错误信息)“,48,”

提示

app.Visible=True

errh:

End Sub

(4)验证代码需要完成的任务。

①判断身份证号码所在列参数填写是否正确;②判断是否追加性别、出生年月及所在列参数;③读取Excel文件中的身份证号码,根据调用计算身份证号码校验码sfzjym函数判断身份证号码是否正确;

④对正确的身份证号码自动校正小写x为大写X;⑤给Excel文件反馈判断信息及错误原因,若选择追加性别、出生年月选项,将对正确的身份证号码相关记录添加性别、出生年月;⑥弹窗提示验证信息量与错误信息量,并自动打开验证的Excel文件。

三、程序所体现特点与应用性

因日常工作中存在着身份证号码大量核对带来的各种问题,经过详细的分析和研究,提出了开发《身份证号码批量验证工具》程序的想法。程序经过反反复复的严格测试,完全能够胜任身份证号码批量验证这一工作,充分体现在下面几点:(1)实用性强,支持对Excel 数据的批量验证与信息自动追加;(2)整个操作过程简单、易懂、工作量小;(3)对错误信息有准确的、详细的提示信息,方便二次修正;

(4)绿色免安装、小巧。

(甘肃省通渭县第二中学)感谢阅读,希望能帮助您!

excel表格里怎么批量把身份证号前面的

excel表格里怎么批量把身份证号前面的*去掉? 你这个直接用right函数就可以了,right函数是文本函数,所以不会出现后面是000的情况。 怎么把身份证号码从word里批量复制到excel里? 切记!!首先要把EXCEL的单元格格式设为文本格式,否则18位身份证号进去就kjn#$# *&,WORD中的号码若是每行一个的,你直接复制、粘贴过去,就会在EXCEL的一个列里按行放置了,最好是在WORD里按行处理后先复制、粘贴的TXT的纯文本文件里(例如WINDOWS记事本),去掉WORD里的格式,再复制到EXCEL里 在EXCEL中怎么从身份证号中批量提取出生年月? 身份证号码都是现在都是18位的,从第7位到14位就是出生年月,在EXCEL中我们假设A1单元格是身份证号码,则你在B2输入=MID(A1,7,4)&"-"&MID(A1,11,2)&"-"&MID(A1,13,2) 如何大批量去掉Excel中身份证号码前的'符号? 假设身份证号写在B列,在B列后面插入一个新C列 C1单元格写入公式=SUBSTITUTE(B1,"'","")或=SUBSTITUTE(B1,"'",)下拉复制公式或双击填充柄。完成后选中C列---右键---选择性粘贴----数值---确定---再选中C列---右键----设置单元格格式---数字选项卡---文本---确定后删去B列---新的B列就是你要的数据样式 Excel中能否实现批量给身份证打XX的功能? 隐藏出生日期:B1输入公式 =IF(LEN(A1)=18,LEFT(A1,8)&"******"&RIGHT(A1,4),LEFT(A1,6)&"******"&RIGHT(A1,3)) 如何在Excel中批量审核身份证号码? 身份证号码验证功能公式(仅限18为身份证号码): =IF(AND(LEN(F5)=18,MID("10X98765432",MOD(SUM(MID(F5,{1,2,3,4,5,6,7,8,9,10,11,1 2,13,14,15,16,17},1)*{7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2}),11)+1,1)=MID(F5,18,1)),"身份 证验证正确","错误")本人使用F5单元格作为身份证所在单元格,请自行调整单元格位置。公式中一共引用3次F5单元格。

Excel判断身份证号校验码

Excel判断身份证号校验码 假设在一个工作表中:A列是姓名,B列是身份证号码,C列是备注。在B列中输入18位身份证号码后,在C2单元格中输入计算数组公式: =RIGHT(B2,1)=MID("10X98765432",MOD(SUM(MID(B2,ROW(INDIRECT("1:17")),1)*2^(18-ROW(INDIRECT("1:17")))),11)+1,1) 然后再将该公式复制给C列其他单元格。 公式的计算结果是一个逻辑值,True表示校验正确,即计算出来的校验码与输入的相同,而False则表示校验错误。值得注意的是,使用校验码进行校验判断为正确的身份证号码未必是正确的,但判断为错误的则肯定是错误的,即通过校验的只是身份证号码正确的必要条件而非充分条件。当然,在实际输入中,身份证号码输入错误而校验正确的情况很少见。在大多数情况下,使用校验码进行校验可以大大提高身份证号码输入的正确性。 RIGHT 根据所指定的字符数返回文本字符串中最后一个或多个字符。 MID 返回文本字符串中从指定位置开始的特定数目的字符,该数目由用户指定。 MOD 返回两数相除的余数。SUM 返回某一单元格区域中所有数字之和。ROW 返回引用的行号。INDIRECT 返回由文本字符串指定的引用。 或者输入数组公式: =IF(LEN(B2)<>18,"错误 ",IF(MID("10X98765432",MOD(SUM(MID(B2,ROW(INDIRECT("1:17")),1)*2^(18-ROW(INDIRECT("1:17")))),11)+1,1)=MID(B2,18,1), "正确","错误"))

身份证号码校验实例

身份证号码校验实例 身份证号码是按照一定规律编制的,是个人身份的有效证明,每个人只有一个号码,且不会重复,因而被各单位各部门广泛应用在相关名册中。在大量的身份证号码录入过程中,由于抄写或录入等原因,可能会弄错了某位数字,如果录错了任何一位数字,计算出来的校验码就不一样。根据这一特点,本函数可以对已录入的大批量身份证号码进行校验,如果校验未通过,则说明你录入的号码中必定是某位数字错了,应及时更正,以保证身份证号码正确有效,如果录入的是第一代15位身份证号码,本函数将返回18位号码,使身份证号码保持统一的位数。 代码如下: Function IDcheck(ID) '身份证号码校验函数 Dim s, iAs Integer Dim e, z As String Part1: '----------------------------身份证号码合法性检查--------------------------------------- If Not (Len(ID) = 18 Or Len(ID) = 15) Then '位数检验 IDcheck = "位数错误" Exit Function Else If Len(ID) = 15 Then ID = Left(ID, 6) & "19" & Right(ID, 9)

If IsNumeric(Left(ID, 17)) = False Or InStr(ID, ".") > 0 Then '字符检验 IDcheck = "字符错误" Exit Function End If On Error Resume Next '日期检验 If DateValue(Mid(ID, 7, 4) & "-" & Mid(ID, 11, 2) & "-" & Mid(ID, 13, 2)) < 1 Or _ DateValue(Mid(ID, 7, 4) & "-" & Mid(ID, 11, 2) & "-" & Mid(ID, 13, 2)) > Date Then IDcheck = "日期错误" Exit Function End If End If Part2: '-----------------------------校验码的生成及检查---------------------------------------- s = 0 For i = 1 To 17 s = s + Val(Mid(ID, 18 - i, 1)) * (2 ^ i Mod 11)

中华人民共和国身份证号码规则

18位身份证标准在国家质量技术监督局于1999年7月1日实施的GB11643-1999《公民身份号码》中做了明确规定。GB11643-1999《公民身份号码》为GB11643-1989《社会保障号码》的修订版,其中指出将原标准名称“社会保障号码”更名为“公民身份号码”,另外GB11643-1999《公民身份号码》从实施之日起代替GB11643-1989。 公民身份号码是特征组合码,由十七位数字本体码和一位校验码组成。排列顺序从左至右依次为:六位数字地址码,八位数字出生日期码,三位数字顺序码和一位校验码。其含义如下: 1. 地址码:表示编码对象常住户口所在县(市、旗、区)的行政区划代码,按GB/T2260的规定执行。 2. 出生日期码:表示编码对象出生的年、月、日,按GB/T7408的规定执行,年、月、日分别用4位、2位、2位数字表示,之间不用分隔符。 3. 顺序码:表示在同一地址码所标识的区域范围内,对同年、同月、同日出生的人编定的顺序号,顺序码的奇数分配给男性,偶数分配给女性。 校验的计算方式: 1. 对前17位数字本体码加权求和 公式为:S = Sum(Ai * Wi), i = 0, ... , 16 其中Ai表示第i位置上的身份证号码数字值,Wi表示第i位置上的加权因子,其各位对应的值依次为:7 9 10 5 8 4 2 1 6 3 7 9 10 5 8 4 2 2. 以11对计算结果取模 Y = mod(S, 11) 3. 根据模的值得到对应的校验码 对应关系为: Y值:0 1 2 3 4 5 6 7 8 9 10 校验码: 1 0 X 9 8 7 6 5 4 3 2 身份证号码的编排规则 身份证号码中这些数字是怎样排列的,每个数字表示什么意思呢?下面就让我们一起来探索其中的规律吧!新的身份证号码是由18位数字组成的,它们分别表示: (1)前1、2位数字表示:所在省份的代码; (2)第3、4位数字表示:所在城市的代码; (3)第5、6位数字表示:所在区县的代码; (4)第7~14位数字表示:出生年、月、日; (5)第15、16位数字表示:所在地的派出所的代码; (6)第17位数字表示性别:奇数表示男性,偶数表示女性; (7)第18位数字是校检码:也有的说是个人信息码,一般是随计算机的随机产生, 用来检验身份证的正确性。校检码可以是0~9的数字,有时也用x表示。 15位的身份证号 dddddd yymmdd xx p 18位的身份证号 dddddd yyyymmdd xx p y 其中dddddd为地址码(省地县三级)18位中的和15位中的不完全相同 yyyymmdd yymmdd 为出生年月日 xx顺号类编码 p性别 18位中末尾的y为校验码,在网上可以找到算法 将前17位的ascii码值经位移、异或运算结果不在0-9的令其为x 中华人民共和国行政区划代码(GB/T2260—999) 代码省、市名称代码省、市名称 11 北京市 42 湖北省

检验身份证号码的正确性

检验身份证号码的正确性 =IF(LEN(A2)=18,MID("10X98765432",MOD(SUMPRODUCT(MID(A2,ROW(INDIRECT("1:1 7")),1)*2^(18-ROW(INDIRECT("1:17")))),11)+1,1)=RIGHT(A2),IF(LEN(A2)=15,ISNUMBER(--TEXT(19&MID(A2,7,6),"#-00-00")))) EXCEL中如何提取身份证出生日期、性别、检验身份证号码的正确性 中国居民身份证号码是一组特征组合码,原为15位,现升级为18位,其编码规则为:15位:6位数字常住户口所在县市的行政区划代码,6位数字出生日期代码,3位数字顺序码。 18位:6位数字常住户口所在县市的行政区划代码,8位数字出生日期代码,3位数字顺序码和1位检验码。 其中3位数字顺序码,是为同一地址码的同年同月同日出生人员编制的顺序号,偶数的为女性,奇数的为男性。 1、提取籍贯地区的行政区划代码(A2为身份证号,下同) 15与18位通用:=LEFT(A2,6) 如果有一个编码和省份地区的对照表,可以用VLOOKUP函数来提取地区信息。 2、提取出生日期信息 15位:=--TEXT(19&MID(A2,7,6),"#-00-00") 18位:=--TEXT(MID(A2,7,8),"#-00-00") 15与18位通用: =--TEXT(IF(LEN(A2)=15,19,"")&MID(A2,7,6+IF(LEN(A2)=18,2,0)),"#-00-00") 简化公式: =--TEXT((LEN(A2)=15)*19&MID(A2,7,6+(LEN(A2)=18)*2),"#-00-00") (请将输入公式的单元格格式设置为日期格式) 3、提取性别信息 15位:=IF(MOD(RIGHT(A2),2)=1,"男","女") 18位:=IF(MOD(MID(A2),17,1)=1,"男","女") 15与18位通用:=IF(MOD(MID(A2,IF(LEN(A2)=15,15,17),1),2)=1,"男","女") 简化公式:=IF(MOD(RIGHT(LEFT(A2,17)),2),"男","女") 4、检验身份证号码的正确性 18位身份证号码的最后一位是检验码,它是根据身份证前17位数字依照规则计算出来的,其值0~9或X。一般情况只要有一位数字输入错误,依照规则计算后就会与第18位数不符。当然不排除按错误号码计算后恰好与检验码相符的情况,但这种情况出现的可能性较低。因此,对18位号码的验证采用如下公式: =MID("10X98765432",MOD(SUMPRODUCT(MID(A2,ROW(INDIRECT("1:17")),1)*2^(18-R OW(INDIRECT("1:17")))),11)+1,1)=RIGHT(A2,1) 对于15位身份证,由于没有检验码,我们只能简单地去判断出生日期代码是否是一个有效的日期,避免输入一些像“731302”或“980230“等这样不存在的日期。

用VB实现18位身份证输入错误的批量验证

用VB实现18位身份证输入错误的批量验证 在学校里,建学生档案、中考、高考报名时通常都要班主任收集和输入学生的身份证号码,因为身份证数字位数多,既容易输错,逐一验证更是费工夫,如果能够用程序进行批量验证,把输错的号码找出来,只针对错误的号码进行验证就轻松得多了。本算法只能发现输入错误的18位身份证号码,不涉及身份证信息的解读和真伪验证。 VB程序的界面很简单,最少只要一个TEXTBOX和一个命令按钮(下图)。 TEXTBOX只要把MultiLine(多行)属性设为True和ScrollBar(滚动条)属性设为2-Vertical(垂直)即可。这样TEXTBOX就可以容纳多个身份证号码,每个一行。在EXCEL 表格里输好然后统一复制过来即可。 18位身份证的验证算法是这样的: ①.将前面的身份证号码17位数分别乘以不同的系数。从第一位到第十七位的系数分别为:7 9 10 5 8 4 2 1 6 3 7 9 10 5 8 4 2 ②.将这17位数字和系数相乘的结果相加。 ③.用加出来和除以11,看余数是多少? ④.余数只可能有0 1 2 3 4 5 6 7 8 9 10这11个数字。其分别对应的最后一位身份证的号码为1 0 X 9 8 7 6 5 4 3 2。 而程序的实现过程就是先把TEXTBOX内的身份证号码按行拆成字符数组,然后逐个对每个身份证号码的前17位进行计算,得出其校验码再与第18位号码进行对照,如果相同就是对的,如果不同则说明有输入错误。然后在每个错误的身份证号码后加上相关信息,使用者可以根据错误信息,只针对有错误的身份证号码来核对证件上的身份证号码。 按钮的代码如下: Private Sub Command1_Click() REM 准备工作,前17位系数和对应检验码放入数组 wi$ = "7 9 10 5 8 4 2 1 6 3 7 9 10 5 8 4 2" yzm$ = "1 0 X 9 8 7 6 5 4 3 2" Dim s1() As String Dim s2() As String s1 = Split(wi$, " ") s2 = Split(yzm$, " ") REM 获取身份证号并验证 Dim s() As String temp$ = Text1.Text

身份证校验码的解释

身份证校验码的解释 新居民身份证的号码是按照国家的标准编制的,由18位组成:前六位为行政区划代码,第七至第十四位为出生日期码,第15至17位为顺序码,第18位为校验码。作为尾号的校验码,是由号码编制单位按统一的公式计算出来的,如果某人的尾号是0-9,都不会出现X,但如果尾号是10,那么就得用X来代替,因为如果用10做尾号,那么此人的身份证就变成了19位,而19位的号码违反了国家标准,并且我国的计算机应用系统也不承认19位的身份证号码。Ⅹ是罗马数字的10,用X来代替10,可以保证公民的身份证符合国家标准。 身份证中第十八位数字的计算方法为: 1.将前面的身份证号码17位数分别乘以不同的系数。从第一位到第十七位的系数分别为:7、9、10、5、8、4、2、1、6、3、7、9、10、5、8、4、2。 2.将这17位数字和系数相乘的结果相加。 3.用加出来和除以11,看余数是多少? 4余数只可能有0 、1、2、3、4、5、6、7、8、9、10这11个数字。其分别对应的最后一位身份证的号码为1、0、X、9、8、7、6、5、4、3、2。 5.通过上面得知如果余数是2,就会在身份证的第18位数字上出现罗马数字的Ⅹ。如果余数是10,身份证的最后一位号码就是2。 例如:某男性的身份证号码是340524************。我们要看看这个身份证是不是合法的身份证。 首先:我们得出,前17位的乘积和是189 然后:用189除以11得出的结果是17 + 2/11,也就是说余数是2。 最后:通过对应规则就可以知道余数2对应的数字是x。所以,这是一个合格的身份证号码。

这里面说的很清楚了,最后一位是用来辨别身份证真假的一种办法。而不是同年同月同日生的人的识别码。 贴个JA V A实现的校验算法 public static char doV erify(String id); { char pszSrc[]=id.toCharArray();; int iS = 0; int iW[]={7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2}; char szVerCode[] = new char[]{'1','0', 'X', '9', '8', '7', '6', '5', '4', '3', '2'}; int i; for(i=0;i<17;i++); { iS += (int);(pszSrc-'0'); * iW; } int iY = iS%11; return szVerCode[iY]; } =IF(LEN(A101)=15,REPLACE(A101,7,,19)&MID("10X98765432",MOD(SUM(MID(REPLAC E(A101,7,,19),ROW(INDIRECT("1:17")),1)*2^(18-ROW(INDIRECT("1:17")))),11)+1,1),A101 excel计算最后一位的公式,也就是个校验码而已

身份证号码校验

Visual C++范例开发大全目录Mylaf 2012-10-23 第1篇VC++入门与基本文档视图 第1章Visual C++ 6.0 MFC程序设计快速入门 2 1.1 Visual C++ 6.0开发环境简介2 1.2 创建Visual C++ 6.0应用程序3 实例001 创建第一个MFC应用程序 3 实例002 创建第一个C++应用程序 4 第2章文档视图应用程序实例6 2.1 窗体操作6 实例003 实现启动时无子窗口的MDI程序 6 实例004 实现MDI应用程序启动时子窗口默认最大化7 实例005 MDI应用程序启动时主窗口默认最大化8 实例006 具有图片背景的MDI主窗口9 实例007 全屏显示的窗体12 实例008 创建带滚动条的窗体15 实例009 窗体拆分16 实例010 始终置顶的SDI程序17 实例011 不可移动的窗体18 实例012 创建不可改变大小的SDI窗口19 实例013 动态设置窗口位置和大小20 实例014 保存窗口状态21 实例015 双击主窗口弹出“打开”对话框23 2.2 标题栏25 实例016 获取标题栏高度25 实例017 获取标题栏上按钮的尺寸26 实例018 定制标题栏文字27 实例019 添加标题栏右键菜单项28 实例020 屏蔽标题栏右键系统菜单及隐藏按钮29 实例021 禁用标题栏上的最大化、最小化和关闭按钮30 实例022 显示和隐藏标题栏31 2.3 菜单32 实例023 获取菜单栏高度32 实例024 启用和禁用菜单33 实例025 动态添加菜单35 实例026 带单选标记的菜单36 实例027 复选标记的菜单38 实例028 带图标菜单的SDI程序39 实例029 带图标菜单的MDI 40 实例030 位图菜单41 实例031 创建客户区右键菜单43 实例032 隐藏和显示菜单栏44 实例033 为应用程序添加多语言支持45 2.4 工具栏48 实例034 工具栏按钮的添加、删除和分组48 实例035 不能停靠的工具栏48 实例036 下压式工具栏按钮49 实例037 给工具栏添加图像背景50 实例038 动态隐藏和显示工具栏51 2.5 状态栏52 实例039 显示和隐藏状态栏52 实例040 带进度条的状态栏53 实例041 在状态栏上加载图像54 实例042 滚动字幕的状态栏56 第3章对话框应用实例58 3.1 对话框界面58 实例043 设置对话框应用程序窗口启动位置58 实例044 半透明对话框59 实例045 创建不规则对话框应用程序60 实例046 拖动没有标题栏的对话框61 实例047 实现收缩对话框应用程序62 实例048 基于对话框的托盘程序64 实例049 为对话框应用程序添加菜单栏66 实例050 带有工具栏的对话框应用程序67 实例051 为对话框应用程序添加右键菜单68 实例052 模式对话框与非模式对话框69 实例053 属性页对话框71 实例054 向导式对话框72 实例055 为对话框应用程序添加启动界面73 实例056 为对话框应用程序添加百叶窗的启动界面76 3.2 通用对话框77 实例057 文件打开对话框78 实例058 在程序启动时弹出文件打开对话框79 实例059 在文件打开对话框中预览图片80 实例060 文件保存对话框81 实例061 选择文件夹对话框82 实例062 字体对话框84 实例063 颜色对话框86 实例064 查找与替换对话框87 第4章控件应用实例89 4.1 常见控件89 实例065 图文按钮89 实例066 具有随机图片背景的EditBox控件90 实例067 使用List Box显示系统逻辑磁盘驱动器列表92 实例068 利用列标题对列表视图进行数据排序93 实例069 使用Static Text控件显示当前系统时间95 实例070 使用Data Time Picker控件调整系统时间96 实例071 使用Combo Box控件控制字体大小97 实例072 使用Rich Edit控件显示文本文件98 实例073 使用Tree Control控件显示文件目录100 实例074 位图进度条102 实例075 使用Progress控件实现文字进度条103 实例076 使用Static Text控件显示当前时间104 实例077 使用Picture Box显示动态打开图像106 实例078 使用Group Box控件对控件分组107 实例079 使用Check Box实现多选109 实例080 使用Radio Button实现单选110 实例081 HorizontalScrollBar,VerticalScrollBar滚动条111

详解批量改照片名字为身份证号码

EXCEL为照片批量改身份证号码 河北省衡水市景县王千寺中学刘哲 1、准备照片,照片必须按照录入学生学籍信息的顺序采集。我这里以我创建的学生学籍照 片为例。 双击打开此文件夹,打开之后以这9张照片为例。 2、新建一个EXCEL工作表1,在先在学籍信息中复制学生的身份证号码。(注意多少个学生照片就多少个学生身份证号码)然后在新建的EXCEL工作表A列中,点击右键,使用选择性粘贴,在弹出的对话框中,选择数值,然后粘贴。 3、在B列粘贴这个公式括号内的公式(=A1&".JPG")这是给身份证号码添加后缀,为下一步做准备,在B列粘贴这个公式后,B1 就变成(下图),然后利用用填充柄向下拖动直到身份证号码结束的位置停止。

4、第一步:再新建一个EXCEL工作表2。在A列中输入照片名因为我的照片名字是从“CIMG4165.JPG”开始的,所以把CIMG4165.JPG放到A1,然后用填充柄向下拖动,一直到合适的数字为止(也就是你按顺序照的照片的最后一张照片的名字)。然后,复制我们在EXCEL工作表1中的B列中全部的数据,(也就是加后缀.JPG的身份证号码),然后在EXCEL 工作表2中的B1,点击右键,使用选择性粘贴,在弹出的对话框中,选择数值,然后粘贴。 第二步:在C列中复制以下内容括号内的公式(="REN "&A1&" "&B1&"")即可出现相应结果。 小贴士:这里的REN其实就是DOS中的重命名命令,本例中这句命令的意思是将A列中的名字重命名为B列中对应的名字,这条命令在EXCEL中无法使用,仅用来以备后用。 第三步:向下拖动该单元格的填充柄,直至对应左侧的内容。最终效果如图所示。最后将C列中的全部内容选中并进行复制。

身份证编码规则

中国公民身份证编号规则 一、身份证号码执行标准:18位身份证标准在国家质量技术监督局于1999年7月1日实施 的GB11643-1999《公民身份号码》。 GB11643-1999《公民身份号码》为GB11643-1989《社会保障号码》的修订版,其中指出将原标准名称“社会保障号码”更名为“公民身份号码”,另外GB11643-1999《公民身份号 码》从实施之日起代替GB11643-1989。 二、编码规则:公民身份号码是特征组合码,由十七位数字本体码和一位校验码组成。排列顺序从左至右依次为:六位数字地址码,八位数字出生日期码,三位数字顺序码和一位校验码,可以用字母表示如为ABCDEFYYYYMMDDXXXR。其含义如下: 1. 地址码(ABCDEF):表示编码对象常住户口所在县(市、旗、区)的行政区划代码, 按GB/T2260的规定执行。 2. 出生日期码(YYYYMMDD):表示编码对象出生的年、月、日,按GB/T7408的规定执行,年、月、日分别用4位、2位(不足两位加0)、2位(同上)数字表示,之间不用分 隔符。 3. 顺序码(XXX):表示在同一地址码所标识的区域范围内,对同年、同月、同日出生 的人编定的顺序号,顺序码的奇数分配给男性,偶数分配给女性。 4.校验码(R),一位数字,通过前17位数字根据一定计算得出。 第17位数字是表示在前16位数字完全相同时,某个公民的顺序号,并且单数用于男性,双数用于女性。如果前16位数字均相同的同性别的公民超过5人,则可以“进位”到第16位。比如:有6位女性公民前16位数字均相同,并假设第16位数是7,则这些女性公民的末两位编号分别为72,74,76,78,80,82。另外,还特殊规定,最后三位数为996,997,998,999这4个号码为百岁老人的代码,这4个号码将不再分配给任何派出所。

身份证正确检验及验证公式

验证公式一 =IF(LEN(H20)=18,IF(RIGHT(H20,1)="X",IF(CHOOSE(MOD(SUM(LEFT(RIGHT(H20,18) )*7 LEFT(RIGHT(H20,17))*9 LEFT(RIGHT(H20,16))*10 LEFT(RIGHT(H20,15))*5 LEFT(RIGHT(H20,14))*8 LEFT(RIGHT(H20,13))*4 LEFT(RIGHT(H20,12))*2 LEFT(RIGHT(H20,11))*1 LEFT(RIGHT(H20,10))*6 LEFT(RIGHT(H20,9))*3 LEFT(RIGHT(H20,8))*7 LEFT(RIGHT(H20,7))*9 LEFT(RIGHT(H20,6))*10 LEFT(RIGHT(H20,5))*5 LEFT(RIGHT(H20,4))*8 LEFT(RIGHT(H20,3))*4 LEFT(RIGHT(H20,2))*2),11) 1,1,0,"X",9,8,7,6,5,4,3,2)=LEFT(RIGHT(H20,1)),"正确!","出错啦! "),IF(CHOOSE(MOD(SUM(LEFT(RIGHT(H20,18))*7 LEFT(RIGHT(H20,17))*9 LEFT(RIGHT(H20,16))*10 LEFT(RIGHT(H20,15))*5 LEFT(RIGHT(H20,14))*8 LEFT(RIGHT(H20,13))*4 LEFT(RIGHT(H20,12))*2 LEFT(RIGHT(H20,11))*1 LEFT(RIGHT(H20,10))*6 LEFT(RIGHT(H20,9))*3 LEFT(RIGHT(H20,8))*7 LEFT(RIGHT(H20,7))*9 LEFT(RIGHT(H20,6))*10 LEFT(RIGHT(H20,5))*5 LEFT(RIGHT(H20,4))*8 LEFT(RIGHT(H20,3))*4 LEFT(RIGHT(H20,2))*2),11) 1,1,0,"X",9,8,7,6,5,4,3,2)=LEFT(RIGHT(H20,1))*1,"正确!","出错啦!")),IF(LEN(H20)=15,"老号,请注意!",IF(LEN(H20)=0,"缺号码","位数不对!"))) 验证公式二 =MID("10X98765432",MOD(SUMPRODUCT(MID(H20,ROW(INDIRECT("1:17")),1)*2^(18 -ROW(INDIRECT("1:17")))),11) 1,1)=RIGHT(H20,1) 身份证有15位和18位两种,身份证位数是否正确,我们可以用LEN函数判断。但身份证上的日期是否合法:月份是否在1-12之间,日期是否在1-31之间,并且2月份只有28或29天,其他月份30或31天,都不能超过范围。另外一般规定6岁以上才可以办理身份证,也就是年份也有一个超范围的可能性。综合起来看,有三类错误:“身份证位数不对”、“月日错误”、“年份错误”。 假定身份证号码在B1单元格,下面的公式可以综合判断以上三种错误: 验证公式三 =IF(OR(LEN(B1)=18,LEN(B1)=15),IF(LEN(B1)=18,IF(OR(MONTH(DATE(1*(MID(B1,7 ,4)),1*(MID(B1,11,2)),1*(MID(B1,13,2))))<>1*(MID(B1,11,2)),DAY(DATE(1*(M ID(B1,7,4)),1*(MID(B1,11,2)),1*(MID(B1,13,2))))<>1*(MID(B1,13,2))),"月日错误",""),IF(LEN(B1)=15,IF(OR(MONTH(DATE(1*(MID(B1,7,2)) 1900,1*(MID(B1,9,2)),1*(MID(B1,11,2))))<>1*(MID(B1,9,2)),DAY(DATE(1*(MID (B1,7,2)) 1900,1*(MID(B1,9,2)),1*(MID(B1,11,2))))<>1*(MID(B1,11,2))),"月

如何利用VisualBasic开发身份证号码批量验证工具软件

如何利用VisualBasic开发身份证号码批量 验证工具软件 导读:本文如何利用VisualBasic开发身份证号码批量验证工具软件,仅供参考,如果觉得很不错,欢迎点评和分享。 如何利用Visual Basic开发身份证号码批量验证工具软件作者/刘小龙 通过对身份证号码实际应用中存在的问题进行详细分析,我们发现每学年的学籍建档、国家助学金申报等方面都离不开身份证号码。同时,人工核对信息工作量大,也易出错,势必对工作造成一定的影响。为此,我们运用大学学习的一些VB知识,根据身份证号码编码规则编写了《身份证号码批量验证工具》软件,使身份证号码核对工作变得简单、轻松。 一、软件的设计步骤 二、软件详细设计 1. 解决方案与软件特色 本程序使用VB在Windows XP环境开发,解决了身份证号码验证过程中存在的易出错、工作量大的问题,支持Excel文件批量验证及信息追加,绿色免安装、小巧、实用性强。 2. 具体设计 下面就根据软件的操作流程图进行介绍软件的功能和实现原理:

(1)操作流程图。 参数设置说明:身份证号码、性别、出生年月所在列均以阿拉伯数字表示,性别、出生年月信息的追加属于选择项。 (2)身份证号码校验值计算函数代码。 Public Function sfzjym(num As String)As String Dim n1,n2,n3,n4,n5,n6,n7,n8,n9,n10,n11,n12,n13,n14,n15,n16,n17,y,s As Integer n1=Val(Mid$(num,1,1))*7 n2=Val(Mid$(num,2,1))*9 n3=Val(Mid$(num,3,1))*10 n4=Val(Mid$(num,4,1))*5 n5=Val(Mid$(num,5,1))*8 n6=Val(Mid$(num,6,1))*4 n7=Val(Mid$(num,7,1))*2 n8=Val(Mid$(num,8,1))*1 n9=Val(Mid$(num,9,1))*6 n10=Val(Mid$(num,10,1))*3 n11=Val(Mid$(num,11,1))*7 n12=Val(Mid$(num,12,1))*9 n13=Val(Mid$(num,13,1))*10 n14=Val(Mid$(num,14,1))*5 n15=Val(Mid$(num,15,1))*8

身份证号码验证规则

身份证号码验证规则 说明:该规则为平台通用规则,适用于所有填身份证号码的场景。 一、概述 身份证号码中的校验码是身份证号码的最后一位,是根据GB 11643-1999中有关公民身份号码的规定,根据精密的计算公式计算出来的,公民身份号码是特征组合码,由十七位数字本体码和一位数字校验码组成。排列顺序从左至右依次为:六位数字地址码,八位数字出生日期码,三位数字顺序码,最后一位是数字校验码。 身份证最后一位是根据前面十七位数字码,按照ISO 7064:1983.MOD 11-2校验码计算出来的检验码。作为尾号的校验码,是由号码编制单位按统一的公式计算出来的,如果某人的尾号是0-9,都不会出现X,但如果尾号是10,那么就得用X来代替,因为如果用10做尾号,那么此人的身份证就变成了19位,而19位的号码违反了国家标准,并且我国的计算机应用系统也不承认19位的身份证号码。Ⅹ是罗马数字的10,用X来代替10,可以保证公民的身份证符合国家标准。 二、需求 产品身份证号码输入框内限制输入18个数字、英文字符,判断身份证号码是否为合法身份证号。不合法及字段超出或未输入内容,则在输入框后显示提示语,具体提示语详见对应的文档。 三、计算方法 1、将前面的身份证号码17位数分别乘以不同的系数。从第一位到第十七位的系数分别为:7 9 10 5 8 4 2 1 6 3 7 9 10 5 8 4 2 ; 2、将这17位数字和系数相乘的结果相加; 3、用加出来和除以11,看余数是多少; 4、余数只可能有0 1 2 3 4 5 6 7 8 9 10这11个数字。其分别对应的最后一位身份证的号码为1 0 X 9 8 7 6 5 4 3 2; 5、通过上面得知如果余数是2,就会在身份证的第18位数字上出现罗马数字的X。如果余数是10,身份证的最后一位号码就是2; 例如:某男性的身份证号码是340524************。我们要看看这个身份证是不是合法的身份证。 首先:我们计算3*7+4*9+0*10+5*5+...+1*2,前17位的乘积和是189 然后:用189除以11得出的结果是商17余2 最后:通过对应规则就可以知道余数2对应的数字是x。所以,这是一个合格的身份证号码。

18位身份证号码检测

1.针对国内18位身份证号码验证,通过等价类划分法、边界值分析法设计相应的测试用例;根据〖中华人民共和国国家标准GB 11643-1999〗中有关公民身份号码的规定,公民身份号码是特征组合码,由十七位数字本体码和一位数字校验码组成。排列顺序从左至右依次为:六位数字地址码,八位数字出生日期码,三位数字顺序码和一位数字校验码。18位身份证号码各位的含义: 1-2位省、自治区、直辖市代码; 3-4位地级市、盟、自治州代码; 5-6位县、县级市、区代码; 7-14位出生年月日,比如19670401代表1967年4月1日; 15-17位为顺序号,其中17位男为单数,女为双数; 18位为校验码,0-9和X。作为尾号的校验码,是由号码编制单位按统一的公式计算出来的。等价类划分法: 输入条件有效等价类无效等价类地址码的第1位是1~8的整数(1) <1的整数(7) >1的整数(8) 地址码2~6位5位每一位都是0~9的整数 (2) 特殊字符 出生年月日7~14位11~12位为[01,12]的整数(3) 13~14位为[01,31]整数(4) 月<01(9) 月>12(10) 日<01(11) 日>31(12) 顺序码15~17位3位每一位都是0~9的整数 (5) 特殊字符 校验码第18位是0~9的整数或者是X(6)特殊字符 号码位数18 0 17 19 测试用例:

序号号 码 位 数 前17位 第18 位 输入内容预期结果 1 0 NULL 输入无效 2 17 4113021990100728 3 输入无效 3 19 41130219901007283 17 输入无效 4 18 (1)(2)(3)(4)(5) (6) 41130219901007283 1(X) 输入正确 5 特殊 字符 41130219901007283 1% 输入无效 6 (6)(2)(3)(4)(5 (6)01130219901007283 1 7 (7)(2)(3)(4)(5)91130219901007283 1 8 (1)特殊字符(3)(4)(5)41@30219901007283 1 9 (1)(2)(9)(4)(5)41130219900007283 1 10 (1)(2)(10)(4)(5)41130219901307283 1 11 (1)(2)(3)(11)(5)41130219901000283 1 12 (1)(2)(3)(12)(5)41130219901032283 1 13 (1) (2) (3) (4) (5) 闰 年 2 月 日为 [01,29] 41130220000227283 1 输入有效 日>29 41130220000230283 1 输入无效平2日为41130219990227283输入有效

用Excel校验身份证号码的方法

用Excel校验身份证号码的方法 威远县东联镇小学校·罗斌 身份证号码中的校验码是身份证号码的最后一位,是根据〖中华人民共和国国家标准GB 11643-1999〗中有关公民身份号码的规定,根据相应的规定计算出来的。公民身份号码是特征组合码,由十七位数字本体码和一位数字校验码组成。排列顺序从左至右依次为:六位数字地址码,八位数字出生日期码,三位数字顺序码,最后一位是数字校验码。 最后一位的数字校验码是由前17位唯一确定的,随便乱填的身份证号就不能通过校验。 下面分步详细介绍一下用Excel校验身份证号码的一种方法: 1.在D1到T1这17个单元格中依次输入1到17这17个数。 2.在D2中输入公式:=2^(18-D1)。单击D2拖动鼠标向右填 充到T2。 3.在D3中输入公式:=MOD(D2,11)以得到身份证第一位的校 验系数。单击D3拖动鼠标向右填充至T3可以得到前17位中每一位的校验系数。 4.在B5至B14中输入要校验的身份证号码(这里选择的是 10个身份证号码),实际选择的身份证号码数可以自定。 5.在D5中输入公式:=MID($B5,D$1,1)*1以提取身份证的第 一个数字,乘1的目的是将第一个数字由文本格式转为数字格式,便于后续的计算。单击D5拖动鼠标向右填充至T5可以得到身份

证号的前17位的每个数字。 6.在U5中输入公式:=SUMPRODUCT($D$3:$T$3,D5:T5)计算出前十七位数字和相应的校验系数的乘积之和。 7.在V5中输入公式:=MOD(1-U5,11)以得到该身份证的校验数。 8.在W5中输入公式:=IF(V5=10,"X",V5)以得到该身份证的校验码。 9.在X5中输入公式:=MID(B5,1,17)&W5得到由前17位计算出的正确的身份证号码。 10.在C5 中输入公式:=IF(B5=X5,"校验正确","号码错误!")以得到第一个身份证的校验结果。 11.选中C5至X5向下拖动鼠标填充到所需位置以显示出所有身份证的校验结果。 12.注意:输入身份证的单元格一定要设置为文本型的,否

相关文档
最新文档