Delphi - BinToHex und HexToBin : Umkehrung

Ich habe ein array of byte, das möchte ich umwandeln in einen hex-string und dann wieder in ein array von byte.

Ich bin mit der folgenden Umwandlung in einen hex-string:

function bintoHex(const bin: array of byte): String;
const HexSymbols = '0123456789ABCDEF';
var i: integer;
begin
  SetLength(Result, 2*Length(bin));
  for i :=  0 to Length(bin)-1 do begin
    Result[1 + 2*i + 0] := HexSymbols[1 + bin[i] shr 4];
    Result[1 + 2*i + 1] := HexSymbols[1 + bin[i] and $0F];
  end;
end;

Ich bin nicht sicher, wie es zu konvertieren zurück in ein byte-array richtig. Ich bin Dreharbeiten für so etwas wie die folgenden:

Type TDCArray = Array of Byte;

function xHexToBin(const HexStr: String): TDCArray;
const HexSymbols = '0123456789ABCDEF';
var i: integer;
begin
  SetLength(Result, ???); //Need to now get half of the length, unsure how to go about that
  for i :=  0 to Length(HexStr)-1 do begin
    //Here convert back into an array somehow...
    //Result[i] := ???
  end;
end;

Wie würde ich gehen über das tun dies?

Bin ich auch mit Delphi XE2.

RTL hat eine HexToBin und BinToHex.

InformationsquelleAutor Josh Line | 2012-10-19

Schreibe einen Kommentar