Карта сайта Kansoftware
НОВОСТИУСЛУГИРЕШЕНИЯКОНТАКТЫ
Разработка программного обеспечения
KANSoftWare

Чтение бинарного файла

Delphi , Файловая система , Файлы

Чтение бинарного файла


var
  f: File;
  c: Char;
begin
  AssignFile(f, 'this.bin');
  Reset(f, 1);
  BlockRead(f, c, sizeof(c));
  CloseFile(f);
end;


function FindInFile(cFileName: string; cCh: char): boolean;
var
  fFile: file;
  aBuf: array[1..1024] of char;
  lFound: boolean;
  x, nRead: integer;
begin
  Assign(fFile, cFileName);
  Reset(fFile, 1);
  lFound := False;
  repeat
    BlockRead(fFile, aBuf, SizeOf(aBuf), nRead);
    x := 1;
    while not lFound and (x <= nRead) do
    begin
      lFound := (aBuf[x] = cCh)
        Inc(x)
    end;
  until
    (nRead < SizeOf(aBuf)) or lFound;
  FindInFile := lFound
end;

Взгляните на следующий код:


var
  f: file;
  c: Char;
begin
  AssignFile(f, 'c:\autoexec.bat');
  Reset(f, 1);                        <- Примечание: Размер записи = 1 байту это нормально!
  while not Eof(f) do
  begin
    BlockRead(f, c, SizeOf(c));
    {Теперь обрабатываем c}
  end;
  CloseFile(f);
end;

Для ускорения этой процедуры не следует за один проход читать по одному символу. Возможно, лучшим решением будет объявление PChar скажем, размером 200, и чтением за один проход блоков размером 200 байт. {например, BlockRead(f, p, 200);} Но для этого требуется немного больше кода, чем показано здесь... (Используйте все тот же recordsize, равный 1, меняется только blocksize).

Статья Чтение бинарного файла раздела Файловая система Файлы может быть полезна для разработчиков на Delphi и FreePascal.


Комментарии и вопросы


Ваше мнение или вопрос к статье в виде простого текста (Tag <a href=... Disabled). Все комментарии модерируются, модератор оставляет за собой право удалить непонравившейся ему комментарий.

заголовок

e-mail

Ваше имя

Сообщение

Введите код




Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.



:: Главная :: Файлы ::


реклама



©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007
Top.Mail.Ru Rambler's Top100
23.04.2024 11:22:18/0.0041308403015137/2