Совет от Imlike абсолютно правильный! Полностью присоединяюсь.
Но раз возникли трудности- постараюсь помочь.
Итак, здесь прога для чтения файла и его представления в HEX- виде
Кидаешь Edit, Memo и пару кнопок.
С этим все ясно.
Теперь о процедуре чтения файла. Здесь я его открываю как байтовый файл-те за 1 цикл чтения читается 1 байт.
Пишем его в промежут. переменную z.
Далее этот байт представляется в виде HEX-строки из двух символов.
Добавляем его в промежут строковую переменную s
Как только набираем 16 байт- перезаписываем эту строку в Memo1
а саму строку обнуляем. ИТД до конца файла.
Тут надо понять принцип.
Для компьютера любая буква-это такой же байт как и любой другой.
А вот на экране этот байт представляется символом, который берется из таблицы кодировки. Другими словами, все буквы (и цифры) расположены в виде таблицы и поэтому каждой букве соответствует определенный код (те ее номер в этой табл). Вот это преобразование здесь и приведено.
В Memo сделай моноширинный шрифт (Courier New) иначе столбцы будут неровными
Код:
{--выбор файла----------------------}
procedure TForm1.Button2Click(Sender: TObject);
begin
with OpenDialog1 do
if Execute then Edit1.Text:=FileName;
end;
{--------чтение файла-----------}
procedure TForm1.Button1Click(Sender: TObject);
var
F:file of byte;
z:byte;
s:string;
i:integer;
begin
Memo1.Clear;
s:='';
i:=0;
assignfile(F,Edit1.Text);reset(F);
while not eof(F) do
begin
read(F,z);s:=s+IntToHex(z,2)+' ';
i:=(i+1) mod 16;
if (i=0) or eof(F) then
begin
Memo1.Lines.Add(s);
s:='';
end;
end;
end;