
- •Описание записи (record).
- •Работа с файлами. Общие сведения о файлах.
- •Процедуры и функции для работы с файлами.
- •Особенности обработки типизированных файлов.
- •Создание файла.
- •3. Добавление записей к файлу (в конец файла)
- •If {…запись не удаляется…}
- •Корректировка с использованием последовательного доступа.
- •If {запись не корректируется}
- •If { корректировка подтверждена }
- •О взаимосвязи записей основного обрабатываемого файла и записей файлов-справочников
- •Файлы без типа.
Описание записи (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;
Идентификатор и типа, и самой записи должен быть уникальным в рамках программы. Тип удобно размещать в модуле, тогда он становится доступным всем частям пакета программ.
При работе с переменной типа запись возможны варианты.
Работа с записью как с единым целым. При этом варианте запись может участвовать в операциях ввода/вывода. Обращение к записи по её идентификатору: ZAP
Работа с отдельными полями записи. Каждое поле имеет свой идентификатор и тип. Для обращения к отдельным полям записи указываются составные имена: имя записи, после которого ставится точка и записывается идентификатор поля. К компонентам записи возможен прямой доступ по их составным именам 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;
Записи могут существовать «индивидуально», как самостоятельные переменные, могут быть элементами массива, но наиболее рациональное применение их – в виде элементов (записей) типизированного файла.
Работа с файлами. Общие сведения о файлах.
При обработке на компьютере информация может храниться на внешних носителях в виде файлов.
Файл на носителе – это поименованная совокупность логически связанных между собой данных (записей), имеющая определенную организацию и общее назначение.
Физическая запись – это совокупность данных, передаваемых в прямом или обратном направлении при одном обращении к внешнему носителю (т.е. минимальная единица обмена данными между внешней и оперативной памятью. С физическими записями - блоками работает операционная система). Физическая запись состоит из логических записей.
Логическая запись – единица данных, используемая в операторах чтения и записи файлов, порция информации, обрабатываемая в программе «за один раз». Логические записи объединяются в физическую запись для уменьшения числа обращений к внешнему устройству.
Для обращения к записям файла на внешнем носителе используется понятие логического файла.
Логический файл или файл в программе – это совокупность данных, состоящая из логических записей, объединенных общим назначением.
Соотношение между логическим и физическим файлами: один логический файл в программе и один из нескольких разных физических файлов на разных (возможно) носителях, но с одним типом записи.
В каждый конкретный момент времени возможен доступ через данный логический файл только к одному физическому файлу.
Число записей в файле произвольно.
В каждый момент времени доступна только одна запись.
Длиной файла называют количество записанных компонентов. Файл, не содержащий записей, называется пустым.
Блокирование – объединение логических записей в физическую при выводе, выполняется ОС автоматически с использованием буфера (буферов) вывода.
Деблокирование – процесс, обратный блокированию, тоже осуществляется ОС автоматически.
Буферизация - работа ОС по обеспечению обмена записями между логическим и физическим файлами.
ОС обеспечивает взаимодействие между физическим и логическим файлами. Стандартные средства обеспечения этого взаимодействия:
установление связи между физическим и логическим файлами ASSIGN (…), где указывается имя файла в программе и имя файла на внешнем носителе (выполняется без контроля существования файла);
обеспечение физической возможности обмена информацией между файлами, открытие файла для чтения информации из него RESET (…) или для записи в него REWRITE (…). При этом осуществляется контроль наличия физического файла;
прекращение, отмена возможности физического обмена информацией между файлами, закрытие файла CLOSE (…). Связь между файлами при этом не разрывается (т.е. ASSIGN действует).
При работе с файлами необходимо придерживаться следующих общих правил:
каждый файл в программе (переменная файлового типа) должен быть объявлен в разделе VAR. Не допускается использование таких переменных в выражениях и операторах присваивания.
Тип компонентов файла может быть любым, кроме файлового.
каждый файл в программе должен быть закреплен за конкретным файлом на носителе процедурой ASSIGN;
открытие существующего файла для чтения, корректировки или дозаписи производится процедурой RESET, открытие создаваемого файла для записи – процедурой REWRITE;
по окончании работы с файлом он должен быть закрыт процедурой CLOSE.
***********************************************