您的位置:程序门 -> vb ->



串口通信,数据处理,unicode转换,大侠来急救,搞了2天了,没想明白


[收藏此页] [打印本页]选择字色:背景色:字体:[][][]


串口通信,数据处理,unicode转换,大侠来急救,搞了2天了,没想明白[已结贴,结贴人:charly_ye]
发表于:2007-08-07 19:08:10 楼主
在下现在做串口通信,使用modbus协议
问题就是   vb的unicode带来的
    byte的数组   中2个byte为数据位置,其实里面是4个byte的空间
    data(0)=0
    data(1)=1
    实际表示的数值是     00   01
当我输入比较小的数值的时候,直接写入数组,可以使用这样的方法,
但是现在我需要写入比较大的数值,
例如,写入65514     16进制   位ff   ea  
想要得到的效果就是data(0)=ff   data(1)=ea
dim   data1   as   long
data1   =   65514

dim   data2   as   string
data2   =   hex(data1)

dim   data3()   as   byte
data3   =   data2

text1.text   =   ubound(data3)     显示为7个byte,里面的内容倒是正确的16进制
想要达到的效果   ubound(data3)=1   ,0   1,就是2个byte的unicode

各位大侠来帮帮忙啊,在下初学vb,以前用c,还没碰到过unicode这回事
发表于:2007-08-07 20:33:201楼 得分:30
private   sub   form_click()
dim   data1   as   long
data1   =   655140
dim   data2   as   string
data2   =   hex(data1)
dim   data3()   as   byte,   ls   as   long,   i   as   long
ls   =   len(data2)
if   ls   mod   2   =   1   then
data2   =   "0 "   &   data2
ls   =   ls   +   1
end   if
redim   data3(ls   /   2)
for   i   =   1   to   ls   -   1   step   2
data3((i   +   1)   /   2   -   1)   =   "&h "   &   mid(data2,   i,   2)
print   data3((i   +   1)   /   2   -   1)
next
end   sub


快速检索

最新资讯
热门点击