标题:网口的问题
只看楼主
chen3bing
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:507
专家分:104
注 册:2008-11-12
结帖率:91.22%
已结贴  问题点数:10 回复次数:1 
网口的问题
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编辑过]

搜索更多相关主题的帖子: Mid Then 收发 存放 字符 
2019-09-23 08:21
风吹过b
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:364
帖 子:4912
专家分:29900
注 册:2008-10-15
得分:10 
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

授人于鱼,不如授人于渔
早已停用QQ了
2019-09-24 11:09



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-496950-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.026263 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved