如果字节数组mybyte(0)带
,如何将字符串输入转换为包含& H81在第一个索引中的字节数组我需要检查我的字节数组
Private Declare Sub CopyMemory _
Lib "kernel32" _
Alias "RtlMoveMemory" (Destination As Any, _
Source As Any, _
ByVal Length As Long)
Private Sub cmdCommand1_Click()
Dim str As String
Dim BT() As Byte
BT() = StrToByte(tbMsg.Text)
If BT(0) = &H81 Then
'MyCode
End If
End Sub
如果mybyte(0)=& H81那么条件是缓和变为
目前我正在使用此字符串到字节转换方法
Public Function StrToByte(strInput As String) As Byte()
Dim lPntr As Long
Dim bTmp() As Byte
Dim bArray() As Byte
If Len(strInput) = 0 Then Exit Function
ReDim bTmp(LenB(strInput) - 1) 'Memory length
ReDim bArray(Len(strInput) - 1) 'String length
CopyMemory bTmp(0), ByVal StrPtr(strInput), LenB(strInput)
For lPntr = 0 To UBound(bArray)
If bTmp(lPntr * 2 + 1) > 0 Then
bArray(lPntr) = Asc(Mid$(strInput, lPntr + 1, 1))
Else
bArray(lPntr) = bTmp(lPntr * 2)
End If
Next lPntr
StrToByte = bArray
End Function
答案 0 :(得分:1)
我认为这是一个错字,应该是:
If BT(0) = &H81 Then
不
If mybyte(0) = &H81 Then
您的代码似乎是将双字节unicode字符串转换为字符串的单字节表示形式,这将导致任何具有代码点>的字符的垃圾。 255.
如果可以,你的代码等同于内置的:
BT() = StrConv(strInput, vbFromUnicode)