BlockWrite, процедура
Синтаксис
procedure BlockWrite(var F:  File;  var Buffer;  Count:  Integer); 
procedure BlockWrite(var F:  File;  var Buffer;  Count:  Integer;
   var RecordCount:  Integer);
 
Описание
  Процедура BlockWrite записывает Count записей из Buffer в двоичный файл. Если 
  переменная RecordCount указана в аргументах процедуры, то BlockWrite сохраняет 
  в ней количество фактически добавленных записей. Если диск переполнен или возникла 
  другая ошибка, RecordCount может быть меньше Count. BiockWrite не является настоящей 
  процедурой.
 
Ошибки
 
  
    - Если указан аргумент RecordCount и в BlockWrite возникает ошибка, выдается 
      ошибка ввода/вывода 101 или код ошибки Windows.
    
 - Если файл не был открыт, BlockWrite выдает ошибку ввода/вывода 103
  
  
 
Советы и приемы
  
    -  Аргумент Buffer - это не указатель, а нетипизированный var-napaметр. 
      Передавайте саму переменную, а не ее адрес. Если в программе есть указатель 
      на динамически выделенный буфер разыменуйте ссылку при вызове BlockWrite.
 
     -  Чаще всего BlockWrite используется для записи нескольких записей одновременно 
      и для сохранения сложных структур данных, которые не удается аккуратно записать 
      в простой типизированный файл. Чтобы записать, например, длинную строку, 
      сначала записывается длина строки в виде четырехбайтового двоичного значения, 
      а затем содержимое строки.
  
  
 
Пример
// Запись строки в двоичный файл. Перед строкой записывается // ее длина в виде четырехбайтового целого. procedure WriteString(var F: File; const Str: string); var   Len:  Longlnt;
begin   Len  := Length(Str);   BlockWrite(F, Len, SizeOf(Len));   if Len > 0 then     BlockWrite(F, Str[1],J, Len);
end;
 
Смотрите также
Процедуры Append, AssignFile, 
 BlockRead, CloseFile, 
Reset, Rewrite, 
функция IOResult,
 
 
 Нет комментариев. 
  
 
Оставить комментарий:
 |   
 |