Раздел завершения 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) Файлы с прямым доступом, когда любой компонент файла может быть записан и прочитан в произвольном порядке.

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

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