My byte array optimized Hex to ASCii conversion.
VB Code:
Public Function HexToAsc(ByVal hstr As String) As String Dim x As Long Dim hBa() As Byte Dim hBv(1) As Byte hBa = StrConv(hstr, vbFromUnicode) ReDim nstr((UBound(hBa) + 1) / 2 - 1) As Byte For x = 0 To UBound(hBa) - 1 Step 2 hBv(0) = hBa(x) If hBv(0) < 65 Then hBv(0) = hBv(0) - 48 Else hBv(0) = hBv(0) - 55 End If hBv(1) = hBa(x + 1) If hBv(1) < 65 Then hBv(1) = hBv(1) - 48 Else hBv(1) = hBv(1) - 55 End If nstr(x / 2) = hBv(0) * 16 + hBv(1) Next HexToAsc = StrConv(nstr, vbUnicode) End Function
ASCii to Hex:
VB Code:
Public Function AsctoHex(ByVal astr As String) As String Dim x As Long Dim hBa() As Byte Dim hBv As Byte hBa = StrConv(astr, vbFromUnicode) ReDim nBa((UBound(hBa) + 1) * 2 - 1) As Byte For x = 0 To UBound(hBa) hBv = hBa(x) \ 16 If hBv < 10 Then nBa(x * 2) = 48 + hBv Else nBa(x * 2) = 55 + hBv End If hBv = hBa(x) Mod 16 If hBv < 10 Then nBa((x + 1) * 2 - 1) = 48 + hBv Else nBa((x + 1) * 2 - 1) = 55 + hBv End If Next AsctoHex = StrConv(nBa, vbUnicode) End Function


Reply With Quote