Работа с INI-файлами в Delphi

Работа с INI-файлами в Delphi

INI-файлы являются прекрасным способом сохранения какой-либо служебной информации в разрабатываемых приложениях. Конечно это не единственный способ. Информацию можно хранить в реестре Windows или вообще в базе данных. Но иногда базы данных не подходят для хранения определенного рода информации.

Примером может послужить параметры подключения программы к базе данных. Эти вещи, как вы понимаете, не имеет смысла хранить в базе данных, потому что к ней еще нужно подключиться. Поэтому здесь остается разумным хранить служебную информацию либо в системном реестре Windows, либо в файлах INI.

Структура INI-файла

Структура файла INI проста и ниже приведен простой пример:

[ORG]
   NameOrg=ООО "Атомспецсервис"
   FIORuk=Иванков Алексей Иванович
   DolRuk=Директор
   UrAdres=г.о. город Волгодонск, г. Волгодонск, ул. 8-я Заводская, д. 9
   Telefon=+7 (8639) 230-390
   Website=http://www.atomspetsservice.ru/contacts/
[DB]
   Driver=MySQL ODBC 8.0 Unicode Driver
   Server=localhost
   Port=3306
   User=root
   Password=1234

Информацию в таком файле удобно хранить по секциям. Это ведь обычный текстовый файл, только с расширением .ini. Как видите из примера я в файле INI сделал две секции. В секции [ORG] я храню информацию об организации, а в секции [DB] я с охраняю информацию о подключении приложения к базе данных.

Слева, до знака равенства указывается название параметра, который будет храниться в нашем INI-файле, а справа от знака равенства — его значение.

Запись данных в INI-файл

Давайте теперь посмотрим как можно записать данные в INI-файл с помощью Delphi. Первое, что мы сделаем -это включим в секцию uses модуль работы INI-файлами под названием Inifiles.

Delphi — это объектно-ориентированный язык программирования и работа с INI-файлами осуществляется с помощью объектов. Для этого объявляется объектная переменная. Давайте назовем ее iniF, а наш INI-файл, в который мы будем записывать информацию назовем Config.ini.

procedure TfrmConnection.cmdPostClick(Sender: TObject);
var
   iniF: TIniFile;//Объявим объектную переменную
begin
   //Записываем настройки в Конфиг.
   //Для этого создаем наш объект, подключив его к существующему ini-файлу.
   iniF:=TiniFile.Create(sTekPapka+'\Config.ini');
   //После этого записываем в файл Конфиг любые значения. Мы же запишем из полей формы (выдуманной).
   //Запись означает, что в секцию "DB" в параметр "Driver" записывается текст, содержащийся в
   //текстовом поле txtDriver нашей выдуманной формы.
   iniF.WriteString('DB', 'Driver',txtDriver.text);
   //И так далее по аналогии со всеми остальными параметрами.
   iniF.WriteString('DB', 'Server',txtServer.text);
   iniF.WriteString('DB', 'Port',txtPort.text);
   iniF.WriteString('DB', 'User',txtUser.text);
   iniF.WriteString('DB', 'Password',txtPassword.text);
   iniF.WriteString('ORG', 'NameOrg',txtORG.text);
   iniF.WriteString('ORG', 'FIORuk',txtFIO.text);
   //Все параметры представленного в примере файла Config.ini перечислять не буду.
   //Они записываются по аналогии с показанными.
   iniF.free;//Уничтожаем объект INI из памяти.
   ShowMessage('Данные успешно записаны в Config.ini!');
end;

Ну и конечно, применяя конструкции языка Delphi представленный код можно визуально упростить:

procedure TfrmConnection.cmdPostClick(Sender: TObject);
var
   iniF: TIniFile;
begin
   iniF:=TiniFile.Create(sTekPapka+'\Config.ini');
   with iniF do
   begin
      WriteString('DB', 'Driver',txtDriver.text);
      WriteString('DB', 'Server',txtServer.text);
      WriteString('DB', 'Port',txtPort.text);
      WriteString('DB', 'User',txtUser.text);
      WriteString('DB', 'Password',txtPassword.text);
      WriteString('ORG', 'NameOrg',txtORG.text);
      WriteString('ORG', 'FIORuk',txtFIO.text);
      free;
   end;
   ShowMessage('Данные успешно записаны в Config.ini!');
end;

Вот так легко можно сохранить данных в файла Config.ini, используя Delphi.

Чтение данных из INI-файла

Давайте теперь посмотрим, как произвести чтение из файла INI.

procedure TfrmConnection.FormCreate(Sender: TObject);
var
   iniF: TIniFile;
begin
   frmMDI.mnuConnection.Enabled:=false;
   iniF:=TiniFile.Create(sTekPapka+'\Config.ini');
   //Считываем содержимое файла Конфиг и заносим значения в поля формы
   txtDriver.Text:=iniF.ReadString('DB', 'Driver','');
   txtServer.Text:=iniF.ReadString('DB', 'Server','');
   txtPort.Text:=iniF.ReadString('DB', 'Port','');
   txtUser.Text:=iniF.ReadString('DB', 'User','');
   txtPassword.Text:=iniF.ReadString('DB', 'Password','');
   txtORG.Text:=iniF.ReadString('ORG', 'NameOrg','');
   txtFIORuk.Text:=iniF.ReadString('ORG', 'FIORuk','');
   iniF.free;
end;

Указанные процедуры удобно применять, например, при настройке подключения к базе данных. Пример применения кода можно найти в статьях «Подключение к базе данных в Delphi» и «Подключение к MySQL с помощью FireDAC».

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

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: