Пишу прогу, и ни как не могу определиться. Где лучше сохранять настройки программы? В *.ini файле (config.ini) или в реестре Windows?
Откуда быстрее считывать информацию из INI файла или из реестра?
Куда удобнее записывать?
Другие языки программирования и технологии
Сохранение параметров программы
Не думаю, что есть разница в скорости - у вас ведь не Гб настроек.
А как будет использоваться ваша программа?
Если инсталлироваться, за деньги, без возможности распространения - в реестр.
Можете поставить ограничение по времени (в том числе с учетом перестановки даты) , пароли и т. п.
Но, по правилам хорошего тона, вы должны пердусмотреть удаление из реестра при деинсталляции.
Если свободно - лучше в ini. Оптимально вообще портабл.
Тем более, многие трепетно относятся к своему реестру.
Ну, а, на этапе разработки/тестирования, ИМХО, удобнее в ini: вы можете менять его в Блокноте
А как будет использоваться ваша программа?
Если инсталлироваться, за деньги, без возможности распространения - в реестр.
Можете поставить ограничение по времени (в том числе с учетом перестановки даты) , пароли и т. п.
Но, по правилам хорошего тона, вы должны пердусмотреть удаление из реестра при деинсталляции.
Если свободно - лучше в ini. Оптимально вообще портабл.
Тем более, многие трепетно относятся к своему реестру.
Ну, а, на этапе разработки/тестирования, ИМХО, удобнее в ini: вы можете менять его в Блокноте
ini файлы считаются анахронизмом и использовать их не рекомендуется, в тоже время игры с реестром штука опасная. Если имеете достаточно опыта и знаний используйте реестр, если нет - ini-файл
Как варианты - использовать контейнер в xml- либо structured storage формате.
Настройки - рекомендуется сохранять в реестре. Если данных много лучше сохранять в файлы.
Правильнее всего сохранять настройки в каталоге профиля пользователя. Это не противоречит модели безопасности Vista и Win7.
Я не знаю какие библиотеки применяете для программирования.
Например, в .NET Framework есть Application Settings позволяющий записывать значения и сохранять их между запусками программы.
Тут рассказано
Если у вас не .NET, в общем случае техника такая.
Создаёте класс Settings. В его конструкторе прописываете доступ к файлу настроек и чтение его содержимого.
Внутри класса объявляете словарь для доступа ко значениям. И перебрасываете в словарь все значения из файла.
Затем делаете индексатор для доступа к сохранённым строкам. Чтобы писать программу вида
Settings set = new Settings();
set["connStr"] = "dfdfd";
и
set[12] = "22222ввав";
Далее делаете у этого класса метод Save() сбрасывающий все изменения на диск.
Можно ещё сделать метод Refresh() для повторного чтения всех значений из файла в словарь.
Запись в файл удобно производить выполняя сериализацию объекта. А чтение - десериализацию.
Эти возможности поставляет тот же .NET Framework. Ищите нечто подобное в применяемом вами языке.
Нужна ли ручная работа с INI или XML файлом? Сложно сказать. Скорее всего НЕТ. Потому что у любой маломальски нормальной программы есть меню "Настройки" где можно поменять параметры не разбираясь в структуре файлов.
Я не знаю какие библиотеки применяете для программирования.
Например, в .NET Framework есть Application Settings позволяющий записывать значения и сохранять их между запусками программы.
Тут рассказано
Если у вас не .NET, в общем случае техника такая.
Создаёте класс Settings. В его конструкторе прописываете доступ к файлу настроек и чтение его содержимого.
Внутри класса объявляете словарь для доступа ко значениям. И перебрасываете в словарь все значения из файла.
Затем делаете индексатор для доступа к сохранённым строкам. Чтобы писать программу вида
Settings set = new Settings();
set["connStr"] = "dfdfd";
и
set[12] = "22222ввав";
Далее делаете у этого класса метод Save() сбрасывающий все изменения на диск.
Можно ещё сделать метод Refresh() для повторного чтения всех значений из файла в словарь.
Запись в файл удобно производить выполняя сериализацию объекта. А чтение - десериализацию.
Эти возможности поставляет тот же .NET Framework. Ищите нечто подобное в применяемом вами языке.
Нужна ли ручная работа с INI или XML файлом? Сложно сказать. Скорее всего НЕТ. Потому что у любой маломальски нормальной программы есть меню "Настройки" где можно поменять параметры не разбираясь в структуре файлов.
Алмас Сейтханов
Извините за вторжение!
Я НЕ профессиональный программист, всего лишь любитель, зато с большим стажем.
Но мне смешны эти новомодные веяния.
Для чтения/сохранения в реестр достаточно API-функций RegOpenKey, RegSetValueEx, RegQueryValueEx, RegCloseKey, RegDeleteKey.
Для чтения/сохранения в ini - стандартных команд.
Зачем все так усложнять?
Это ведь не только трудно пишется/читается. Это ведь и работает в разы медленней!
Я НЕ профессиональный программист, всего лишь любитель, зато с большим стажем.
Но мне смешны эти новомодные веяния.
Для чтения/сохранения в реестр достаточно API-функций RegOpenKey, RegSetValueEx, RegQueryValueEx, RegCloseKey, RegDeleteKey.
Для чтения/сохранения в ini - стандартных команд.
Зачем все так усложнять?
Это ведь не только трудно пишется/читается. Это ведь и работает в разы медленней!
Похожие вопросы
- Есть ли какая ни будь программа для сохранение загруженного онлайн фильма???
- Как написать программу сохранения тела после смерти?
- Работу программы проверить для a = 0,1; b = 1,0; h = 0,1; значение параметра n выбрать в зависимости от задания. Pascal
- Вопрос насчет объявления и параметра функции в C++
- В chkdsk параметр - Что это?
- Bash: awk, переменные, параметр...
- Как использовать переданный параметр из одной страницы HTML в другую?
- Сохранение из StringGrid в файл и загрузка из файла - Delphi
- C# Как сделать сохранение игры и запуск сохраненной игры?
- Как сделать систему сохранений в скретче?
С таким же успехом можно какой-нибудь bin или dat или эюя собственого изготовления.
Как я понял, вопрос в другом:
- использовать общее хранилище - реестр
- или собственное - отдельный файл, в принципе, любого формата