ini файлы в Delphi

Данные, связанные с настройкой программы, обычно используют системный реестр или инициализационный файл имеющий расширение ini. В данной статье будет рассмотрим второй вариант.

Расположим на форме 3 компонента label (Имя, Организация, Число лицензий), 3 - Edit для ввода данных 2 компонента кнопок (сохранить, загрузить), и CheckBox1 (флажок активации).

Для работы необходимо добавить модуль IniFiles в раздел Uses -

uses IniFiles;

Теперь напишем код для кнопки сохранить -

procedure TForm1.Button1Click(Sender: TObject);
var
   fini: TIniFile;
begin
   fini:=TIniFile.Create(ExtractFilePath(Application.ExeName)+'init.ini');
   fini.WriteString('NAME','NameFIO',Edit1.Text);
   fini.WriteString('NAME','NameOrg',Edit2.Text);
   fini.WriteString('LICENCIA','kolvo',Edit3.Text);
   fini.WriteBool('LICENCIA','aktirovan',CheckBox1.Checked);
   fini.Free;
end;

fini - локальная переменную класса TIniFile она создается в первой строчке -

fini:=TIniFile.Create(ExtractFilePath(Application.ExeName)+'init.ini');

Строка в скобках задает положение и имя файла инициализации. Если написать просто 'init.ini' то файл инициализации будет расположен в системном каталоге Windows, например в C:\Windows. Или, используя функцию ExtractFilePath(Application.ExeName)  в каталоге запущенной программы. При отсутствии файла инициализации он  будет создан.

Далее мы сохраняем значения полей которые мы ввели. Для этого предназначены методы - WriteInteger (для целых чисел), WriteBool (- логических данных), WriteDate (для даты), WriteTime (- времени), WriteDateTime (- даты и времени), WriteString (- текста), WriteFloat (- вещественных чисел).

Общий вид этих методов -

WriteXXX(Раздел, Идентификатор, Значение);

При отсутствии указанных разделов и идентификаторов они создаются.

Ini файл является текстовым файлом. Давайте введем значения в нашу программу и нажмем на кнопку сохранить. У меня получилось -

[NAME]
NameFIO=Иванов
NameOrg=Завод
[LICENCIA]
kolvo=456
aktirovan=1

Единственно требует уточнения, что последняя запись равна 1. 1 в булевых выражениях может считаться - thrue, а 0 false.

Для считывания данных введем код для кнопки Загрузить.

procedure TForm1.Button2Click(Sender: TObject);
var
   fini: TIniFile;
begin
   fini := TIniFile.Create(ExtractFilePath(Application.ExeName)+
           'init.ini');
   Edit1.Text := fini.ReadString('NAME','NameFIO','');
   Edit2.Text := fini.ReadString('NAME','NameOrg','');
   Edit3.Text := fini.ReadString('LICENCIA','kolvo','');
   CheckBox1.Checked := fini.ReadBool('LICENCIA','aktirovan',true);
   fini.Free;
end;

Для загрузки данных используем методы - ReadFloat, ReadString, ReadBool, ReadInteger, ReadDate, ReadTime и ReadDateTime.

Общий вид будет таким -

ReadXXX(Раздел, Идентификатор, Значение по умолчанию);

Итог: мы разобрали работу с  файлом инициализации, что он из себя представляет и как работает.

Понравилась статья? Раскажите друзьям:
Общайтесь со мной

2 thoughts on “ini файлы в Delphi

  1. СУПЕР! А я не смог и ломал голову как это сделать! Писало [Error] Unit1.pas(50): Incompatible types: ‘Integer’ and ‘TCaption’ ))

Оставить комментарий

Ваш email не будет опубликован. Обязательные поля отмечены *

Вы можете использовать это HTMLтеги и атрибуты: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>