Delphirus - прграммирование на delphi
   Все о delphi Delphirus - прграммирование на delphi
blocks.gif
Навигация
 

Главная
Статьи
Базы данных
Графика
Защита
Интернет
Система
Тексты
Мультимедиа
Файлы
Формы и окна
Другое
Советы
Базы данных
Графика
Интернет
Мультимедиа
Система
Тексты
Файлы
Файлы
Исходники
Компоненты
Инфо
Поиск по сайту
Обратная связь
Самое популярное
Аккаунт
Карта сайта

 
 
 

Советы по delphi \ Файловая система \ Файлы \ Считать двоичный файл и отобразить значение байт как ASCII

Считать двоичный файл и отобразить значение байт как ASCII

type
   TDisplayProc = procedure(const s: string) of object;

 procedure ShowBinary(var Data; Count: Cardinal; DispProc: TDisplayProc);

 implementation


 procedure ShowBinary(var Data; Count: Cardinal; DispProc: TDisplayProc);
 var
   line: string[80];
   i: Cardinal;
   p: PChar;
   nStr: string[4];
 const
   posStart = 1;
   binStart = 7;
   ascStart = 57;
   HexChars: PChar = '0123456789ABCDEF';
 begin
   p    := @Data;
   line := '';
   for i := 0 to Count - 1 do
   begin
     if (i mod 16) = 0 then
     begin
       if Length(line) > 0 then
         DispProc(line);
       FillChar(line, SizeOf(line), ' ');
       line[0] := Chr(72);
       nStr    := Format('%4.4X', [i]);
       Move(nStr[1], line[posStart], Length(nStr));
       line[posStart + 4] := ':';
     end;
     if p[i] >= ' ' then
       line[i mod 16 + ascStart] := p[i]
     else
       line[i mod 16 + ascStart] := '.';
     line[binStart + 3 * (i mod 16)]     := HexChars[(Ord(p[i]) shr 4) and $F];
     line[binStart + 3 * (i mod 16) + 1] := HexChars[Ord(p[i]) and $F];
   end;
   DispProc(line);
 end;


 procedure TForm1.Display(const S: string);
 begin
   Memo1.Lines.Add(S);
 end;

 procedure TForm1.Button1Click(Sender: TObject);
 var
   ms: TMemoryStream;
 begin
   if Opendialog1.Execute then
   begin
     ms := TMemoryStream.Create;
     try
       ms.LoadFromfile(OpenDialog1.FileName);
       ShowBinary(ms.Memory^, ms.Size, Display);
     finally
       ms.Free
     end;
   end;
 end;

Название: Считать двоичный файл и отобразить значение байт как ASCII
Дата публикации: 2004-06-15 (2850 Прочтено)

 
 

 

Page generation 0.023 seconds