2016-05-31 13 views
1

Wie Zeichenfolge zu konvertieren, um Byte-Array, die & H81 in ersten Index enthält, wenn der Byte-Array myByte (0) mitConvert String in Byte in VB6 mit & H81, die in dem 0. Index

Ich brauche in meinem Byte überprüfen Array

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 

die If myByte (0) = & H81 Dann wird Zustand immer beschwichtigt falsch

und zur Zeit ich verwende diese Zeichenfolge Methode

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 

Antwort

1

Ein Tippfehler Ich denke, auf Byte konvertieren, sollte es sein:

If BT(0) = &H81 Then 

Nicht

If mybyte(0) = &H81 Then 

Ihre Code scheint die Doppelbyte-Unicode-Zeichenfolge in ein einzelnes Byte zu konvertieren ation der Saite wird dies für ein beliebiges Zeichen in Müll führen mit einem Codepunkt> 255

Wenn das ist ok Ihren Code der eingebauten entspricht:

BT() = StrConv(strInput, vbFromUnicode) 
+0

Danke @ Alex K, vielen Dank für richtig mein Fehler und ich habe diese Methode versucht, und diese Bedingung ist immer noch falsch, –

+0

Ich versuche gerade, Daten an WinSock zu WebSocket ,, zu senden Verbunden mit meiner Frage ,,, wenn Sie irgendeine Idee über dieses Problem haben, bitte helfen Sie mir. . :) Quastion 2 - http://stackoverflow.com/questions/37537671/send-string-from-vb6-winsock-to-websockets –

+0

und meine eine meiner früheren Frage war das, Fragen 1 - http://stackoverflow.com/questions/37250260/vb6-winsock-server-connect-with-websocket, noch nicht beantwortet, indem ich diesen Teil bestanden habe und jetzt bin ich in diesem Teil stecken geblieben , Daten umwandeln und Daten zurück an Websocket senden, laut zweiter Frage –