Программа на Delphi

Ниже приведен пример исходных текстов головной программы KdnBread и одного подчиненного (используемого) ею модуля Main.

Program KdnBread; {начало текста головной программы} {текст содержится в файле 'c:\Borland\Projects\KdnBread.pas'} uses {ссылки на модули типа unit } Forms, {ссылка на модуль Forms } main in 'main.pas' {Form1}; {ссылка на модуль main } {$R *.RES} begin Application.Initialize; Application.CreateForm(TForm1, Form1); Application.Run; end. {конец текста головной программы}

unit Main; {начало текста модуля Main} { текст модуля содержится в файле 'c:\Borland\Projects\Main.pas' } interface {начало интерфейсной части модуля} uses Windows, Messages, SysUtils, {ссылки на другие модули } Graphics, Controls, Forms, StdCtrls;

Type {описание типов}

TForm1 = class(TForm) Button1: TButton; L1: TLabel; procedure Button1Click(Sender: TObject); private { Private declarations } public { Public declarations } end;

Var {описание переменных} Form1: TForm1; b: boolean; i: Integer; IterationPar: Word;

function OneSymbString(c: Char; d: byte): String; {заголовок функции} implementation {начало процедурного блока модуля}

{$R *.DFM}

procedure TForm1.Button1Click(Sender: TObject); {заголовок процедуры} begin if (i > 12) and b then L1.Caption:='Студент:'+AnsiUpperCase ('Иванов Владимир Иванович'); end; {конец процедуры}

function OneSymbString(c: Char; d: byte): String; {заголовок функции} begin Result:=CharStr(c, d); end; {конец функции}

initialization IterationPar:= 0; end. {конец текста модуля Main}

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

16.1. Структура модуля

Модуль имеет следующую структуру:

Unit <имя>; interface <интерфейсная часть>

implementation <выполняемая часть>

initialization <блок инициирования>

finalization <блок завершения>

end.

16.2. Раздел Interface

Раздел Interface модуля Unit предназначен для описания внешних компонент: используемых модулей, типов, констант, переменных, заголовков процедур и функций. Так, в вышеприведенном примере в разделе Interface содержатся:

  • в списке Uses – ссылки на модули Windows, Messages, SysUtils, Graphics, Controls, Forms, StdCtrls;
  • в секции Type – описание типа экранной формы – класс TForm1;
  • в секции Var – описание переменных Form1, b, i и описание заголов-ка функции OneSymbStr, предназначенной для создания строки повторяю-щихся d раз символов Ch.

16.3. Раздел Implementation

Раздел Implementation модуля Unit предназначен для описания внутренних, т.е. доступных к использованию только внутри данного Unit, компонент: типов, констант, переменных, процедур и функций. Так, в вышеприведенном примере в разделе Implementation содержится описание процедуры TForm1.Button1Click(Sender: TObject) и функции OneSymbStr.

16.4. Инициирование и завершение модуля

Всякий модуль может содержать блок инициирования и блок завершения. Эти блоки располагаются в нижней части модуля, непосредственно примыкая к последнему оператору end. Первый блок начинается словом initialization, второй – словом finalization.

Блок инициирования initialization заканчивается последним оператором end модуля либо, при наличии блока завершения, продолжается до слова finalization.

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

Блок завершения может быть использован только в том случае, если модуль имеет блок инициирования. Этот блок, в противоположность блоку инициирования, предназначен для размещения операторов завершения, т. е. операторов освобождения ресурсов памяти, закрытия ранее открытых в блоке инициирования файлов и пр.

Например, модуль может заканчиваться следующими операторами:

Initialization {инициирование}

Ga:= 0; AssignFile(f, 'c:\Projects\BreadPro\First.dat'); Reset(f, SizeOf(Rec1)); New(AppMem);

Finalization {завершение} Dispose(AppMem); CloseFile(f); End. {последний оператор модуля}

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

17. Файлы

Файлом называется область данных на внешнем носителе – жестком диске, дискете и пр. Всякий файл имеет имя, представляющее собой строку символов. Различают обычное имя (или просто имя) и полное имя. Под полным именем понимается абсолютный адрес файла, состоящий из пути и имени файла. Например, строка 'C:\Program Files\Folder1\Students.dat' является полным именем. Оно состоит из пути 'C:\Program Files\Folder1' к файлу и собственно имени файла 'Students.dat'. Это означает, что файл 'Students.dat' расположен на диске C в папке (директории) Program Files непосредственно в подпапке (субдиректории) Folder1.

Ранее упоминалось, что в языке Object Pascal существует три типа файлов:

<имя> = TextFile; {текстовые файлы}

<имя> = File; {файлы без типа}

<имя> = File of <тип даных>; {файлы с типом}

17.1. Файловая переменная

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

Связывание файла с файловой переменной производится с помощью стандартной процедуры AssignFile, которая имеет заголовок:

AssignFile(<файловая переменная >, <имя файла>);

Например, фрагмент

Var

f1: TextFile; FullPath: String[60]; … FullPath:= 'a:\a1.res'; AssignFile(f1, FullPath);

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

17.2. Текстовые файлы

Текстовой файл – это последовательность символьных строк перемен-ной длины. Всякая строка завершается маркером конца строки, всякий текстовой файл завершается маркером конца файла. Такие файлы можно обрабатывать только последовательно. Один и тот же текстовой файл не может быть открыт одновременно для ввода и вывода. Файловая переменная этого файла имеет тип TextFile или просто Text.


Страница: