Var
Ini:TIniFile;
Далее необходимо создать объект (после объявления переменной в разделе var):
Ini:=TIniFile.Create(Name:String);
Если файл с таким именем существует, он откроется для чтения. Если нет – то он будет создан. Это очень удобно, т.к. не надо обрабатывать возможные исключительные ситуации, которые могут возникнуть при обращении к файлу.
Если указать относительное имя файла(Name), например ‘ config.ini ’, то этот файл будет читаться/создаваться в папке Windows, поэтому чаще требуется использовать полный путь:
Ini:=TIniFile.Create(‘C:\Documents and Settings\Admin\Documents\MyProg\config.ini’);
Если нужно создать/читать INI-файл из каталога с программой, то возможна такая форма записи:
Ini:=TIniFile.Create(ExtractFilePath(Application.ExeName)+’config.ini’);
Методы (функции) чтения (возвращают прочитанное значение):
ReadBool – читает логическое значение (true/false)
ReadInteger – читает целочисленное значение
ReadString – читает строку
ReadFloat – читает вещественное значение
ReadDate – читает дату (тип TDate)
ReadTime – читает время (тип TTime)
ReadDateTime – читает дату и время в одном параметре (тип TDateTime)
Тип TDateTime, определенный в модуле System, представляет собой вещественное число типа Double, целая часть которого задает число дней (в том числе и отрицательное), прошедших с 30 декабря 1899 г., а дробная часть - прошедшую долю текущего дня.
Все методы чтения имеют три параметра - имя секции, в которой находится параметр, имя самого параметра, из которого должно вестись чтение и значение, возвращаемое по умолчанию в случае неудачного чтения функцией (нет секции/параметра/файла);
Int:=Ini.ReadInteger(‘ Window ’, ‘ Height ’, 80);
Методы (процедуры) записи:
WriteBool – запись логического значения (true/false)
WriteInteger – запись целочисленного значения
WriteString – запись строки
WriteFloat – запись вещественного значения
WriteDate – запись даты
WriteTime – запись времени
WriteDateTime – запись даты и времени в одном параметре
Все методы записи также имеют три параметра - имя секции, в которой находится параметр, имя самого параметра, в который нужно записать значение, и само значение;
Ini.WriteBool(‘ Main ’, ‘ CanOpen ’, true);
Когда работа с INI-файлом закончена, следует освободить неиспользуемую переменную типа TIniFile. Для этого используется метод Free (Destroy, процедура FreeAndNil):
Ini.Free;(Ini.Destroy; FreeAndNil(Ini);)
Дополнительные процедуры и функции работы с ini-файлами
Методы класса | значение |
procedure EraseSection (const Section: string); section – имя удаляемой секции | Удаляет секцию со всеми ее параметрами. Если секции не существует, возникает исключительная ситуация |
procedure DeleteKey (const Section, Ident: String); | Уничтожает значение параметра Ident в секции Section. Если указана несуществующая секция или имя несуществующего параметра, метод создаст новую секцию и/или установит в ней параметр с пустым значением. |
procedure ReadSection (const Section: string; Strings: TStrings); | Помещает в список Strings имена всех параметров из секции Section. |
procedure ReadSections (Strings: TStrings); | Помещает в список Strings имена всех секций файла. |
procedure ReadSectionValues (const Section: string; Strings: TStrings); | Помещает в список Strings имена всех значений из секции Section. |
function ValueExists (const Section, Ident: string): Boolean; | Проверяет существование элемента в ini-файле |