紧急:variant 数据类型转换到 Byte 时的问题

carol1980 2006-07-10 11:25:17
谢谢看贴地朋友们~ 我有一个比较紧急的小问题,代码如下:

Private Sub Form_Load()
Dim a As Variant
Dim b() As Byte
Dim i As Integer

a = "hello"
ReDim b(10)

b = a
For i = 0 To 9
Debug.Print ("b" & i & "= " & b(i))
Next i

End Sub

输出的结果是:

b0= 104
b1= 0
b2= 101
b3= 0
b4= 108
b5= 0
b6= 108
b7= 0
b8= 111
b9= 0

我的问题是,是不是因为variant在vb6下是16位的,所以多出这么多的0。
怎样才能顺利得到下面的结果:

!注意! 要求可以输出ascii 0-255 的值的,谢谢~
b0= 104
b1= 101
b2= 108
b3= 108
b4= 111

谢谢大家拉~ 寻求优美简洁地程序。
...全文
151 点赞 收藏 8
写回复
8 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
nevsong 2006-07-12
可以自己写一个转换函数
回复
carol1980 2006-07-11
是啊,我要0-255的ASCII的~
回复
一笑拔剑 2006-07-11
好像这样转换后是字符吧
不合适
回复
viena 2006-07-11
strConv(a,vbFromUnicode)
回复
carol1980 2006-07-11
nevsong(绿水青山) 有没有相应的函数或者好一点的方法来转换呢?

我知道一个与此相关的函数 strConv 但好像不适用与这个
回复
viena 2006-07-11
b = strConv(a,vbFromUnicode)
回复
carol1980 2006-07-11
继续问一下~
回复
nevsong 2006-07-10
应该是 一个字母分 高低两个直接保存 的, 而英文字母的高字节是00,低字节就是你输出的结果!

b(i*2)=低字节
b(i*2+1)=高直接

For i = 0 To 9 step 2
Debug.Print ("b" & i & "= " & b(i))
Next i
回复
相关推荐
发帖
VB基础类
创建于2007-09-28

7486

社区成员

VB 基础类
申请成为版主
帖子事件
创建了帖子
2006-07-10 11:25
社区公告
暂无公告