有一usb读卡器,读卡时会将信息发送到记事本里面,它有两种方式一种是读完没有回车键,一种是有回车,串码不定长,比如“123456 汉字 汉字”或直接只有数字等,但发过来的信息速度很快,能整串发出来,现在想截取出这串数据在数据库里做比对,怎么分别取得这串数而不会刷几次卡时候,几个数据混一块去了?

解决方案 »

  1.   

    可以通过Split来区分字符串,以“回车”为分割符
      

  2.   

    思路:
    1、打开文本文件,将文本文件的内容存入到字符串
    2、通过Split划分字符串,每个数组元素就是一次刷卡内容
      

  3.   

    加空格用split处理我可以理解。现在不明白的是怎么接收读取的数据,因为usb不像串口中断那样,一有中断就读进来处理,usb有加回车的可以知道回车后是一串数据,如果没加回车的就不知道这串数据是不是完整的,虽然读取的速度很快。
      

  4.   

    如果是键盘输入回车还能通过ascii=13来判断回车,读卡器从usb读到文本框的方式我试过好像这种方式不能获取?
      

  5.   

    顶一顶贴!
    usb接口(非串口)传到文本框的数据,为什么判断不了接收了什么呢?用以下测试:
    1、
    Private Sub Text1_KeyPress(KeyAscii As Integer)
        If KeyAscii = 13 Then  msgbox Text1.Text 
    End Sub
    判断回车不起作用,keydown keyup,keychange同样不起作用。2、
    Private Sub Text1_KeyPress(KeyAscii As Integer)
    If Len(Text1) >= 12 Then
    MsgBox Text1.Text
    End If
    End Sub
    可以起作用,因为Text1已经有输入数据,不过数据不定长的,如果是用Len(Text1) >= 2获取的数据就会截成几段比如TEXT1="123456",MSGBOX 会得到12 34 56,我想得到整串msgbox 123456。