Ini файлы в Delphi

Система и файлы   24 Октябрь 2010  Автор статьи: admin 

В первую очередь расскажу о самих ini файлах. Эти файлы предоставляют возможность удобно хранить программе некоторую информацию такую как параметры или настройки программы, сохранения, учетные записи и т.д. Все удобство ini файлов заключается в разделении всех элементов (параметр — значение) на группы. Вот небольшой пример ini файла:

1
2
3
4
5
6
7
8
9
10
[form]
left=100
top=300
caption=Программа на Delphi
[user1]
name=cybern.ru
password=123456
[user2]
name=Вася
password=parol

Давайте изучим структуру приведенного примера файла ini. В квадратных скобках обозначается группа. Внутри группы находятся элементы (параметр — значение). Например в группе «form» находятся значения «left» и «top», которые можно использовать в программе, в качестве хранения координат окна программы. Названия параметров не обязательно должны совпадать с существующими параметрами нашей программы. В ini файле может быть неограниченное количество групп и их элементов.

Теперь научимся работать с ini файлами в Delphi. Специально для работы с ini файлами был создан модуль inifiles. Добавим его в раздел «uses». В этом модуле существует тип TiniFile. Создадим глобальную переменную ini:TiniFile. Теперь разберемся с основными операциями, которые мы можем совершать с переменной ini:

ini:=TIniFile.create(’myinifile.ini);обозначение переменной ini как Tinifile файла ’myinifile.ini’.

function ReadString(const Section, Ident, Default: string): string;функция для чтения строки из ini файла, где section — это группа, ident — название параметра элемента, default — устанавливаемое значение переменной в случае того, что элемент не будет найден в ini файле

procedure WriteString(const Section, Ident, Value: String);процедура записи элемента в ini файл, где section — это группа, в которую записываем элемент с именем значения переменной ident, value — значение элемента.

Аналогично предыдущим двум операциям будут выглядеть операции считывания и записи longint, boolean и double:

1
2
3
4
5
6
7
8
function ReadInteger(const Section, Ident: string; Default: Longint): Longint;
procedure WriteInteger(const Section, Ident: string; Value: Longint);

function ReadBool(const Section, Ident: string; Default: Boolean): Boolean;
procedure WriteBool(const Section, Ident: string; Value: Boolean);

function ReadFloat(const Section, Name: string; Default: Double): Double;                      
procedure WriteFloat(const Section, Name: string; Value: Double);

Для удаления группы можно использовать процедуру: procedure EraseSection(const Section: string); где section — имя удаляемой группы.

Для удаления элемента используем процедуру: procedure DeleteKey(const Section, Ident: String);

Проверить существование элемента в ini файле можно при помощи функции: function ValueExists(const Section, Ident: string): Boolean;

Все остальные возможности модуля inifiles вы можете прочитать в файле inifiles.pas который входит в стандартный пакет файлов Delphi.

Остается лишь привести пример использования. Предположим у нас есть программа, которая должна запомнить значение edit1.text и при запуске его заполнять:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
procedure TForm1.FormCreate(Sender: TObject);
begin
ini:=TIniFile.Create(extractfilepath(Application.ExeName)+’params.ini);
// создаем ini
edit1.Text:=ini.ReadString(’myprog’,’editvalue’,’novalue’);
//записываем в edit1.text значение editvalue
{если при чтении в ini не будет существовать элемент или группа,
то на место результата будет вставлено ’novalue’, то есть  Default: string}

end;

procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
ini.WriteString(’myprog’,’editvalue’,edit1.Text);
// записываем новое значение edit1.text в editvalu
{если при записи указанной группы или элемента не существует,
то они автоматически создадутся}

end;

Я надеюсь, что этот урок стал для вас полезным.

Подпишитесь на рассылку всех новых материалов сайта прямо на ваш e-mail.

  • Verdgilxxx007

    спасибо

Научиться программировать

  • на Delphi

  • на Java

  • на C++