Работа с ini файлами в Delphi
Вторник, 26 июля 2011 г.Рубрика: Архив Itword.net (2007-10)
Метки: Delphi
Просмотров: 21566
Подписаться на комментарии по RSS
На разных этапах создания проекта у вас может возникнуть потребность сохранить пользовательские настройки на диск. Лучше всего для этого подойдут INI файлы.
Работать с ними намного удобнее, нежели с обычными текстовыми файлами. Представьте ситуацию, вы написали крупный проект, который имеет огромное число настроек, например 100 штук (причем это не простые чекбоксы). Теперь представьте, что пользователь изменит один из параметров. Вам придется заново переписывать все 100 настроек в файл. Это очень утомительно. Благо есть способ более элегантный. Для хранения настроек и прочих подобных данных лучше всего подходят INI файлы или реестр. С реестром мы разберемся в следующий раз. Изучим работу с INI файлами. Одно из главных преимуществ INI файлов заключается в том, что эти файлы поддерживают переменные разных типов (String, Integer, Boolean). Также несравненным плюсом является возможность доступа к определенной записи, без изменения остальных. Думаю, что пора закончить введение и перейти к практике. Прежде всего нам надо создать новое приложение. Добавьте в секцию uses модуль inifiles. Давайте сохраним какие-нибудь настройки в INI файле.
Сохраним, к примеру, координаты положения формы при ее закрытии. Первым делом нужно создать сам INI файл с помощью метода Create(Filename:string) переменная Filename содержит полный путь к INI файлу, если этот параметр явно не задан, то INI файл будет создан в папке Windows. Мы будем хранить INI файл в той же папке, что и запущенное приложение. Давайте напишем обработчик события OnClose для нашей формы:procedure TForm1.FormDestroy(Sender: TObject); var Ini: Tinifile;
// создаем переменную типа Tinifile begin
//создали INI файл в директории программы Ini:=TiniFile.Create(extractfilepath(Application.ExeName)+\'Ini.ini\'); Ini.WriteInteger(\'Position\',\'X\',form1.left); Ini.WriteInteger(\'Position\',\'Y\',form1.top); Ini.Free; end;
Откройте созданный INI файл в текстовом редакторе и убедитесь, что настройки успешно сохранились, напомню, что мы создали INI файл в том же каталоге, что и приложение. [Position] X=14 Y=427
Давайте подробно разберем строку Ini.WriteInteger(\'Position\',\'Y\',form1.top).
Этот оператор делает запись типа Integer (кроме нее существует еще два оператора WriteString и WriteBool, которые записывают данные типа String и Boolean соответственно). Всем трем типам операторов передается три параметра: название секции, название поля и его значение, причем тип значения должен соответствовать типу оператора. Общий вид процедуры таков:Ini.WriteInteger(const Section: string, const Ident:string, Value: Integer);
В INI файлах все поля расположены в секциях, это очень удобно и позволяет сохранять разные значения, разделяя их по категориям. Названия секций заключены в квадратных скобках. Если вы смотрели INI файл, то наверное уже все поняли. Оператор Ini.Free необходим для завершения работы с INI файлом и для освобождения памяти, не забывайте его. Теперь давайте научимся читать данные из INI файла. Для этого напишем обработчик события OnCreate для нашей формы. procedure TForm1.FormCreate(Sender: TObject); var Ini: Tinifile; begin //открываем файл Ini:=TiniFile.Create(extractfilepath(Application.ExeName)+\'Ini.ini\'); Form1.Left:=Ini.ReadInteger(\'Position\',\'X\',10); Form1.Top:=Ini.ReadInteger(\'Position\',\'Y\',10); Ini.Free; end;
Здесь все очень просто. Для чтения данных мы воспользовались оператором INI.ReadInteger. Этот оператор как две капли воды похож на оператор записи. Как вы уже наверное догадались, операторов чтения тоже три и зависят они также от типа значений. Параметры оператора точно такие же как и параметры оператора записи. Отличается лишь третий параметр, он необходим только в том случае, если произошла какая-либо ошибка или нужной строки не удалось найти. Как видите хранить настройки в INI файлах очень удобно и очень просто.
Оставьте комментарий!