ПредишенСледващото

Урок Delphi - Научете се как да се свържете на .ini файлове във вашите Delphi-приложения.

<название параметра> = <его значение>

Работа с .ini файлове в Делфи е много проста. Основната базовия клас за работа с тях е TIniFile. който позволява на всички от тях пишат и четат операции, презаписване на потребителските настройки. Има TMemIniFile клас. който е различен и TIniFile първо, фактът, че всички данни се съхраняват в паметта на компютъра и записва на диск само, когато методът на повикване UpdateFile. И двете от тези класове, които се съдържат в IniFile модул и за да можем да използваме .ini файлове и работи с тези класове в кандидатурата си, трябва да добавите IniFiles раздел модул цели.

Създаване на обект от клас TIniFile или TMemIniFile много проста, просто трябва да мине на името на дизайнера .ini файла. Ако този файл не съществува, тя се създава автоматично. Четене / запис от / до потребителски файлове стойностите на .ini, има методи и софтуер

Доста теория, сега ние ще се опитаме да практикуват и да напишете малка програма, която демонстрира работата с файла инициализация в Делфи и клас TIniFile. приложението ни след старта на споменатите .ini файл информация за позицията и размера на прозорците, както и съдържанието на вида Редактиране на полето за въвеждане и когато затворите приложението ще пиша отново в .ini файл новия си (ако се промени размера на прозореца или нещо написано в полето за въвеждане на данни), че тя ще се отвори следващия път.

Open Делфи, поставен върху формата на редактирате компоненти (Поле за въвеждане) и бутон (общ ключ). Ние ще се справят събития компонента форма, основната форма OnCreate да създаде OnClose и затваряне, както и събитието натискане на бутон Бутон OnClick.

Като прибавим към приставките секция, има IniFile модул, който съдържа TIniFile клас, с която нашата молба да се изпълняват.

В началото на програмата (в тялото създадете събитие манипулатор OnCreate форма) ще се опитаме да чете данни от файла .ini. За изпълнение на тази, създаде обект от клас TIniFile, наричайки своя конструктор с името на желания файл. име на файла, която получаваме от името на изпълнимия файл за Application.ExeName на кандидатстване чрез промяна да бъде разширено за "ини", използвайки функция ChangeFileExt.

Извлечение от отделни стойности .ini файл ще използваме методи: ReadInteger, ReadString и ReadBool. Тези функции имат аргумента 3

  1. Четене / запис * (име тип данни цяло число, низ или Булева) * (1N 2N, 3N.);
  2. 1N - първият аргумент, името на секцията, в този случай той ще бъде Форма
  3. 2N - вторият аргумент, името на параметъра (отгоре, отляво, текст и т.н.)
  4. 3N - третият аргумент се посочва стойност по подразбиране (100, 200, 300 и т.н.), ако се използва Прочетете * чете, пише * в случай на запис, той ще бъде написан стойност.

Извличане на стойност от файла .ini, може да не сме в състояние да, не само при спешни случаи, но също така и някои от причините, поради които, например, липсата на файла за инициализиране или раздели. Ето защо, за лечение на подобни или дори по-сериозни грешки, ние ще използваме защитен блок опитайте ... най-накрая.

процедура TForm1.FormCreate (Sender: TObject);
Var
IniSoub: TIniFile;
започвам
Заглавие: = '* .ini;
Button1.Caption: = 'Save'
Edit1.Text: = ";
// създаде обект на клас TIniFile
IniSoub: = TIniFile.Create (ChangeFileExt (Application.ExeName ".ini"));
опитайте // се опитват да четат данни
Edit1.Text: = IniSoub.ReadString ( "Редактиране", "Текст", ");
Горе: = IniSoub.ReadInteger ( "Форма", "Начало", 100);
Ляво: = IniSoub.ReadInteger ( "Форма", "Left", 100);
Височина: = IniSoub.ReadInteger ( "Форма", "височина", 100);
Широчина: = IniSoub.ReadInteger ( "Форма", "Wedth ', 147);
АКО IniSoub.ReadBool ( "Форма", "Максимално увеличен", фалшиво), след това
WindowState: = wsMaximized
още
WindowState: = wsNormal;
накрая
IniSoub.Free; // освобождаване на паметта
приключи;
приключи;

процедура TForm1.Button1Click (Sender: TObject);
започвам
В близост;
приключи;

Когато затворите програмата, затворете формата OnClose събитие се обработва и ще запише стойности на тока (надморска височина, размер прозорец и т.н.) във файла инициализация използват методи TIniFile класа:

WriteString ()
WriteInteger ()
WriteBool ()

Ние ги погледна преди всичко Напиши * прекалено, тъй като в Read *, с изключение на последните 3 аргументите, които записва .ini файл за числова стойност.

процедура TForm1.FormClose (Sender: TObject; Var действие: TCloseAction);
Var
IniSoub: TIniFile;
започвам
// създаде обект на клас TIniFile
IniSoub: = TIniFile.Create (ChangeFileExt (Application.ExeName ".ini"));
Опитва // опитам да напиша данни в нашия .ini файл
IniSoub.WriteString ( "Редактиране", "Текст", Edit1.Text);
IniSoub.WriteInteger ( "Форма", "Топ", Top);
IniSoub.WriteInteger ( "Форма", "Ляв", наляво);
IniSoub.WriteInteger ( "Форма", "височина", височина);
IniSoub.WriteInteger ( "Форма", "ширина", широчина);
( "Форма", "Maximized ', WindowState = wsMaximized) IniSoub.WriteBool;
накрая
IniSoub.Free; // свободна памет
приключи;
приключи;

Сега съставяне на заявлението и да го запишете някъде в папката или на работния плот. Отвори я и се опита да промени, например, размера на прозореца му, неговото място на екрана и кликнете върху "Запазване". Сега да го отворите отново и можете да се уверите, че размера на прозореца, а останалите, които сте променили се показва с еднакъв размер. Всички тези данни са във файла .ini, можете да отворите и да го редактирате, като по този начин се променя някои стойности, с която се показва на заявлението, както когато го отворите.

Не забравяйте да редактирате .ini файла ръчно да укажете раздел имена в квадратни скоби [....], както и всички други редовете във файла трябва да са във формат <переменная>=<значение>

Ако искате да се осигури възможност за редактиране на .ini файлове чрез самата програма, можете да използвате ValueListEditor компонент. Намира се на Допълнителна раздела.

Свързани статии

Подкрепете проекта - споделете линка, благодаря!