PostHeaderIconDelphi. Процедура BlockWrite( var Vf : file; var Buf; Count: Integer [; var AmtTransferred: Integer] );

Процедура BlockWrite( var Vf : file; var Buf; Count: Integer [; var AmtTransferred: Integer] );

Модуль: System

Описание
Процедура записывает одну или несколько записей из переменной Buf во внешний файл, связанный с файловой переменной Vf. Параметр 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;

 
Copyright © 2007-2010 IsIProg.ru. All Rights Reserved.