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,
Нет комментариев.
Оставить комментарий:
|
|