<<
>>

Организация файлов и средства управления ими

Файл — это структура данных во внешней памяти, имеющая имя и специальную организацию. Во внешней памяти файлы только хранятся. Для обработки данные из файла вызываются в оперативную память.
В каждый момент времени возможен доступ только к одному элементу файла. Этот элемент адресуется с помощью указателя файла. Данные из элемента файла заносятся в буферную переменную (рис. 18.1).

Рис. 18.1. Доступ к элементам файла

После чтения или записи указатель файла перемещается к следующему элементу и делает его доступным для обработки. Количество элементов в файле не фиксируется. Иными словами, файл имеет переменную длину.

Предусмотрены два способа доступа к элементам файла: последовательный и прямой (произвольный).

При последовательном доступе элементы файла доступны только в последовательном порядке (от первого к последнему). Таким образом, перед обращением к п+1-му элементу должно произойти обращение к предыдущим п элементам файла.

При прямом доступе возможно прямое обращение к любому элементу по его номеру в файле.

Различают понятия: внешний файл и внутренний файл.

Внешний (физический) файл — это реальный набор данных, существующий во внешней памяти. Внутренний файл — это абстракция, описываемая в программе и обеспечивающая взаимодействие с реальным внешним файлом (рис. 18.2).

544

Глава 18.
Ввод-вывод и файлы

Рис. 18.2. Внешний и внутренний файлы

Программа пользователя не имеет непосредственного доступа к внешнему файлу. Вся работа с внешними файлами описывается в ней в терминах внутренних файлов.

В языке Ада внутренний файл задается как объект файлового типа. Объявление файлового типа находится в стандартных пакетах ввода-вывода и имеет вид: type File_Type is limited private;

Из этого объявления следует, что внутреннее содержание файловых объектов закрыто для пользователя. К файловым объектам применимы только те операции, которые определены в пакетах ввода-вывода.

Для управления файлами используются пять операций. Процедура Create служит для создания и открытия нового внешнего файла, связывания его с внутренним файлом. Процедура Open открывает уже существующий внешний файл и связывает его с внутренним файлом. Процедура Close закрывает внешний файл, разрывая его связь с внутренним файлом. Процедура Delete удаляет внешний файл. Процедура Reset переводит указатель файла в начальную позицию, позволяя возобновить ввод

или вывод элементов с самого начала.

Процедура Create имеет следующую спецификацию:

где File — имя внутреннего файла, связываемого с создаваемым внешним файлом, Mode — режим работы (допустимы значения: In_File — ввод, Out_File — вывод, InOut_File — ввод-вывод, Append_File — добавление), Name — имя внешнего файла, Form — дополнительные характеристики внешнего файла.

Спецификация процедуры Open записывается в виде:

Организация файлов и средства управления ими

545

Формальные параметры у процедуры Open те же, что и у процедуры Create.

Однако параметры Mode и Name не имеют значений по умолчанию. Дело в том, что запрещается открывать уже открытый файл (возникает исключение Status_Error). Если не существует внешнего файла с указанным через Name именем, то генерируется исключение Name_Error (для процедуры Create оно генерируется, если имя внешнего файла недопустимо). Наконец, исключение Use_Error вырабатывается, если операционная среда не поддерживает открытие (или создание) внешнего файла по каким-либо другим причинам (например, на диске нет свободного места).

Фактически процедуры создания и открытия готовят внешний файл к сеансу ввода или вывода.

Процедура

procedure Close ( File : in out File_Type );

завершает сеанс работы с внешним файлом, ее параметром является внутренний файл, связь которого с внешним файлом уничтожается. Если внешний файл не был открыт, то возбуждается исключение Status_Error.

Процедура

procedure Delete ( File : in out File_Type );

уничтожает внешний файл, связанный с данным внутренним файлом.

Процедура Reset имеет две разновидности: procedure Reset ( File : in out File_Type;

Mode : in File_Mode );

procedure Reset ( File : in out File_Type );

С ее помощью внешний файл устанавливается в состояние, позволяющее возобновить ввод-вывод с начала файла или добавление в конец файла (для режима Append_File). Если задан параметр Mode, то в соответствии с ним устанавливается новый режим работы файла. Так, если надо создать новый файл, записать в него данные, а затем прочитать их и обработать, то необходимы следующие этапы работы:

1. Выполнение процедуры Create.

2. Запись данных в открытый файл.

3. Выполнение процедуры Reset с заданием режима In_File.

4. Чтение и обработка данных из файла.

5. Закрытие файла с помощью процедуры Close.

Для получения информации о внешнем файле определены следующие функции:

546

Глава 18. Ввод-вывод и файлы

В заключение отметим, что описанные здесь процедуры и функции определены для всех разновидностей файлов Ады.

<< | >>

Еще по теме Организация файлов и средства управления ими:

  1. Статья 308. Хищение, присвоение, вымогательство наркотических средств, психотропных веществ или их аналогов либо завладение ими путем мошенничества или злоупотребления служебным положением
  2. Функции управления в организации.
  3. § 8.4. Управление конфликтом в организации
  4. § 5.1. Основные принципы управления в организации
  5. Сущность процесса управления в организациях.
  6. Глава 5 СОЦИАЛЬНЫЕ ОСНОВЫ УПРАВЛЕНИЯ В ОРГАНИЗАЦИИ
  7. § 5.2. Свойства и функции системы управления в организации
  8. Психологические факторы организации управления
  9. § 6.1. Применение контроля в управлении организацией
  10. 2. Создание и управление автономной некоммерческой организацией
  11. § 9.1. Сущность мотивации как функции управления в организации
  12. § 2. Транспортные организации. Управление транспортом
  13. 13.2.2. Организация деятельности средства массовой информации
  14. Проблема неопределенности в управлении организацией.
  15. 13.2.4. Отношения средств массовой информации с гражданами и организациями
  16. 2.5. Организации, осуществляющие управление правами на коллективной основе
  17. Психологические особенности организации коммуникативной сети управления.
  18. Статья 410. Похищение, присвоение, вымогательство военнослужащим оружия, боевых припасов, взрывчатых или иных боевых веществ, средств передвижения, военной и специальной техники или иного военного имущества, а также завладение ими путем мошенничества или злоупотребления служебным положением
  19. Статья 322. Незаконная организация или содержание мест для употребление одурманивающих средств