Работа с ini файлами



Для Delphi есть огромное количество модулей, как от разработчиков, так и от энтузиастов написавших их и выложивших в сеть. Сегодня рассмотрим стандартный, идущий в комплекте с Delphi, модуль - inifiles.

Для начала - что же такое .ini файлы? Это файлы, чаще всего применяющиеся для сохранения настроек или параметров программы. Например, ты выбрал определённую папку в программе-плеере, где будет хранится музыка. Эта папка записывается в .ini файл. После чего программа, независимо от того, была ли она перезапущена, прочитает эту настройку и выполнит её. Если мы не запишем куда-либо эту настройку, то после перезапуска придётся выбирать файл заново. Как уже понятно, файл имеет расширение .ini и обычно хранится возле программы или в каталоге, куда она установлена. INI файлы мы можем видеть почти у любой программы, которая учитывает индивидуальные настройки пользователя.



Выглядит код в ini - файле примерно так:

[file]
directory_root=C:\Users
file_size=100
[settings]
sleep=100


Можно всё поделить на 2 блока:

1) Секция (
, [settings])

2) Параметры группы = значения группы

Так в секции [file] я записал рутовую дирректорию и размер файла. А в секции settings настройки, такие как задержка программы при каком - либо действии (для примера). Так же в ini-файлах можно хранить параметры окон, параметры визуальных элементов, различные каталоги и пути, ссылки и прочее.

Как сказано выше, модуль, предназначенный для работы с ini файлами - это модуль inifiles. 

Перед началом работы, конечно же, нужно создать и инициализировать переменную, которая будет писать/читать в ini - файлы. Для этого используем метод .Create:

[DELPHI]var ini: TiniFile;
begin
ini:= TiniFile.Create('путь');
end;


В параметре метода передаётся путь до .ini файла. Например

ini:= TiniFile.Create('C:\INIFILES\myfile.ini');


Пишем строку в файл с помощью процедуры

WriteString(const Section, Ident, Value: string);


Где section - имя секции, Ident - название поля, Value - значение, передаваемое полю. Пример использования:

var dir: String;
begin
ini.WriteString('file','directory_root',dir);
end;


Аналогично пишется и число, разница лишь в типе параметров и названии процедуры -

WriteInteger(const Section, Ident: string; Value: Longint);


Читаем значения из файла с помощью похожих функций:

ReadString(Section, ident, Value: string): string;
 
ReadInteger(Section, ident: string Value: longint): longint;


Что бы удалить параметр, существует процедура

Deletekey(const Section, Ident: string);


Найти файл можно с помощью функции:

function ValueExists(const Section, Ident: String): Boolean;


Пример использования:

function searchfile: string;
  file_settings: File;
  dir: string;
begin
path_ini:= ExtractFileDir(Application.ExeName)+'settings.ini';
{создаём файл}
AssignFile(file_settings, path_ini);
Rewrite(file_settings);
CloseFile(file_settings);
 
ini:= TIniFile.Create(path_ini); //Инициализация
 
SelectDirectory ('Выберите папку для сохранения чего-либо', 'C:\', dir);
ini.WriteString('file','directory_root',dir); // INI : пишем имя дирректории для изображений
Result:= dir;
end;


Пример, кстати говоря, из будующего проекта, по всё тому же vk api :)

Спасибо за внимание.
Теги:
ini, файл
Добавлено: 24 Февраля 2015 17:07:22 Добавил: Андрей Ковальчук Нравится 0
Добавить
Комментарии:
Нету комментариев для вывода...