Процедуры и функции для работы с файлами.
Типизированные файлы.
Длина любого компонента типизированного файла постоянна, что дает возможность организовать прямой доступ к каждому компоненту. Перед первым обращением к процедурам ввода/вывода указатель файла указывает на компоненту с номером 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.