Tzn., że jak otworzysz jakiś plik w hex edytorze, z reguły zobaczysz coś takiego:
4D 5A 50 00 02 00 00 00 04 00 0F 00 FF FF 00 00 MZP.........˙˙..
B8 00 00 00 00 00 00 00 40 00 1A 00 00 00 00 00 ¸.......@.......
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
00 00 00 00 00 00 00 00 00 00 00 00 00 01 00 00 ................
BA 10 00 0E 1F B4 09 CD 21 B8 01 4C CD 21 90 90 ş...´.Í!¸.LÍ!
54 68 69 73 20 70 72 6F 67 72 61 6D 20 6D 75 73 This program mus
74 20 62 65 20 72 75 6E 20 75 6E 64 65 72 20 57 t be run under W
69 6E 33 32 0D 0A 24 37 00 00 00 00 00 00 00 00 in32..$7........
To powyżej, to fragment "zrzutu szesnastkowego" utworzonego przez mojego starego HexDump-a.
A działa to tak:
Odczytuję 16 bajtów (buffer: array[0..15] of Byte).
Potem jest coś takiego:
s := '';
for i := 0 to 15 do
s := s + IntToHex(buffer[i], 2) + ' ';
s := s + ' ';
A potem:
for i := 0 to 15 do
begin
if (buffer[i] < 31) then
s := s + '.'
else
s := s + Chr(buffer[i]);
end;
SynEdit1.Lines.Add(s);
I tak do końca pliku...
Tylko pamiętaj, że dla większości plików FileSize mod 16 <> 0 !