Процедуры и функции для работы с файлами.

Типизированные файлы.

Длина любого компонента типизированного файла постоянна, что дает возможность организовать прямой доступ к каждому компоненту. Перед первым обращением к процедурам ввода/вывода указатель файла указывает на компоненту с номером 0. После каждого чтения или записи указатель перемещается на следующую компоненту. Переменные в списках ввода/вывода должны иметь тот же тип, что и компоненты файла. Если этих переменных в списке несколько, то указатель будет смещаться на соответствующее количество компонент после каждой операции обмена данными между переменными и дисковым файлом. Такой доступ называется последовательным к компонентам файла. В Turbo Pascal имеется возможность организовать прямой доступ к каждой компоненте c помощью процедуры SEEK.

Чтение очередных компонентов файла осуществляется с помощью процедуры READ (<файловая переменная>, <список ввода>);

Список ввода содержит одну или более переменных такого же типа, что и компоненты файла.

Файловая переменная должна быть объявлена предложением FILE OF… и связана с именем файла процедурой ASSIGN. Файл необходимо открыть процедурой RESET.

Для записи данных в типизированный файл используется процедура

WRITE (<файловая переменная>, <список вывода>);

Список вывода содержит одно или более выражение того же типа, что и компоненты файла.

Файловая переменная должна быть объявлена предложением FILE OF… и связана с именем файла процедурой ASSIGN. Файл необходимо открыть процедурой REWRITE или RESET.

Например: Составить программу для ввода 20 вещественных чисел и записи их в виде файла на диске.

Program Word;

Const n=20;

Var

f: file of real;

a: real;

i: byte;

BEGIN

Assign (f, ‘e:\pz961\lpc.txt’);

Rewrite (f);

for i:=1 to n do

Begin

Writeln (‘Введите’ ,i,’-ое число‘);

Readln (a);

Write (f,a);

End;

Close (f);

END.

 

Для смещения указателя к нужной компоненте файла используется процедура SEEK (<файловая переменная>, <N компонента>); <N компонента> - это выражение типа LONGINT, указывающее номер компонента. Первый компонент имеет номер 0.

APPEND (<файловая переменная>); - открывает текстовый файл для расширения.

TRUNCATE (<файловая переменная>); - уничтожает все компоненты файла, начиная с той на которую указывает указатель.

IORESULT : Word - эта функция возвращает код, характеризующий результат последней операции ввода/вывода. Если операция завершилась успешно, то функция возвращает значение 0.

FILEPOS (<файловая переменная>) : Longint - эта функция возвращает текущую файловую позицию, то есть номер компоненты на которую установлен указатель.

FILESIZE (<файловая переменная>) : Logint - возвращает размер файла в байтах.

EOF (<файловая переменная>) : Boolean - эта функция возвращает значение True (истина), если указатель находится за последней компонентой файла. В противном случае функция возвращает значение False.