Сейчас на сайте:
Пользователей: 0
Отсутствуют.
Роботов: 2
Yandex, Googlebot
Гостей: 84
Всех: 86
ВНИМАНИЕ! Конкурс по программированию!
Проект Programmers.kz и школа hotPen3D2D предлагает Вам курсы по веб-дизайну, веб-программированию и компьютерной графике. Подробности здесь.
Информация к новости
- Просмотров: 3907
- Автор: КазКиберГетик
Для чего нужны ini-файлы?
Категория: Программирование » Delphi » Уроки Delphi
Очень интересный вопрос был задан в заголовке этой статьи. Действительно, для чего же они нужны? Ответ не требует больших размышлений, кто в той или иной степени владеет техникой программирования в Delphi: для сохранения каких-либо настроек Вашей программы на жёсткий диск с последующим их изменениям. Приведу примеры использования этой не хитрой системы.
1. Сохранение размеров формы, название заголовка, местоположение окна на экране монитора, и другие настройки, связанные с формой (Очень часто у пользователя складывается образ "идеального окна", которое должно быть всегда одинаково расположенным и одинаковых размеров. Чтобы ему постоянно не приходилось настраивать это, можно постоянно автоматически делать все изменения в ini-файл).
2. Настройки программы (Будь то параллельное звучание музыки, или добавление программы в автозагрузку. Все единожды изменённые настройки сохраняются и при следующем запуске приложения считываются с ini-файла).
3. Мультиязычность (Да, на ini такое можно осуществить. В таком файле просто в значении какого-либо параметра будет перевод определённого слова. Если Вы делаете свой программный продукт и для зарубежных пользователей, то можно это осуществить путём ini-файла).
4. Регистрация программы (В программе Вы зашифровываете какое-либо значение, а затем свериваетесь со значением, хранящемся в файле, причём оно тоже зашифровывается. Это, конечно, не лучший способ защиты от несанкционированного использования вашего продукта, но всё служит одни из вариантов).
И т.д., ведь в ini-файл можно поместить любую информацию целого, символьного или булевского типа. Давайте теперь перейдём к реальной задаче, на примере который мы научимся пользоваться этой очень полезной штукой. Пусть автоматически сохраняться настройки:
Ну а теперь давайте подумаем: когда наши настройки будут сохраняться? Нужно сделать так, чтобы это не было заметно для пользователя - не стоит его загромождать лишними операциями. Верно! Сохранять все настройки следует после закрытии программы, когда человек ничего изменить больше не сможет. Открываем событие формы OnClose и записываем следующий код:
var Vars: Tinifile;
Мы объявили переменную Vars типа Tinifile, т.е. чтобы нам работать с ними, необходимо объявить переменную. И теперь для чтения и записи данных, всё происходит через обращение этой переменной.
Vars:=TiniFile.Create(extractfilepath(paramstr(0))+"data/vars.ini");
Если этого файла нет в каталоге, то он автоматически создастся, а если есть, то откроется.
Vars.WriteString("Form","Caption",Form1.Caption);
Записываем заголовок формы, причём, обратите внимание - командой WriteString(Дословно - записать текст).
Vars.WriteInteger("Form","Left",Form1.Left);
Записываем положение формы слева от экрана. Это величина целая - WriteInteger(Дословно - записать целое число).
...
Vars.Free;
Очищаем память.
Думаю здесь должно быть всё понятно. С этим разобрались. Теперь давайте попробуем сделать так, что после загрузки, приложение считывало сохранённые параметры и изменяло форму. Это реализовывает следующий код (Событие OnCreate):
И на последок хочу сказать, что работать с ini-файлами очень удобно. Открою небольшой секрет - почти все мои программы основаны именно на них. И ещё: один мой знакомый говорит, что реестр намного лучше в этих целях служит и что он предпочитает работать именно с реестром. Не знаю - кому как. Пока каждый не попробует, он не прочувствует всего преимущества каждого из вариантов. Преимущества реестра - простота и удобство. Ini-файлов - возможность переноса настроек на другие компьютеры, а так же простота в использовании. Экспериментируйте!
Источник: web-brodilka.ru
1. Сохранение размеров формы, название заголовка, местоположение окна на экране монитора, и другие настройки, связанные с формой (Очень часто у пользователя складывается образ "идеального окна", которое должно быть всегда одинаково расположенным и одинаковых размеров. Чтобы ему постоянно не приходилось настраивать это, можно постоянно автоматически делать все изменения в ini-файл).
2. Настройки программы (Будь то параллельное звучание музыки, или добавление программы в автозагрузку. Все единожды изменённые настройки сохраняются и при следующем запуске приложения считываются с ini-файла).
3. Мультиязычность (Да, на ini такое можно осуществить. В таком файле просто в значении какого-либо параметра будет перевод определённого слова. Если Вы делаете свой программный продукт и для зарубежных пользователей, то можно это осуществить путём ini-файла).
4. Регистрация программы (В программе Вы зашифровываете какое-либо значение, а затем свериваетесь со значением, хранящемся в файле, причём оно тоже зашифровывается. Это, конечно, не лучший способ защиты от несанкционированного использования вашего продукта, но всё служит одни из вариантов).
И т.д., ведь в ini-файл можно поместить любую информацию целого, символьного или булевского типа. Давайте теперь перейдём к реальной задаче, на примере который мы научимся пользоваться этой очень полезной штукой. Пусть автоматически сохраняться настройки:
- Заголовок формы: Form1.Caption;
- Местоположение: Form1.Left и Form1.Top;
- Размеры формы: Form1.Width и Form1.Height.
Ну а теперь давайте подумаем: когда наши настройки будут сохраняться? Нужно сделать так, чтобы это не было заметно для пользователя - не стоит его загромождать лишними операциями. Верно! Сохранять все настройки следует после закрытии программы, когда человек ничего изменить больше не сможет. Открываем событие формы OnClose и записываем следующий код:
procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
var Vars: Tinifile;
begin
Vars:=TiniFile.Create(extractfilepath(paramstr(0))+"data/vars.ini");
Vars.WriteString("Form","Caption",Form1.Caption);
Vars.WriteInteger("Form","Left",Form1.Left);
Vars.WriteInteger("Form","Top",Form1.Top);
Vars.WriteInteger("Form","Width",Form1.Width);
Vars.WriteInteger("Form","Height",Form1.Height);
Vars.Free;
end;
Попробую теперь объяснить этот код.var Vars: Tinifile;
Мы объявили переменную Vars типа Tinifile, т.е. чтобы нам работать с ними, необходимо объявить переменную. И теперь для чтения и записи данных, всё происходит через обращение этой переменной.
Vars:=TiniFile.Create(extractfilepath(paramstr(0))+"data/vars.ini");
Если этого файла нет в каталоге, то он автоматически создастся, а если есть, то откроется.
Vars.WriteString("Form","Caption",Form1.Caption);
Записываем заголовок формы, причём, обратите внимание - командой WriteString(Дословно - записать текст).
Vars.WriteInteger("Form","Left",Form1.Left);
Записываем положение формы слева от экрана. Это величина целая - WriteInteger(Дословно - записать целое число).
...
Vars.Free;
Очищаем память.
Думаю здесь должно быть всё понятно. С этим разобрались. Теперь давайте попробуем сделать так, что после загрузки, приложение считывало сохранённые параметры и изменяло форму. Это реализовывает следующий код (Событие OnCreate):
procedure TForm1.FormCreate(Sender: TObject);
var Vars: Tinifile;
begin
Vars:=TiniFile.Create(extractfilepath(paramstr(0))+"data/vars.ini");
Form1.Caption:=Vars.ReadString("Form","Caption","Название формы по-умолчанию");
Form1.Left:=Vars.ReadInteger("Form","Left",255);
Form1.Top:=Vars.ReadInteger("Form","Top",209);
Form1.Width:=Vars.ReadInteger("Form","Width",696);
Form1.Height:=Vars.ReadInteger("Form","Height",480);
Vars.Free;
end;
Здесь аналогично, как и для записи в файл, только чтение - ничего нового практически нет. Следует только упомянуть третий параметр ReadInteger (ReadString). Это параметр по-умолчанию, т.е. если файл будет удалён (или не сможет быть прочитан), то форма в данном случае примет размеры и положение, какие были определены здесь. Попробуйте удалить файл vars.ini из папки data и увидете, что всё именно так.И на последок хочу сказать, что работать с ini-файлами очень удобно. Открою небольшой секрет - почти все мои программы основаны именно на них. И ещё: один мой знакомый говорит, что реестр намного лучше в этих целях служит и что он предпочитает работать именно с реестром. Не знаю - кому как. Пока каждый не попробует, он не прочувствует всего преимущества каждого из вариантов. Преимущества реестра - простота и удобство. Ini-файлов - возможность переноса настроек на другие компьютеры, а так же простота в использовании. Экспериментируйте!
Источник: web-brodilka.ru
Вернуться
Комментариев: 0
Уважаемый посетитель, Вы зашли на сайт как незарегистрированный пользователь.
Мы рекомендуем Вам зарегистрироваться либо войти на сайт под своим именем.
Мы рекомендуем Вам зарегистрироваться либо войти на сайт под своим именем.




