excel vba keep only hex digits in string parse code example

Example: excel vba parse hex digits from string

'Extremely fast function to parse hexidecimal digits from text string:

Function ForceStringToHexDigitsOnly$(s$)
    Dim i&, p&, max&, t&
    Dim b() As Byte, res() As Byte
    Static keep() As Boolean

    Const VALS$ = "0123456789 ABCDEFabcdef"
    
    If (Not Not keep) = 0 Then
        ReDim keep(0 To 255)
        For i = 1 To Len(VALS)
            keep(Asc(Mid$(VALS, i, 1))) = 1
        Next
    End If
    
    max = Len(s)
    ReDim res(0 To max)
    b = StrConv(s, vbFromUnicode)
    For i = 0 To Len(s) - 1
        t = b(i)
        If keep(t) Then
            res(p) = t
            p = p + 1
        End If
    Next
    ForceStringToHexDigitsOnly = Left$(StrConv(res, vbUnicode), p)
End Function

'------------------------------------------------------------------------------

MsgBox ForceStringToHexDigitsOnly("qA01mzBoo7o2F%F")  '<--displays: A01B72FF

'
'
'

Tags:

Vb Example