首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > VB >

字符串转换成字节数组解决办法

2013-02-02 
字符串转换成字节数组本帖最后由 bcrun 于 2013-01-30 10:31:53 编辑Dim bytInput() As ByteDim i As Inte

字符串转换成字节数组
本帖最后由 bcrun 于 2013-01-30 10:31:53 编辑

Dim bytInput() As Byte
Dim i As Integer
Dim buffer As String'这个语句是定义在通用里面的
 Select Case MSComm1.CommEvent
        Case comEvReceive
           MSComm1.InputMode = 1                    '0:文本方式,1:二进制方式
bytInput = MSComm1.Input
          For i = LBound(bytInput) To UBound(bytInput)
 buffer = buffer + Hex(bytInput(i)) + Chr(32)
        Text1.Text = buffer
     Next i
 End Select


我现在接收到的数据是68 2F 2F 68 0 2 8 32 3 0 0 0 0 0 2 0 1E 0 0 4 4 FF 4 0 8 1 0 FF 4 0 8 2 0 FF 4 0 8 7D 0 FF 4 0 40 64 0 0 0 0 0 0 0 AF 16 

我现在的问题是:一、如何把这个字符串转化成字节数组

二、如何让 MSComm1收完这个长度的字符串后就清空buffer变量的值,以免数据积累下去。

多谢大家的指教
[解决办法]
strconv函数处理
[解决办法]
dim s as string
s = "68 2F 2F 68 0 2 8 32 3 0 0 0 0 0 2 0 1E 0 0 4 4 FF 4 0 8 1 0 FF 4 0 8 2 0 FF 4 0 8 7D 0 FF 4 0 40 64 0 0 0 0 0 0 0 AF 16"
dim datastr() as string
datastr = Split(s, " ")
dim result() as byte
redim result(lbound(datastr) to ubound(datastr))
dim i as integer
for i = lbound(datastr) to ubound(datastr)
    result(i) = cbyte(val("&H" & datastr))
next
[解决办法]
用Split()函数。
[解决办法]
Dim str As String = "68 2F 2F 68 0 2 8 32 3 0 0 0 0 0 2 0 1E 0 0 4 4 FF 4 0 8 1 0 FF 4 0 8 2 0 FF 4 0 8 7D 0 FF 4 0 40 64 0 0 0 0 0 0 0 AF 16 "
Dim ary = str.Split(New String() {" "}, StringSplitOptions.RemoveEmptyEntries).[Select](Function(t) CByte(Convert.ToInt32(t, 16))).ToList()

[解决办法]
你收到的 bytInput 就是字节数组。是后续代码又转成字符串的。

热点排行