Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
46
Добавлен:
15.06.2014
Размер:
154.11 Кб
Скачать

13. Записи

Запись - описание комбинированного типа, состоящее из нескольких полей, каждое из которых имеет свой тип. Структура записи аналогична таблице. Записи состоят из фиксированного числа компонентов, называемых полями записи. В отличие от массива компоненты (поля) записи могут быть различного типа. Структура объявления типа "запись" имеет вид:

<ИмяТипа>=RECORD

<поле1>:<тип поля1>;

<поле2>:<тип поля2>;

<полеN>:<тип поляN>

end;

Если тип нескольких полей совпадает, то имена полей можно перечислить через запятую. <ИмяТипа> и поля являются правильными идентификаторами. Объявление переменных производится, как и для других типов, в разделе VAR: Доступ к каждой компоненте записи производится указанием составного имени: имени переменной и затем через точку имени поля. Таким образом в типе "запись" определена операция присваивания. Над полями можно выполнять действия, разрешенные для базового типа. В качестве переменной может быть объявлен массив записей. Для упрощения доступа к полям записи может использоваться генератор присоединения. Структура оператора имеет вид: WITH <переменнаяТипаЗапись> DO <оператор>;

Поле записи может иметь практически любой тип (массив, другая запись, множество). Доступ к вложенным элементам сложных структур, например, к записи в записи, выполняется перечислением ряда полей через точку или оператор присоединения. Запись может иметь вариантную часть. Это означает, что можно задать в пределах одного типа несколько различных структур. Вариантная часть задается после перечисления фиксированных полей предложением CASE ... OF. Вариантная часть состоит из нескольких вариантов, каждый из которых определяется константой выбора, за которой следует двоеточие и список полей с указанием типа. В любой записи может быть только одна вариантная часть. В основном блоке программы при обращении к компонентам части CASE необходимо предусмотреть разветвление (операторами IF либо CASE). Переключателю N присваивается соответствующее значение. Используя тип "запись", можно составить базы данных для разных назначений, а затем обрабатывать их с помощью программы.

14. Файлы

Файл - именованная область внешней памяти ПК. Файлом может называться также логическое устройство, потенциальный источник или приемник информации. Файл характеризуется именем и содержит компоненты одного типа. Длина вновь создаваемого файла не указывается при его объявлении. Файлы делятся на типизированные, текстовые и нетипизированные. Определяются файловые типы в блоке TYPE следующим образом:

Туре

<имя>=FILE OF <тип>; (типизированный) <имя>=ТЕХТ (текстовый)

< имя > =F ILE-(нетипизированный)

Вид файла определяет способ хранения информации в файле. Переменные файловых типов объявляются в разделе VAR

VAR

<имя_переменной>: TEXT;

<имя_переменной>: FILE OF <тип>; < имя_переменной>: FILE;

Некоторые устройства могут только выдавать информацию (клавиатура), другие - только принимать ее (устройства печати), третьи позволяют и считывать, и записывать (файл на диске). Любой программе доступны два предварительно объявленных файла со стандартными файловыми переменными: INPUT - для чтения данных с клавиатуры и OUTPUT - для вывода на экран. Связывание выполняется стандартной процедурой ASSIGN:

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

<Имя_файла> - это любое выражение строкового типа, которое строится по правилам определения имен в MS DOS:

-содержит до 8 разрешенных символов: прописные и строчные латинские буквы, цифры и следующие символы ! @ я $ % ~ & ( )

-начинается с любого разрешенного символа,

-за именем может следовать расширение последовательность до трех разрешенных символов. Расширение, если оно есть, отделяется от имени точкой, например: Labi.pas, date.txt. Перед именем может указываться путь к файлу, имя диска и/или имя текущего каталога и имена каталогов вышестоящих уровней. Однажды установленная связь процедурой Assign между файловой п ременной f и физическим файлом сохраняется до следующего вызова Assign с той же файловой переменной f. В ТП можно открыть файл для чтения, записи, а также для чтения и записи одновременно. Следующие процедуры открывают логический файл с файловой переменной <ф.п.>, связанной ранее с уже существующим файлом или логическим устройством:

RESET(<ф.п.>) - для чтения,

REWRITE(<ф.п.>) - для записи.

Только после открытия файла становится возможным чтение и запись данных. При их выполнении переменная-указатель, связанная с файлом, будет указывать на начало этого файла (на компонент с номером нуль). Процедуры открытия могут применяться многократно к одному и тому же файлу. Если файл был до этого открыт, то он автоматически предварительно закрывается. Повторный вызов RESET переустановит последовательность чтения вновь на самый первый элемент файла (потеря данных исключена). Но повторное обращение в REWRITE сотрет текущее содержимое файла и подготовит файл к заполнению с первого элемента. Процедура CLOSE(f) закрывает открытый ранее логический файл f и обеспечивает сохранение всех записей и регистрацию файла на диске. Попытка закрыть уже закрытый файл или еще не открытый вызовет сбой в работе программы. Закрытие файлов выполняется автоматически по отношению ко всем открытым файлам при нормальном завершении программы. При этом связь файла с файловыми переменными сохраняется. При переименовании процедурой RENAME менять можно лишь имя файла, имя диска менять нельзя. Предварительно файл должен быть закрыт процедурой CLOSE. Функция EOF(f) тестирует конец файла. Если она возвращает TRUE, при записи очередной компонент будет добавлен в конец файла, при чтении - файл считается исчерпанным.

Соседние файлы в папке 1 курс 2 семестр