可以了,长度调整到80,可以取到了。
厂家的人就给了3个dll,这些代码都是网上查的,这几天排列组合测试至少500次。
以下是完整的声明和调用语句,注释的语句请无视,还得继续呢。
Public Declare Function CVR_InitComm Lib "termb.dll" Alias "CVR_InitComm" (ByVal Port As Integer) As Integer '连接设备
Public Declare Function CVR_Authenticate Lib "termb.dll" Alias "CVR_Authenticate" () As Integer '验证身份证
Public Declare Function CVR_Read_Content Lib "termb.dll" Alias "CVR_Read_Content" (ByVal Active As Integer) As Integer '读取身份证信息
Public Declare Function CVR_CloseComm Lib "termb.dll" Alias "CVR_CloseComm" () As Integer '关闭设备
Public Declare Function GetPeopleName Lib "termb.dll" Alias "GetPeopleName" (ByVal strTmp As StringBuilder, ByRef strLen As Integer) As Integer '得到姓名信息
Public Declare Function GetPeopleSex Lib "termb.dll" Alias "GetPeopleSex" (ByVal strTmp As StringBuilder, ByRef strLen As Integer) As Integer '得到性别信息
Public Declare Function GetPeopleNation Lib "termb.dll" Alias "GetPeopleNation" (ByVal strTmp As StringBuilder, ByRef strLen As Integer) As Integer '得到民族信息
Public Declare Function GetPeopleBirthday Lib "termb.dll" Alias "GetPeopleBirthday" (ByVal strTmp As StringBuilder, ByRef strLen As Integer) As Integer '得到出生日期
Public Declare Function GetPeopleAddress Lib "termb.dll" Alias "GetPeopleAddress" (ByVal strTmp As StringBuilder, ByRef strLen As Integer) As Integer '得到地址信息
Public Declare Function GetPeopleIDCode Lib "termb.dll" Alias "GetPeopleIDCode" (ByVal strTmp As StringBuilder, ByRef strLen As Integer) As Integer '得到身份证号信息
Dim Info As String
Dim ls_id1 As String
Dim ls_id1_sb As New StringBuilder(30)
Dim ls_id2 As String
Dim ls_name As String
Dim ls_name_sb As New StringBuilder(80)
Dim ls_sex As String
Dim ls_sex_sb As New StringBuilder(30)
Dim ls_nation As String
Dim ls_nation_sb As New StringBuilder(30)
Dim ls_birthday As String
Dim ls_birthday_sb As New StringBuilder(30)
Dim ls_address As String
Dim ls_address_sb As New StringBuilder(80)
Dim i As Integer
Dim j As Integer = 30
'Info = FileSys.ReadAllText(ApplicationPath & "wz.txt", Encoding.Default) '读取生成的文本文件
'info = info.Replace(vbcrlf,vblf) '将回车换行替换为换行
'Dim pars() As String = Info.Split(vblf) '将读取的信息拆分为数组
i = GetPeopleIDCode(ls_id1_sb, j)
ls_id1 = ls_id1_sb.Tostring
i = GetPeopleName(ls_name_sb, 80)
ls_name = ls_name_sb.Tostring
i = GetPeopleSex(ls_sex_sb, j)
ls_sex = ls_sex_sb.Tostring
i = GetPeopleNation(ls_nation_sb, j)
ls_nation = ls_nation_sb.Tostring
i = GetPeopleBirthday(ls_birthday_sb, j)
ls_birthday = ls_birthday_sb.Tostring
i = GetPeopleAddress(ls_address_sb, 80)
ls_address = ls_address_sb.Tostring
messagebox.show(ls_name & i )
'i = Tables("人员信息").Rows.count
'For j = 0 To i - 1
'ls_id2 = Tables("人员信息")(j,"身份证号")
'If ls_id2 = ls_id1 Then
'MessageBox.Show("此面试人员信息已存在:" & ls_name & "|" & ls_id1,"提示")
'Else
Dim r As Row = Tables("人员信息").AddNew
r("姓名") = ls_name
r("性别") = ls_sex
r("民族") = ls_nation
r("出生日期") = ls_Birthday
''r("出生日期") = pars(3).replace("年","-").Replace("月","-").Replace("日","")
r("住址") = ls_address
r("身份证号") = ls_id1
''r("发证机关") = pars(6)
''r("签发日期") = pars(7).SubString(0,10).Replace(".","-")
''r("有效日期") = pars(7).SubString(11).Replace(",","-")
r("面试日期") = Today
FileSys.CopyFile(ApplicationPath & "zp.bmp", ProjectPath & "\Attachments\" & r("身份证号") & ".bmp",True) '照片复制到Attachments目录
r("照片") = r("身份证号") & ".bmp"
'End If
'Next