Что нового

Binary to ASCII с помощью RegExp

musicstashall

Знающий
Сообщения
310
Репутация
5
Доброго.
Требуется бинарную строку представить в виде читаемых символов, как в Hex-редакторах. То, что я сам сделал, работает медленно, хотелось бы улучшить результат и оптимизировать грамотно код. Прошу помощи.
Код:
Local $iBinary = 'f534000041726368694672616d650041'
ConsoleWrite(BinaryToASCII($iBinary) & @CR)
Func BinaryToASCII($iBinary)
    Local $t = TimerInit()
    Local $aData = StringRegExp($iBinary, '([0-9A-Fa-f]{2})', 3)
    Local $sString = ''
    For $i = 0 To 16
        If $i > UBound($aData) -1 Then 
            $sString &= '.'
            ContinueLoop 
        EndIf
        Switch '0x' & $aData[$i]
            Case 0x20 To 0x7f, 0x80 To 0xff
                $sString &= Chr('0x' & $aData[$i])
            Case Else 
                $sString &= '.'
        EndSwitch
    Next
    ConsoleWrite(TimerDiff($t) & @CR)
    Return $sString
EndFunc
 
Верх