Foxtable(狐表)用户栏目专家坐堂 → 在身份证阅读器获取数据时候,出现有效期是长期,那么在有效期时间列属性中会报错,求解!


  共有4304人关注过本帖树形打印复制链接

主题:在身份证阅读器获取数据时候,出现有效期是长期,那么在有效期时间列属性中会报错,求解!

帅哥哟,离线,有人找我吗?
李孝春
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:九尾狐 帖子:2472 积分:17346 威望:0 精华:0 注册:2013/1/31 0:03:00
在身份证阅读器获取数据时候,出现有效期是长期,那么在有效期时间列属性中会报错,求解!  发帖心情 Post By:2014/6/12 10:30:00 [只看该作者]

附表结构图及说明

图片点击可在新窗口打开查看此主题相关图片如下:0123.jpg
图片点击可在新窗口打开查看
错误提示如下

图片点击可在新窗口打开查看此主题相关图片如下:0123456.jpg
图片点击可在新窗口打开查看

代码如下:
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编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2014/6/12 11:13:00 [只看该作者]

 加一个判断,处理

 

If s.Contains("长期") Then
    r("有效日期") = Date.Today.AddYears(200)
Else
    r("有效日期") = s.SubString(8,8).Insert(6,"-").Insert(4,"-")      求修改这个代码地方
End If


 回到顶部
帅哥哟,离线,有人找我吗?
李孝春
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:九尾狐 帖子:2472 积分:17346 威望:0 精华:0 注册:2013/1/31 0:03:00
回复:(有点甜) 加一个判断,处理 If...  发帖心情 Post By:2014/6/12 11:20:00 [只看该作者]

感谢有点甜老师! 

r("有效日期") = Date.Today.AddYears(200)

有点甜老师  这个增加两百年?呵呵  开个玩笑  那不成人妖啦!

有没有办法直接显示为长期字样呢?

 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2014/6/12 11:43:00 [只看该作者]

 回复3楼,除非你这一列弄成 字符列,日期列只能存日期。

 回到顶部
帅哥哟,离线,有人找我吗?
李孝春
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:九尾狐 帖子:2472 积分:17346 威望:0 精华:0 注册:2013/1/31 0:03:00
回复:(有点甜) 回复3楼,除非你这一列弄成 字...  发帖心情 Post By:2014/6/12 11:58:00 [只看该作者]

貌似可以弄成字符咧哦 弄成字符咧代码会不会变!
因为这个有效日期就是从已经生成的WZ.TEXT中利用字符读取出来的

 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2014/6/12 12:00:00 [只看该作者]

 弄成字符列以后没问题的。

 

 不过,你截取信息的时候,如果是长期的情况的话,有可能后面截取到的信息需要调整一下位置。


 回到顶部
帅哥哟,离线,有人找我吗?
李孝春
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:九尾狐 帖子:2472 积分:17346 威望:0 精华:0 注册:2013/1/31 0:03:00
回复:(有点甜)?弄成字符列以后没问题的。&n...  发帖心情 Post By:2014/6/12 12:03:00 [只看该作者]

 r("有效日期") = s.SubString(8,8).Insert(6,"-").Insert(4,"-") 



将这个转换为
 r("有效日期") =  s.SubString(4,4)
可否  
在上面的判断事件中用这个代码

wx记事本文件如下:
夏万春
汉族
19830304
贵州省瓮安县珠
52272519830304711X
瓮安县公安局
20101109
长期

[此贴子已经被作者于2014-6-12 12:05:48编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2014/6/12 12:07:00 [只看该作者]

 回复7楼,可以。后面的位置跟着变即可。


 回到顶部
帅哥哟,离线,有人找我吗?
李孝春
  9楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:九尾狐 帖子:2472 积分:17346 威望:0 精华:0 注册:2013/1/31 0:03:00
回复:(有点甜) 回复7楼,可以。后面的位置跟着...  发帖心情 Post By:2014/6/12 15:57:00 [只看该作者]

有点甜老师  谢谢你

根据你的思路 我将代码改成了如下:
If s.Contains("长期") Then
    r("有效日期") = “长期”
Else
    r("有效日期") = s.SubString(8,8).Insert(6,"-").Insert(4,"-")      求修改这个代码地方
End If

问题圆满解决!再次感谢!

 回到顶部