注册 登录
编程论坛 VB6论坛

网口的问题

chen3bing 发布于 2019-09-23 08:21, 1382 次点击
Dim MyStr As String

。。。。。。。。。。。。。。。。。。。。。。。
Call SckServer.GetData(arrBuff, vbByte, bytesTotal)
    MyStr = StrConv(arrBuff, vbUnicode)
   
    Charnum = Len(MyStr)
    '
    a = 0
    b = 0
    For i = 0 To (Charnum - 1)
        
        fbuf = Mid(MyStr, i + 1, 1)
        If (fbuf = ".") Then
            b = i
        ElseIf (fbuf = "-") Then
            a = i
        Else
            
            Encoder(i) = Mid(MyStr, i + 1, 1)
        End If
           
    Next
我网口中断里是这样写的,只能存放字符,不是字符的就不好收发。
我想改成能收发任意16进制的,该怎么改呀?谢谢!

[此贴子已经被作者于2019-9-23 08:22编辑过]

1 回复
#2
风吹过b2019-09-24 11:09
arrBuff 这个变量是byte类型的数组,然后经过这行命令
    MyStr = StrConv(arrBuff, vbUnicode)
变成了一个字符串,在这个命令里,非可显示字符的部分就会被丢弃。
所以你要对任意16进制数据,直接对 arrBuff 这个数组操作。
    For i = 0 To ubound(arrbuff)
        If (arrbuff(i)= ?? ) Then       '?? 填 "." 的ASCII 码值
            b = i
        ElseIf (arrbuff(i)= ?? ) Then     '?? 填 "-" 的ASCII 码值
            a = i
        Else
            
            Encoder(i) = Mid(MyStr, i + 1, 1)      '取下一个?  chr(arrbuff(i+1)),需要转字符吗?
        End If
1