读卡器字符串问题
Public Declare Function GetPosInfo Lib "ComDll.dll" (ByVal psCardData As String, nTimeOut As Integer) As Integer
这是个读卡器的读卡函数,用这个函数来读取出一串字符串
例如读出字符串是"广东省解放路120号 51000010A95B120D"
"地址:广东省解放路120号 "
"区号:510000"
"检验码:10A95B120D"
我是用下面那个函数来截取的
问题就是.有时截取出来的字符变成"区号:000001" ,"检验码:0A95B120D"
因为读卡器供应商说他那个读出来是ascii码.所以我怀疑是不是我的读取程序的编码问题
或者麻烦各位帮忙看下我的这个函数有没有问题?
或者是其它的问题
Public Function getCardSubString(strCard As String, startPosition As Integer, strlength As Integer) As String
Dim byteAry() As Byte
Dim temAry() As Byte
Dim str As String
Dim I As Integer
Dim J As Integer
byteAry = Space$(256)
temAry = Space$(strlength / 2 + 1)
byteAry = StrConv(strCard, vbFromUnicode)
J = 0
For I = startPosition To startPosition + strlength - 1
temAry(J) = byteAry(I)
J = J + 1
Next I
[解决办法]
是串口通信吗?是串口通信的话,建议你先用串口调试器调试好了通信在编写程序。
[解决办法]
前面的数据头长度不一样的关系吧,1-7位是啥内容
[解决办法]
Public Function getCardSubString(strCard As String, _ startPosition As Integer, _ strlength As Integer _ ) As String Dim sSrc As String Dim sSub As String sSrc = StrConv(strCard, vbFromUnicode) sSub = MidB$(sSrc, startPosition + 1, strlength) getCardSubString = StrConv(sSub, vbUnicode)End Function
[解决办法]
帮顶..........
[解决办法]
up~~~~~~~~~~~~~~~~