Раздел завершения finalization
Раздел завершения используется для освобождения ресурсов, выделенных программе в разделе инициализации.
Разделы finalization всех модулей программы выполняются после ее выполнения в порядке, противоположном порядку выполнения разделов initialization этих модулей.
Раздел является необязательным и может присутствовать только вместе с разделом initialization.
Правила работы с модулями
Запрещено:
1) Одновременное использование модулей с одинаковыми именами.
2) Пересечение в одном модуле списков uses в разделах интерфейса и реализации.
3) Взаимное подключение модулей в разделах интерфейса:
unit M1; interface uses M2;... | unit M2; interface uses M1;... |
Разрешено:
1) Взаимное подключение модулей в разделах реализации:
unit M1; interface ... Implementation uses M2; ... | unit M2; interface ... Implementation uses M1; ... |
2) Взаимное подключение модулей в разных разделах, например, М1 подключает М2 в разделе интерфейса, а М2 подключает М1 в разделе реализации:
unit M1; interface uses M2; ... | unit M2; interface ... Implementation uses M1; ... |
Использование объявленных в модуле объектов
Ко всем объектам, описанным в интерфейсной части модуля, можно обращаться так, как будто они описаны в самой программе. При этом действуют следующие правила видимости для имени, которое используется в программе:
1) описание имени ищется в описательной части программы; если описание найдено, оно и используется;
2) если в программе имя не описано, описание имени ищется в интерфейсных частях модулей, которые указаны в списке uses, при этом модули просматриваются справа налево, т.е. в порядке, обратном подключению.
3) для исключения коллизий, когда имя описано в нескольких местах, надо использовать полное имя, состоящее из имени модуля, точки и имени объекта, например: M2.x.
Файлы
Файлы. Классификация файлов
Файл – именованная область данных во внешней памяти (на диске). В файлы можно записывать данные и считывать из них данные. Это позволяет заранее подготовить для программы исходные данные большого объема и сохранить результаты ее работы. Кроме того, среда программирования на Паскале реализует ввод с клавиатуры через стандартный файл ввода, а вывод на экран монитора – через стандартный файл вывода.
Файлы именуются согласно правилам операционной системы (Windows и т.д.), в которой работает конкретная среда программирования.
В языке Паскаль предусмотрено три типа файлов:
1) Текстовые файлы состоят из символьных строк. Примером служат исходные тексты программ на Паскале.
2) Типизированныефайлы содержат двоичный код и состоят из компонентов одного типа и фиксированной длины. Их можно использовать для хранения числовых данных, для создания мини баз данных.
3) Нетипизированные файлы содержат двоичный код. Такие файлы используются для хранения данных и быстрого их копирования, работа с ними ведется по блокам одинаковой длины. Далее они не рассматриваются.
По способу доступа файлы делятся на две группы:
1) Файлы с последовательным доступом, читать компоненты таких файлов можно только поочередно с начала файла, а добавлять новые компоненты можно либо в пустой файл, либо в конец файла.
2) Файлы с прямым доступом, когда любой компонент файла может быть записан и прочитан в произвольном порядке.
Длина строк текстового файла в общем случае неодинакова, поэтому для текстовых файлов реализован только последовательный доступ.
Типизированные файлы имеют компоненты строго постоянной длины, что позволяет по номеру компонента определить его местоположение в файле и организовать, кроме последовательного доступа, также и прямой доступ к любому компоненту.