Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
конспект_лекций.doc
Скачиваний:
18
Добавлен:
26.04.2019
Размер:
1.11 Mб
Скачать

15.1. Процедурный язык обработки файлов

Основные функции языка:

  • перепись информации из файла в ОЗУ и обратно,

  • создание новых файлов,

  • изменение названий существующих файлов,

  • удаление файлов.

Для организации обработки файла (что особенно важно: для одновременной работы сразу с несколькими файлами) в языке Pascal, предусмотрен специальный класс информационных объектов – файловых переменных.

Опр. Файловая переменная – информационный объект размещенный в оперативной памяти и содержащий следуюшие данные о файле:

      • полное название файла на ВЗУ и его размер,

      • адрес начала файла на ВЗУ и адрес активной записи (позиции) файла,

      • описание структуры файла.

      • признак состояния файла (открыт, закрыт, режим чтения или записи).

Описание файловых переменных проводится с помощью стандартных операторов Var.

Примеры:

Type T1= array[1..50] of real; {описываем структуру записи файла, каждая

запись которого состоит из пятидесяти вещественных чисел типа REAL }

T2=record of {описываем структуру записи файла, в которой размещаются данные о ФИО и дате рождения неких лиц. Размер каждой записи 96 байт}

Fam, Im, Ot: string[30];

God, Mes, Den: integer;

End;

. . . . . . .

Var Fa, Fb: file of T1; {файловые переменные с именами Fa, Fb будут обслуживать

типизированные файлы с записями типа T1}

P: file of T2; {файловая переменная с именем P будет обслуживать

типизированные файлы с записями типа T2}

TF1, TF2, TF3: text; {файловые переменные с именами TF1, TF2, TF3 будут

обслуживать текстовые файлы с записями типа string}

FF, FL: file; {файловые переменные с именами FF, FL планируется

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

{создаем в оперативной памяти рабочие переменные (информационные объекты) для размещения информации одной записи для каждого типа используемых файлов}

R: T1; { R - для файлов с типом записи T1}

Rp: T2; { Rp - для файлов с типом записи T2 }

S: string; { S - для текстовых файлов}

. . . . . . .

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

Assign (FileVar , FileName);

где FileVar – имя файловой переменной,

FileName – имя файла (параметр типа string).

Примеры:

Assign (Fa,’A:\Dann.kk’); {Семантика: Файловая переменная Fa назначается для

обслуживания файла с именем Dann.kk, который находится на диске А}

Assign (P,’Infor23’);

Assign (TF2,’Referat.txt’);

Assign (FF,’G:\Referat.doc’);

После привязки файловой переменной к конкретному физическому файлу, этот файл нужно перевести в состояние планируемого информационного обмена:

  • открыть только для чтения, команда Reset(FileVar);

  • открыть только для записи, команда Rewrite(FileVar);

  • открыть для записи и чтения, команда Append(FileVar);.

Команда «прочесть очередную запись из файл» реализуется процедурой Read(FileVar , RabName); , где RabName – рабочая переменная (фрагмент оперативной памяти) соответствующая типу записей файла FileVar.

Команда «поместить очередную запись в файл» реализуется процедурой Write(FileVar , RabName); , где RabName – рабочая переменная соответствующая типу записей файла FileVar.

Команда Close(FileVar); закрывает доступ к файлу.