StrToByte:字符串->字节数组
ByteToStr:字节数组->字符串
可转换中英文混合字符.
Private Sub StrToByte(s As String, b() As Byte)
Dim i As Long
Dim p As Long
Dim b1 As Byte, b2 As Byte
For i = 1 To Len(s)
If Asc(Mid$(s, i, 1)) >= 0 Then
ReDim Preserve b(p)
b(p) = Asc(Mid$(s, i, 1))
p = p + 1
Else
ReDim Preserve b(p + 1)
Call IntToByte(Asc(Mid$(s, i, 1)), b1, b2)
b(p) = b1
b(p + 1) = b2
p = p + 2
End If
Next i
End Sub
Private Sub IntToByte(n As Integer, b1 As Byte, b2 As Byte)
Dim s As String
s = Right$("0000" & Hex$(n), 4)
b1 = CByte("&H" & Left$(s, 2))
b2 = CByte("&H" & Right$(s, 2))
End Sub
Private Function ByteToStr(b() As Byte) As String
Dim i As Long
While i <= UBound(b)
If b(i) < 128 Then
ByteToStr = ByteToStr & Chr$(b(i))
i = i + 1
Else
ByteToStr = ByteToStr & Chr$(ByteToInt(b(i), b(i + 1)))
i = i + 2
End If
Wend
End Function
Private Function ByteToInt(b1 As Byte, b2 As Byte) As Integer
Dim s As String
Dim s1 As String, s2 As String
s1 = Right$("00" & Hex$(b1), 2)
s2 = Right$("00" & Hex$(b2), 2)
s = "&H" & s1 & s2
ByteToInt = CInt(s)
End Function