比如,我定义了一个叔祖
dim  aa(3) as byte
dim i as integer
for i=0 to 3
aa(i)=i
next i
给数组各元素付了初值,我现在定义一个字符串
dim a4 as string *4
我怎么把数组各元素的值转换成a4的值呢,
谢谢
要是我再把a4的值放到一个新的数组里,比如说a(3)
dim a(3) as byte,
那我有该怎么处理呢,
谢谢各位大侠帮忙,谢谢哦,谢谢
因为我要在WORD 的VARIABLES 中保存这些数组,但是不支持保存数组,所以只好把数组变成STRING变量,我用下面的函数进行转化
public function StringToArray(str as string) as byte()
dim i as integer
redim StringToArray(len(i))
for i=1 to len(str)
StringToArray(i)=mid(str,i,1)
next
end function
public function ArrayToString(arr as byte()) as string
dim i as integer
ArrayToString=space(ubound(arr))
for i=1 to ubound(arr)
mid(ArrayToString,i,1)=arr(i)
next
end function
我用了上面的两个函数进行转换,
但是如果我的数组元素比如说为167,7,246,227,189....
讲过两个函数转换后变成了     1,  7,2, 2,  1,
函数只转换了最高位的数字,而舍弃了,后两位。。
怎么解决,谢谢各位帮忙!/谢谢

解决方案 »

  1.   

    这个问题并不难啊,
    你的目的是:
    Byte -> String -> Byte
    则:
    Dim a(3) as byte  //Source Byte
    Dim str(3) as string  //String
    Dim b(3) as byte  //Destination Byte
    Private Sub ToString()
    for i=0 to 3
      str(i)=cstr(a(i))
    next
    End SubPrivate Sub ToByte()
    for i=0 to 3
      b(i)=cbyte(str(i))
    next
    End Sub这样不行了吗??哈哈,不要想得太复杂哦~~~
      

  2.   

    问题并不难:
    dim  aa(3) as byte
    dim i as integer
    for i=0 to 3
    aa(i)=i
    next i
    dim a4 as string
    a4=StrConv(aa, vbUnicode)'Byte to Stringaa=StrConv(a4,vbFromUnicode)'String to Byte
      

  3.   

    但是如果我的数组元素比如说为167,7,246,227,189....
    讲过两个函数转换后变成了     1,  7,2, 2,  1,
    函数只转换了最高位的数字,而舍弃了,后两位。。
    原因是::ArrayToString=space(ubound(arr))
    space(n) 函数是产生n个空格的字符串,也就是数组中有几个元素就会产生几个空格,只能放一位数字
      

  4.   

    非文本的字节数组是无法与String正确相互转换的。变通办法可参见下面的贴子:
    http://community.csdn.net/Expert/topic/3878/3878218.xml?temp=.3738062
      

  5.   

    For i = 1 To UBound(arr)
            arraytostring = arr(i)
            Picture1.Print arraytostring
            arraytostring = ""
        Next i
    第二个过程稍微改动一下,试试