Модуль: System
Описание
Процедура читает одну или большее количество записей из открытого файла, связанного
с файловой переменной Vf, в переменную Buf. Параметр Count определяет количество
записей, которое необходимо прочитать из файла. В параметре AmtTransferred возвращается
фактическое количество прочитанных записей, которое может быть меньше Count
(например, когда размер последнего блока данных в файле меньше заданного размера
записи). Максимальный размер прочитанного блока равен Count*RecSize байт. RecSize
- размер записи, определенный, во время открытия файла (если размер записи не
был задан, то используется значение по умолчанию - 128 байт). Параметр AmtTransferred
является необязательным. Но если данный параметр опущен, а количество прочитанных
записей меньше Count, то возникнет ошибка ввода/вывода (исключение EInOutError).
Пример
var
Vf1, Vf2 : file;
NRead, NWrite: Integer;
Buf: array[1..1024] of Char;
begin
AssignFile(Vf1, 'read.txt');
Reset(Vf1, 1); {Устан-ет размер записи входного файла =1}
AssignFile(Vf2, 'write.txt');
Rewrite(Vf2, 1); {Устан-ет размер записи выходного файла
=1}
repeat
BlockRead(Vf1, Buf, SizeOf(Buf), NRead); {читает
данные}
BlockWrite(Vf2, Buf, NRead, NWrite); {записывает
данные}
until (NRead = 0) or (NWrite <> NRead);
CloseFile(Vf1);
CloseFile(Vf2);
end;