none
字符窜转化为字节数组问题? RRS feed

  • 问题

  • Private Sub Command1_Click()
    Dim buf() As Byte
    Dim str As String
    Dim i
    Dim temr

    str = "GPIO 40 1" & Chr(10) & Chr(13)
    buf = StringToBytes(str)

    For i = 0 To UBound(buf) - 1
       
        If Len(buf(i)) = 1 Then
            temr = temr & buf(i) & "0"
        Else
            temr = temr & buf(i)
        End If
    Next

    MsgBox temr

    End Sub

    '辅助函数:BSTR字符串转换为CHAR字符串
    Function StringToBytes(ByVal szText As String) As Byte()

        If Len(szText) > 0 Then
            StringToBytes = StrConv(szText, vbUnicode) 'vbFromUnicode)
        End If

    End Function

    但是上面的打印结果却不对,中间包括了很多00,这是为什么呢?

    有没有其他方法将字符窜改为字节数组呢?

    开发工具:VB6.0

     

    2011年3月2日 2:58

答案

  • Private Sub Command1_Click()
    Dim buf() As Byte
    Dim str As String
    Dim i
    Dim temr
    Dim length

    str = "GPIO 40 1" & Chr(10) & Chr(13)

    length = Len(str)
    ReDim buf(length - 1)
    For i = 0 To length - 1

        buf(i) = Asc(Mid(str, i + 1, 1))

    Next

    For i = 0 To UBound(buf)
       
        If Len(buf(i)) = 1 Then
            temr = temr & Chr(buf(i))
        End If
       
    Next

    MsgBox temr

    End Sub
    问题解决了,如果有更好的,希望大家能共享,O(∩_∩)O谢谢!

    • 已标记为答案 Warden_ 2011年3月2日 3:43
    2011年3月2日 3:43