20.5.1. Файлы инициации

Файлы инициации в Delphi связаны с объектами класса TIniFile. Эти объекты не являются глобальными и создаются программно по мере надобности. С каждой программой можно связать сколько угодно файлов инициации.

Физически файл инициации представляет собой обычный текстовый файл, который сохраняется либо в каталоге запуска программы (локальный файл), либо в каталоге запуска Windows (глобальный файл инициации). Файл содержит ряд секций, каждая из которых имеет заголовок и следующие за ним параметры. Заголовок - это произвольный английский текст, заключенный в квадратные скобки. Каждый параметр представлен строкой вида

<ИМЯ_ПАРАМЕТРА>=<ЗНАЧЕНИЕ>

Например:

[Location]

DataBase=C:\mybase Graphics=C:\BITMAP

В этом примере в секции Location файла инициации представлены два параметра с именами DataBase и Graphics. Объекты класса TiniFiie предоставляют удобные средства чтения/записи параметров по именам параметров и секций.

В объекте имеется единственное свойство Filename: String, содержащее имя файла инициации с возможным маршрутом поиска.

Методы класса TIniFile:

constructor Create(const FileNameString) ;

Создает объект-файл с именем FileName. Это имя автоматически переносится в свойство FileName. Если физический файл существовал, он открывается, если нет создается

procedure DeleteKey(const Section,

Ident: String) ;

Уничтожает значение параметра Ident в секции Section. Если указана несуществующая секция или имя несуществующего параметра, метод создаст секцию и/или установит в ней параметр с пустым значением

procedure EraseSection(const Section: String) ;

 

Удаляет секцию со всеми ее параметрами.

Если секции не существует, возникает исключительная ситуация

function ReadBool (const Section,

Ident:.String; Default: Boolean): Boolean;

Возвращает значение логического параметра Ident в секции section. Возвращает Default, если не существует указанная

секция, или в ней нет нужного параметра, или, наконец, параметр имеет не логическое значение

function Readlnteger(const Section, Ident: String; Default:Longint): Longint;

 

Возвращает значение целого параметра Ident в секции Section, Возвращает Default, если не существует указанная секция, или в ней нет нужного параметра, или, наконец, параметр имеет не целое значение

procedure ReadSection (const Section: String; Strings: TStrings);

Помещает в список Strings имена всех параметров из секции Section

procedure ReadSections (Strings:

TStrings);

Помещает в список Strings имена всех

секций файла

procedure ReadSectionValues(const Section: String; Strings: TStrings) ;

Помещает в список strings имена всех

значений из секции Section

function ReadString(const Section,

Ident, Default: String): String;

 

Возвращает значение строкового параметра Ident в секции section. Возвращает Default, если не существует указанная секция, или в ней нет нужного параметра,

или, наконец, параметр не имеет значения

procedure WriteBool(const Section,

Ident: String; Value: Boolean);

Записывает в параметр Ident секции section логическое значение value.

procedure Writelnteger(const Sec

tion, Ident: String; Value: Longint) ;

Записывает в параметр Ident секции Section целое значение Value

procedure WriteString(const Section, Ident, Value: String);

Записывает в параметр Ident секции Section строковое значение value