Процедура BlockRead( var Vf : file; var Buf; Count: Integer [; var AmtTransferred: Integer] ); -------------------------------------------------------------------------------- Модуль: 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;
|