Длина любого типизированного файла строго постоянна, что дает возможность организовать прямой доступ к каждому из них (т.е. доступ к компоненту по его порядковому номеру).
Перед первым обращением к процедурам ввода-вывода указатель файла стоит в его начале и указывает на первый компонент с номером 0. После каждого чтения или записи указатель сдвигается к следующему компоненту файла. Переменные в списках ввода-вывода должны иметь тот же тип, что и компоненты файла. Если этих переменных в списке несколько, указатель будет смещаться после каждой операции обмена данными между переменными и дисковым файлом.
список – список ввода, содержащий одну или более переменных такого же типа, что и компоненты файла. Файловая переменная должна быть объявлена предложением FILE OF… и связана с именем файла процедурой ASSIGN. Файл необходимо открыть процедурой RESET. Если файл исчерпан, обращение к READ вызовет ошибку ввода-вывода.
Процедура WRITE используется для записи данных в типизированный файл.
список – список ввода, содержащий одну или более переменных такого же типа, что и компоненты файла.
Для записи информации в новый файл, его необходимо открыть процедурой REWRITE.В Турбо Паскале разрешается обращаться к типизированным файлам, открытым процедурой RESET (т.е. для чтения информации), с помощью процедуры WRITE (т.е. для записи информации). Такая возможность позволяет легко обновлять ранее созданные типизированные файлы и при необходимости расширять их. Для текстовых файлов, открытых процедурой Reset, нельзя использовать процедуру Write или Writeln.
Стандартная процедура
Пример 1. Создать и сохранить в файле ‘x.dat’ последовательность целых чисел от 10 до 20;
program ex2;
uses crt;
var fi:file of integer ;
i:integer;
Begin clrscr;
assign(fi,'x.dat'); rewrite(fi);
for i:=10 to 20 do
write(fi,i);
close(fi);
end.
Пример 2. Считать первые пять компонент из файла ‘x.dat’ и вывести на экран квадраты этих значений.
program ex3;
uses crt;
var fi:file of integer ;
i:integer;
Begin clrscr;
assign(fi,'x.dat'); reset(fi);
while not eof(fi) do
begin
read(fi,i );
write (i*i,' ');
end;
close(fi);
readkey;
end.
имя поля 1 : тип;
имя поля 2 : тип;
имя поля N : тип
end;
Способы описания записей:
1. Тип запись определяется в разделе описания типов, а переменные этого типа описываются в разделе описания переменных: