Работа с *.INI - файлами
Дата: 26 апреля 2008 года
Использование *.INI - файлов очень удобно и экономично. В данных файлах вы можете хранить настройки вашей программы (именно для этого они и существуют). Тем самым вы не будете захламлять системный реестр. Использовать *.INI - файлы можно и в других случаях, т.к. синтаксис очень прост и удобен в использовании.
Использование *.INI в Delphi
Для работы с *.INI - файлами в Delphi вам необходимо подключить модуль IniFiles, и создать объект TIniFile, затем с ним работать. После завершения работы объект необходимо удалить методом Free.
Основные методы:
- Free - удаляет объект TIniFile
- FileName - возвращает имя файла, с которым связан объект TIniFile
- DeleteKey - удаляет ключ в разделе
- EraseSection - удаляет раздел
- ReadInteger - считывает из файла целочисленные данные
- ReadString - считывает из файла строковые данные
- ReadBool - считывает из файла логические (true, false) данные
- WriteBool - записывает в файл логические данные
- WriteString - записывает в файл строковые данные
- WriteInteger - записывает в файл целочисленные данные
- ReadSection - извлекает имена идентификаторов в указанном разделе INI - файла
- ReadSections - извлекает все имена разделов
- ReadSectionValues - извлекает из заданного раздела все ключи
- ReadBinaryStream - считывает поток из файла
- WriteBinaryStream - записывает поток в файл
Для более детального изучения можно обратиться к исходному коду модуля IniFile (однако приведенных выше методов вполне хватает для работы).
Вот несколько дополнительных функций, которые помогут вам в решении некоторых проблем связанных с использованием INI - файлов:
WriteProfileString и WritePrivateProfileString - сбрасывают изменения в INI - файле на диск, что позволяет немедленно записать все изменения в вашем файле настроек. Функции находятся в модуле Windows.pas (импортированы из kernel32.dll).
А вот еще небольшая вещь: сообщение WM_WININICHANGE позволяет отслеживать изменения происходящие в файле Win.ini.
Иерархия объектов
Возможно вам потребуется обрабатывать исключительные ситуации, возникающие при работе с INI - файлами. В этом вам поможет класс EIniFileException (Exception).
Также в модуле IniFiles описаны два дополнительных класса (в помощь TMemIniFile - файлы в памяти (увеличивается быстродействие, но при неправильной работе можно вызвать сбой)) - это TStringHash и THashedStringList.
Скачать пример к статье (ZIP; 1.7Кб)