byte动态数组是可以直接跟字符串变量进行=的,
这点大家都应该知道。我现在要问的是一个BYTE数组,
挨个将其值(0-255)拼成一个字符串,
有没有好的方法。现在是循环,一个个cstr加“,”拼接。for i=0 to ubound(b)
    s=s & "," cstr(b(i))
next
s=mid(s,2)

解决方案 »

  1.   

    还有一个:StrConv 函数
    楼主可以试一下。
      

  2.   


    dim a() as string
    a=b
    s=join(a,",")
      

  3.   

    我没有验证,用join试试, 如BYTE数组是sByte(255)
    s = join(sByte,",")
      

  4.   

    3楼,是BYTE数组,不是STRING数组。
      

  5.   

    Option Explicit
    Dim byteP() As Byte
    Private Sub Command1_Click()
        
        byteP = StrConv(Text1.Text, vbUnicode)
    End SubPrivate Sub Command2_Click()
        Text2.Text = StrConv(byteP, vbFromUnicode)
    End Sub
      

  6.   

    这样写没有问题
    Private Sub Form_Load()
        Dim sByte(254) As Byte, ss(254) As String
        Dim i As Long, s As String
        For i = 0 To 254
           sByte(i) = i
        Next
        For i = 0 To 254
           ss(i) = sByte(i)
        Next
        s = Join(ss, ",")
        MsgBox s
    End Sub
      

  7.   

    不管怎么样都得用循环,用join的也是拆了再合的
    不过LZ这贴的分真是多
      

  8.   

    试下这样子
        Dim strTmp As String
        Dim bytBuffer() As Byte
        Dim i As Long, j As Long
        Dim pArrayAddress As Long
        Dim pStringAddress As Long
        Dim Length As Long
        Dim pTmp As Long    
        bytBuffer = StrConv("Test", vbFromUnicode)
        Length = (UBound(bytBuffer) + 1) * 2    strTmp = String((UBound(bytBuffer) + 1) * 2, 0)
        pArrayAddress = VarPtr(bytBuffer(0))
        pStringAddress = StrPtr(strTmp)
        j = 0
        pTmp = pStringAddress
        For i = 1 To Length - 1 Step 2
            CopyMemory ByVal pTmp, ByVal pArrayAddress + j, 1
            pTmp = pTmp + 2
            j = j + 1
        Next
        pTmp = 44
        For i = 2 To Length Step 2
            CopyMemory ByVal pStringAddress + (i - 1), pTmp, 1
        Next
      

  9.   


    Private Sub Command1_Click()
      Dim lpData(3)     As Byte
      Dim ss     As String
      
      lpData(0) = 97
      lpData(1) = 98
      lpData(2) = 99
      lpData(3) = 100
      
      ss = StrConv(lpData, vbUnicode)
      
      MsgBox ss
      
    End Sub结果 abcd
    呵呵,挺怪
      

  10.   

    这个可以吗?
    '' 代码
    Dim b(0 to N) as Byte
    '此处对 b(N) 赋值
    Dim s as String
    Dim N as Integer,i As IntegerN=UBound(b)
    s=""
    For i = 0 To N
      s = s & chr(b(i))
    next i
    s = StrConv(s, vbUnicode)
    msgbox s
    ''''' ========= End ===================