Считать двоичный файл и отобразить значение байт как ASCIIDelphi , Файловая система , ФайлыСчитать двоичный файл и отобразить значение байт как ASCII
Оформил: DeeCo 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; Программа на Delphi, которая читает бинарный файл и отображает его содержимое в виде ASCII-символов. Вот подробное описание кода: Процедура ShowBinary Эта процедура принимает три параметра: Вот что она делает в более подробном виде:
Процедура Display Это простая процедура, которая принимает строку как входной параметр и добавляет ее к контроллу мемо ( Событийный обработчик Button1Click Этот событийный обработчик обрабатывает клик событие кнопки на форме. Когда она нажата, программа:
В целом, эта программа предназначена для отображения бинарных файлов в формате, который легко читаем и анализируют. В статье описана процедура чтения двоичного файла и отображения значения байта в виде ASCII-символов с помощью делифовской программы на языке Pascal. Комментарии и вопросыПолучайте свежие новости и обновления по Object Pascal, Delphi и Lazarus прямо в свой смартфон. Подпишитесь на наш Telegram-канал delphi_kansoftware и будьте в курсе последних тенденций в разработке под Linux, Windows, Android и iOS Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.
|
||||
©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007 |