Converts a buffer to a hexadecimal string (e.g.,: "4A 5B 00").
This function is mainly used to check the content of a buffer byte by byte.
Remark: To convert a hexadecimal string to a buffer, use
HexaToBuffer.
// Button click
s is Buffer = fLoadText(EDT_FileName)
EDT_Dump = BufferToHexa(s)
s is UNICODE string = "abdcefghijkl"
Trace(BufferToHexa(s))
// display:
// 61 00 62 00 64 00 63 00 65 00 66 00 67 00 68
// 69 00 6A 00 6B 00 6C 00
s is UNICODE string = "Pletopabo"
// Displays 50 00 6C 00 E9 00 74 00 6F 00 70 00 61 00 62 00<\r><\n>6F 00
Trace(BufferToHexa(s, 1))
// Displays 0050 006C 00E9 0074 006F 0070 0061 0062<\r><\n>006F
Trace(BufferToHexa(s, 2))
// Displays 5000 6C00 E900 7400 6F00 7000 6100 6200<\r><\n>6F00
Trace(BufferToHexa(s, 2, BigEndian))
// Displays 006C0050 007400E9 0070006F 00620061<\r><\n>6F 00
Trace(BufferToHexa(s, 4))
// Displays 50006C00 E9007400 6F007000 61006200<\r><\n>6F 00
Trace(BufferToHexa(s, 4, BigEndian))
Syntax
<Result> = BufferToHexa(<Buffer to convert> [, <Nb bytes per word> [, <Nb bytes per line>]])
<Result>: Character string
Character string in hexadecimal format.
<Buffer to convert>: Buffer
Buffer to use. This parameter can also correspond to an Ansi or Unicode string.
<Nb bytes per word>: Integer or Integer constant
Number of bytes per word. This parameter can correspond to: - 1 (default value): the values are grouped by byte.
- 2: the values are grouped by word of 2 bytes.
- 4: the values are grouped by double word of 4 bytes.
- the NoGrouping constant: no grouping will be done. All hexadecimal codes will have no spaces. Example: 61002345A1.
<Nb bytes per line>: Integer or Integer constant
Number of bytes before moving to the next line. - After each <Nb bytes per line> a Carriage Return (CR) is added to the result string.
- If <Nb bytes per line> is less than <Nb bytes per word>, the Carriage Return (CR) will be added every <Nb bytes per word>.
- If this parameter corresponds to the NoLine constant, all bytes will be positioned on the same line.
By default: - this number is equal to 16.
- the grouping is performed using the Little-Endian method (the least significant byte is stored first, like in x86).
- if <Nb bytes per word> is set to NoGrouping, then <Nb bytes per line> will correspond to the NoLine constant by default.
To group values in Big-Endian format:
- use the BigEndian constant.
- add the BigEndian constant to the value of <Nb bytes per line>.
- Remark: the NoLine and BigEndian constants can be combined.
Remarks
Creating an identifier
The NoGrouping and NoLine constants are used to simplify the creation of an identifier from a buffer.
Business / UI classification: Neutral code