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;
whilenot lFound and (x <= nRead) dobegin
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 байту это нормально!
whilenot Eof(f) dobegin
BlockRead(f, c, SizeOf(c));
{Теперь обрабатываем c}end;
CloseFile(f);
end;
Для ускорения этой процедуры не следует за один проход читать по одному символу.
Возможно, лучшим решением будет объявление PChar скажем, размером 200, и чтением
за один проход блоков размером 200 байт. {например, BlockRead(f, p, 200);} Но
для этого требуется немного больше кода, чем показано здесь... (Используйте все
тот же recordsize, равный 1, меняется только blocksize).
Если Вас заинтересовала или понравилась информация по разработке на Delph - "Чтение бинарного файла", Вы можете поставить закладку в социальной сети или в своём блоге на данную страницу: Так же Вы можете задать вопрос по работе этого модуля или примера через форму обратной связи, в сообщение обязательно указывайте название или ссылку на статью!