dakna
dakna

Reputation: 11

Indy 9 read data in hexadecimal format

I need a method for reading data from TCP connection in hex format instead string format, to explain more lets give this example :

When we sent data like "Test" over TCP connection, each caracter is encoded with is ASCII code " 54 65 73 54 ", at the other side I use currentReadbuffer to read data, my need is to get data in ASCII hex format without converting to string values.

Upvotes: 1

Views: 812

Answers (1)

Jeroen Wiert Pluimers
Jeroen Wiert Pluimers

Reputation: 24483

you can convert each character-pair from hex to byte by using something like this:

function HexToByte(const value: string): Byte;
begin
  Result := StrToInt('$'+Value);
end;

depending on the Delphi version you use and character encoding you use (is it single-byte, multi-byte?) you need to convert these Bytes to characters.

Assuming you use single-byte character sets (ASCII, Windows-1252 or the like), and Delphi < 2009, the conversion is easy:

function ByteToChar(const value: Byte): Char;
begin
  Result := Char(Byte);
end;

Edit your question to make it more specific, and you get a more focussed answer.

--jeroen

Upvotes: 1

Related Questions