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 |