У меня есть строка, которая приходит из DLL. Предположительно, строка преобразуется из Byte () в dll.
Ниже приведен фрагмент для получения значения из dll:
'DLL declare : Public Function getData(boolData as Boolean, strData1 as String, strData2 as String) as Boolean
Call objValue.getValue(True, strValueA, strValueB)
strResultA = strValueA
Я хочу преобразовать строку в шестнадцатеричное значение. Когда я попытался подтвердить правильность шестнадцатеричного результата, используя шестнадцатеричный конвертер в inte rnet. Шестнадцатеричное значение не одинаково.
Я подозреваю, что в строке есть какое-то нулевое значение, потому что когда я вывожу строку в текстовое поле и преобразовываю ее, она дает правильное шестнадцатеричное значение. Например: toHex (tbResultA.text), даст правильное шестнадцатеричное значение.
Как удалить нулевой символ из строки? Я пробовал несколько способов удалить его, но он не работает. Вот фрагмент кода, который я пробовал:
1. strResultA = strValueA.Replace(vbNullChar, "")
2. strResultA = strValueA.Replace(Chr(0, "")
3. strResultA = strValueA.Replace(Convert.ToChar(0), "")
4. strResultA = strValueA.Replace(Convert.vbNullChar, "")
5. strResultA = Replace(strValueA, Chr(0), "")
Вот мой фрагмент для преобразования строки в шестнадцатеричный код:
Private Function toHex(ByVal strValue As String) As String
Dim byteArray() As Byte
Dim hex As System.Text.StringBuilder = New System.Text.StringBuilder
byteArray = System.Text.ASCIIEncoding.ASCII.GetBytes(strValue)
For i As Integer = 0 To byteArray.Length - 1
hex.Append(byteArray(i).ToString("x"))
Next
Return hex.ToString()
End Function
'My fuction calling, strHexA will be kept in a text file:
Dim strHexA as String = toHex(strResultA)
Спасибо.