Файлы и записи
ТЕХНОЛОГИЯ ПРОГРАММИРОВАНИЯ ВВОДА-ВЫВОДА ИНФОРМАЦИИ ПРИ РАБОТЕ С ФАЙЛАМИ ДАННЫХ
Современные информационные системы нуждаются во внешних запоминающих устройствах (ВЗУ) большой емкости. На них хранятся объемы как неизменяемых, так и часто обновляемых данных. Примеры.
Прикладные программы, как правило, должны иметь возможность быстрого доступа к любому элементу информации.
Работа с файлами – это один из способов ввода-вывода информации из программ.
Существуют четыре основных способа ввода данных в программах:
1. Задание констант с помощью оператора присваивания.
2. Ввод данных в процессе диалога пользователя с программой.
Например, с помощью оператора INPUT в Бейсике, ACCEPT (ацепт) или
READ в Фортране 77, Read или Readln (ридлин) в Паскале.
3. Инициализация переменных и массивов операторами READ и
DATA в Бейсике, DATA (дэйт) или PARAMETER (параметр) в Фортране 77, использованием типизированных констант в Паскале.
4. Чтение данных из файлов.
|
|
Основной особенностью первых трех способов является сохранение данных только на время работы программы. Этот недостаток отсутствует при использовании четвертого способа.
Кроме того, только файловая организация информации позволяет
связывать программу с внешними устройствами ЭВМ для обмена информацией с ними, а также с другими программами.
Файл представляет собой именованную совокупность записей, выступающую как единое целое при хранении и поиске данных, и имеющую одну из принятых в системе структур. Пример файла-
экзаменационная ведомость.
Различают физические и логические файлы. Файл, обрабатываемый в программе, - это логическая модель физического набора данных, находящегося вне программы.
Имя физического файла на диске должно удовлетворять требованиям операционной системы и обобщенно может быть представлено в следующем виде:
<Диск>:\<имя каталога>\<имя подкаталога>\...\<имя файла>
где <имя файла>:= имя.расширение.
Обработка файла, как правило, сводится к выполнению четырех операций, а именно:
Производится при создании нового или поиске существующего файла и служит для:
а) образования специальных системных буферов для обмена данными с файлом;
б) установки текущего указателя файла на первую запись;
2) запись данных в файл. Выполняется при заполнении файла, при внесении изменений в файл и служит для вывода данных из оперативной памяти (программы) в набор данных на внешнем носителе;
3) чтение данных из файла. Выполняется при необходимости получения данных, находящихся на внешнем носителе и служит для ввода данных из файла в оперативную память(программу);
|
|
4) закрытие файла. Выполняется после завершения создания или обработки файла и служит для отсоединения файла от созданного при открытии канала ввода-вывода.
Обмен информацией между программой и файлами осуществляется записями.
Запись - это набор элементов данных (или совокупность полей), обрабатываемых как одно целое. Например, при хранении экзаменационной ведомости на ВЗУ ее строка, содержащая такие
элементы как фамилия, оценка и номер зачетной книжки, является записью.
Различают логические и физические записи. Логическая запись - единица информации, на уровне которой происходит
обращение к информации на ВЗУ из программ. Физическая запись - совокупность данных, на уровне которой происходит физический обмен данными между внешними устройствами и оперативной памятью.
Размер логической записи определяется пользователем программно, а размер физической записи фиксирован.
Элемент или поле записи представляет собой данные, рассматриваемые как единое целое при обмене и хранении.
Например, фамилия студента в ведомости является полем или элементом записи.
Возможны несколько способов хранения файлов независимо от особенностей конкретных устройств ввода-вывода.
Известны последовательный и прямой способы организации файлов.
В последовательном файле данные размещаются в той последовательности, в которой поступают в файл. При чтении такого файла данные становятся доступными в том порядке, в котором они были записаны.
В файлах прямого или произвольного доступа данные организуются так, что доступ к ним может быть осуществлен в любом порядке независимо от того, в какой последовательности данные помещаются в файл. Каждая запись имеет свой номер, в соответствии с которым она помещается в файл и извлекается из него.
Длина записей в последовательных файлах может быть различной, а в файлах прямого доступа она фиксирована.