以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- 在身份证阅读器获取数据时候,出现有效期是长期,那么在有效期时间列属性中会报错,求解! (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=52258) |
-- 作者:李孝春 -- 发布时间:2014/6/12 10:30:00 -- 在身份证阅读器获取数据时候,出现有效期是长期,那么在有效期时间列属性中会报错,求解! 附表结构图及说明 错误提示如下 代码如下: Dim Info As String Info = FileSys.ReadAllText(ApplicationPath & "wz.txt", Encoding.Unicode) \'读取生成的文本文件 info = info.Replace(vbcrlf,vblf) \'将回车换行替换为换行 Dim pars() As String = Info.Split(vblf) \'将读取的信息拆分为数组 Dim r As Row = Tables("表A").AddNew Dim s As String = pars(0).Trim() r("备注") = s Dim xm As String = s.split(" ")(0) r("姓名") = xm s = s.Replace(xm,"").Trim() Info = FileSys.ReadAllText(ProjectPath & "mz.INI",Encoding.Default) \'读取生成的文本文件 For Each Str As String In Info.Split(Chr(10), Chr(13)) If Str.StartsWith(s.SubString(1,2)) Then r("名族") = Str.Replace(s.SubString(1,2) & "=", "") Exit For End If Next r("住址") = s.split(" ")(0).SubString(11) s = s.Replace(s.split(" ")(0),"").Trim() r("身份证号码") = s.SubString(0,18) Dim xbm As Integer = val(s.SubString(0,18).SubString(16,1)) Mod 2 r("性别") = "女,男".split(",")(xbm) r("出生日期") = s.SubString(0,18).SubString(6,8).Insert(6,"-").Insert(4,"-") s = s.Replace(s.SubString(0,18),"").Trim() r("发证机关") = s.split(" ")(0) s = s.Replace(s.split(" ")(0),"").Trim() r("签发日期") = s.SubString(0,8).Insert(6,"-").Insert(4,"-") r("有效日期") = s.SubString(8,8).Insert(6,"-").Insert(4,"-") 求修改这个代码地方
[此贴子已经被作者于2014-6-12 10:33:59编辑过]
|
-- 作者:有点甜 -- 发布时间:2014/6/12 11:13:00 -- 加一个判断,处理
If s.Contains("长期") Then |
-- 作者:李孝春 -- 发布时间:2014/6/12 11:20:00 -- 回复:(有点甜) 加一个判断,处理 If... 感谢有点甜老师! r("有效日期") = Date.Today.AddYears(200)
有点甜老师 这个增加两百年?呵呵 开个玩笑 那不成人妖啦! 有没有办法直接显示为长期字样呢? |
-- 作者:有点甜 -- 发布时间:2014/6/12 11:43:00 -- 回复3楼,除非你这一列弄成 字符列,日期列只能存日期。 |
-- 作者:李孝春 -- 发布时间:2014/6/12 11:58:00 -- 回复:(有点甜) 回复3楼,除非你这一列弄成 字... 貌似可以弄成字符咧哦 弄成字符咧代码会不会变! 因为这个有效日期就是从已经生成的WZ.TEXT中利用字符读取出来的
|
-- 作者:有点甜 -- 发布时间:2014/6/12 12:00:00 -- 弄成字符列以后没问题的。
不过,你截取信息的时候,如果是长期的情况的话,有可能后面截取到的信息需要调整一下位置。 |
-- 作者:李孝春 -- 发布时间:2014/6/12 12:03:00 -- 回复:(有点甜)?弄成字符列以后没问题的。&n... r("有效日期") = s.SubString(8,8).Insert(6,"-").Insert(4,"-") 将这个转换为 r("有效日期") = s.SubString(4,4) 可否 在上面的判断事件中用这个代码 wx记事本文件如下: 夏万春 男 汉族 19830304 贵州省瓮安县珠 52272519830304711X 瓮安县公安局 20101109 长期 [此贴子已经被作者于2014-6-12 12:05:48编辑过]
|
-- 作者:有点甜 -- 发布时间:2014/6/12 12:07:00 -- 回复7楼,可以。后面的位置跟着变即可。 |
-- 作者:李孝春 -- 发布时间:2014/6/12 15:57:00 -- 回复:(有点甜) 回复7楼,可以。后面的位置跟着... 有点甜老师 谢谢你 根据你的思路 我将代码改成了如下: If s.Contains("长期") Then r("有效日期") = “长期” Else r("有效日期") = s.SubString(8,8).Insert(6,"-").Insert(4,"-") 求修改这个代码地方 End If 问题圆满解决!再次感谢!
|