Esta es una de las tantas formas de hacerlo:
Código:
function HexToBinStr(Value: string) : string;
var
Buffer: PChar;
BuffSize: Integer;
begin
BuffSize := Length(Value) div 2;
Buffer := StrAlloc(BuffSize);
try
ZeroMemory(Buffer, BuffSize);
HexToBin(PChar(Value), Buffer, BuffSize);
Result := Buffer;
finally
StrDispose(Buffer);
end;
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
Caption := HexToBinStr('303132333435363738393a3b3c3d')
end;
Una forma mucho mas sencilla es trabajar directamente con el resultado:
Código:
function HexToBinStr(Value: string) : string;
var
BuffSize: Integer;
begin
BuffSize := Length(Value) div 2;
Result := StringOfChaR(#0, BuffSize);
HexToBin(PChar(Value), PChar(Result), BuffSize);
end;
Saludos!