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