Описание записи (RECORD).
Записи представляют собой так называемые составные единицы информации. Аналог записи – документ, например, анкета.
Запись – это структура данных (структурированный тип данных), состоящая из фиксированного числа разнотипных компонентов, называемых полями.
В общем виде описание типа для записи можно представить:
TYPE
идентификатор типа = RECORD
идент1: тип 1;
идент2: тип 2;
идент3: тип 3;
...
END;
Например,
TYPE
TA= RECORD
P1: REAL;
P2: STRING;
P3: INTEGER;
END;
VAR
A: ARRAY[1..10] OF TA;
ZAP: TA;
Идентификатор и типа, и самой записи должен быть уникальным в рамках программы. Тип удобно размещать в модуле, тогда он становится доступным всем частям пакета программ.
При работе с переменной типа запись возможны варианты.
1. Работа с записью как с единым целым. При этом варианте запись может участвовать в операциях ввода/вывода. Обращение к записи по её идентификатору: ZAP
2. Работа с отдельными полями записи. Каждое поле имеет свой идентификатор и тип. Для обращения к отдельным полям записи указываются составные имена: имя записи, после которого ставится точка и записывается идентификатор поля. К компонентам записи возможен прямой доступ по их составным именам ZAP.P1, ZAP.P2, ZAP.P3, и они могут изменяться:
|
|
ZAP.P1:= 3.14;
ZAP.P2:=’Н’;
ZAP.P3:= 12345;
Запись можно передавать в качестве параметра процедуры или функции, но значением функции запись быть не может.
Запись может объявляться и непосредственно в разделе описания переменных, это менее удобно.
VAR
C: RECORD
P1: REAL;
P2: STRING;
P3: INTEGER;
END;
Записи могут существовать «индивидуально», как самостоятельные переменные, могут быть элементами массива, но наиболее рациональное применение их – в виде элементов (записей) типизированного файла.
Работа с файлами.
Общие сведения о файлах.
При обработке на компьютере информация может храниться на внешних носителях в виде файлов.
Файл на носителе – это поименованная совокупность логически связанных между собой данных (записей), имеющая определенную организацию и общее назначение.
Физическая запись – это совокупность данных, передаваемых в прямом или обратном направлении при одном обращении к внешнему носителю (т.е. минимальная единица обмена данными между внешней и оперативной памятью. С физическими записями - блоками работает операционная система). Физическая запись состоит из логических записей.
Логическая запись – единица данных, используемая в операторах чтения и записи файлов, порция информации, обрабатываемая в программе «за один раз». Логические записи объединяются в физическую запись для уменьшения числа обращений к внешнему устройству.
|
|
Для обращения к записям файла на внешнем носителе используется понятие логического файла.
Логический файл или файл в программе – это совокупность данных, состоящая из логических записей, объединенных общим назначением.
Соотношение между логическим и физическим файлами: один логический файл в программе и один из нескольких разных физических файлов на разных (возможно) носителях, но с одним типом записи.
В каждый конкретный момент времени возможен доступ через данный логический файл только к одному физическому файлу.
Число записей в файле произвольно.
В каждый момент времени доступна только одна запись.
Длиной файла называют количество записанных компонентов. Файл, не содержащий записей, называется пустым.
Блокирование – объединение логических записей в физическую при выводе, выполняется ОС автоматически с использованием буфера (буферов) вывода.
Деблокирование – процесс, обратный блокированию, тоже осуществляется ОС автоматически.
Буферизация - работа ОС по обеспечению обмена записями между логическим и физическим файлами.
ОС обеспечивает взаимодействие между физическим и логическим файлами. Стандартные средства обеспечения этого взаимодействия:
2) установление связи между физическим и логическим файлами ASSIGN (…), где указывается имя файла в программе и имя файла на внешнем носителе (выполняется без контроля существованияфайла);
3) обеспечение физической возможности обмена информацией между файлами, открытие файла для чтения информации из него RESET (…) или для записи в него REWRITE (…). При этом осуществляется контроль наличия физического файла;
4) прекращение, отмена возможности физического обмена информацией между файлами, закрытие файла CLOSE (…). Связь между файлами при этом не разрывается (т.е. ASSIGN действует).
При работе с файлами необходимо придерживаться следующих общих правил:
v каждый файл в программе (переменная файлового типа) должен быть объявлен в разделе VAR. Не допускается использование таких переменных в выраженияхи операторах присваивания.
v Тип компонентов файла может быть любым, кроме файлового.
v каждый файл в программе должен быть закреплен за конкретным файлом на носителе процедурой ASSIGN;
v открытие существующего файла для чтения, корректировки или дозаписи производится процедурой RESET, открытие создаваемого файла для записи – процедурой REWRITE;
v по окончании работы с файлом он должен быть закрыт процедурой CLOSE.
***********************************************