Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Алг яз Лаб 6(I-ИСТ).doc
Скачиваний:
9
Добавлен:
05.11.2018
Размер:
244.74 Кб
Скачать

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

Типизированный файл – это файл, все компоненты которого одного типа данных, заданного при объявлении файловой переменной.

2.1.1. Объявление файловой переменной

Для работы с типизированным файлом необходимо объявить файловую переменную (логический файл). Типизированные файлы могут быть любого типа данных, кроме файлового и опирающегося на файловый тип

Var

<имя_файловой_переменной>: File of <тип компонентов>;

Например:

Var

FR: File of real; {Объявление файла вещественных чисел}

FI : File of integer; {Объявление файла целых чисел}

{Объявление файловой переменной может быть выполнено по-другому:}

Type

FIO= string[20];

SPISOK=File of FIO;

Var

STUD, PREP: SPISOK; {STUD и PREP файловые переменные.}

{Еще одно объявление файловой переменной:}

Type

Pasport = Record {Объявление типа c именем Pasport}

Tel: string[6]; {Телефон}

Fam: string[17]; {Фамилия}

NF: string[2]; {Имя и отчество}

end;

Var

Fv1: File of Pasport; {Объявление файловой переменной (логического файла) абонентов ГТС}

2.1.2. Связывание файловой переменной

с физическим файлом

В Pascal связь между объявленным логическим файлом и реальным физическим файлом устанавливается с помощью процедуры

Assign(имя_файловой_переменной, имя файла);

При этом имя файла можно задавать как в виде строковой константы, так и в виде строковой переменной.

Например:

{Связь переменной FI c файлом Phone.dat}

Assign(FI, 'Phone.dat');

{Присвоение значения строковой переменной File_Name}

File_Name:='Tarif.dat';

{Связь переменной FR с физическим файлом, имя которого хранится в переменной File_Name}

Assign(FR, File_Name);

2.1.3. Открытие файла

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

Reset(имя_файловой_переменной);

или Rewrite(имя_файловой_переменной);

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

Процедура Reset открывает существующий файл как для чтения, так и для записи. При открытии указатель текущей позиции файла устанавливается в его начало. Если физический файл с указанным именем отсутствует, то возникает ошибка во время выполнения программы (runtime error), которую можно подавить включением в код программы директивы компилятора {$I-}.

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

Например:

Reset(FI); {Открытие файла FI}

Rewrite(FR); {Открытие файла FR для записи}