Reset, процедура

Синтаксис


procedure	Reset(var F: TextFile);
procedure	Reset(var F: File);
procedure	Reset(var F: File;  RecordSize: Integer);

Описание

Процедура Reset открывает существующий файл. Если файл текстовый, он открывается только для чтения. Если файл двоичный, он открывается так, что допускаются вызовы функций чтения и записи, однако режим открытия файла операционной системой определяется переменной FileMode. Reset не является настоящей процедурой.
Если файл - типизированный двоичный файл (file of тип данных), используется вторая форма Reset, т. е. передается только файловая переменная. Если файл - нетипизированный двоичный файл (просто file), можно дополнительно указать второй аргумент, указывающий размер записи. Если размер записи не указан, то он равен 128 байт.

Ошибки

  • Если до Reset не была вызвана процедура AssignFile, генерируется ошибка 102.
  • Если Reset не может открыть файл, в качестве ошибки ввода/вывода выдается код ошибки Windows.

Советы и приемы

  • Если файл уже открыт, он сначала закрывается.
  • По умолчанию Reset открывает двоичный файл для доступа на чтение и на запись. Для открытия только на чтение установите значение переменной FileMode в 0 перед вызовом процедуры Reset.
  • Чтобы дописать двоичный файл с помощью процедуры Reset, откройте файл, переместитесь в конец файла и после этого начинайте запись.
  • Если файл нетипизированный, проще всего при его открытии указать размер записи, равный 1, и затем использовать BlockRead и BlockWrite для чтения и записи требуемого количества данных. Как вариант можно создать тип File of Byte, и тогда при вызове Reset
    размер записи указывать не потребуется.

Пример


// Копирование файла.
procedure CopyFile(const Source, Dest: string);
const
  BufferSize = 8192;
var
  SourceFile, DestFile:  File of Byte;
  Buffer: PByte;
  Count:  LongInt;
begin
  AssignFile(SourceFile, Source);
  AssignFile(DestFile, Dest);
  Buffer  := nil;
  GetMem(Buffer, BufferSize);
  FileMode := 0;
  Reset(SourceFile);
  Rewrite(DestFile);
  repeat
    BlockRead(SourceFile, Buffer^, BufferSize, Count);
    BlockWrite(DestFile, Buffer^, Count);
  until Count = 0;
  CloseFile(SourceFile);
  CloseFile( DestFile);
  FreeMem(Buffer);
end;

Смотрите также

Функция IOResult, процедуры Append, CloseFile, Rewrite
    Учебник по языку Pascal          Лабораторные работы по программированию          Справочник




Нет комментариев.



Оставить комментарий:
Ваше Имя:
Email:
Антибот: *  
Ваш комментарий: