Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Методичка_Delphi_Ч2.doc
Скачиваний:
15
Добавлен:
02.11.2018
Размер:
1.7 Mб
Скачать
      1. Текущая позиция файла

Несмотря на то, что в файле может быть очень много записей, программа обработки файла видит всегда только одну запись файла. Номер этой записи называется текущей позицией файла. При открытии файла номер текущей позиции равен нулю.

Если необходимо перейти к другой записи файла, то есть изменить номер текущей позиции файла можно воспользоваться процедурой Seek.

Обращение к этой процедуре выглядит так:

Seek ( <файловая переменная>, <номер записи>);

Ниже приведены примеры вызова процедуры Rewrite.:

Seek(f1,0); // установка файла в начало

Seek (f1,10); // переход к записи файла с номером 10

Seek (f1, FileSize(f1)-1); // переход к последней записи файла

Seek (f1, FileSize(f1)); // переход к концу файла

В последних примерах для определения номера последней записи используется функция FileSize, возвращающая количество записей в файле. Так как номера записей начинаются с 0, то номер последней записи на единицу меньше количества записей в файле.

Для того, чтобы узнать номер текущей позиции файла, можно использовать функцию FilePos.

Обращение к этой функции выглядит так:

FilePos ( <файловая переменная>);

      1. Чтение данных из файла

Чтение из файла выполняется при помощи процедуры read.

Обращение к этой процедуре выглядит так:

Read ( <файловая переменная>, <переменная>);

При чтении, запись из текущей позиции файла копируется в переменную. Очевидно, что тип записей файла и тип переменной должны совпадать.

После считывания записи из файла текущая позиция файла увеличивается на единицу, как бы готовя файл к считыванию следующей записи. После считывания последней записи файла, текущая позиция файла выходит за его пределы. В этом случае фиксируется ситуация «конец файла». Отследить эту ситуацию можно с помощью функции eof. Значение этой функции равно false, если прочитанный элемент данных не является последним в файле, т.е. возможно дальнейшее чтение. Если прочитанный элемент данных является последним, то значение eof равно true.

Обращение к этой функции выглядит так:

Eof(<файловая переменная>);

Значение функции eof можно проверить сразу после открытия файла. Если при этом оно окажется равным true, то это значит, что файл не содержит ни одного элемента данных, т.е. является пустым (размер такого файла равен нулю).

      1. Запись данных в файл

Запись данных в файл осуществляется с помощью процедуры write.

Обращение к этой процедуре выглядит так:

write ( <файловая переменная>, <переменная>);

При записи значение переменной копируется в текущую позицию файла, заменяя ее старое содержимое. Очевидно, что тип записей файла и тип переменной должны совпадать.

После записи текущая позиция файла увеличивается на единицу, как бы готовя файл к заполнению следующей записи. После заполнения последней записи файла, фиксируется ситуация «конец файла», но при этом запись разрешается, а конец файла автоматически смещается.