Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > [ "Начинающим" ]
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 05.01.2010, 16:25
xck xck вне форума
Прохожий
 
Регистрация: 05.01.2010
Адрес: Kazakhstan
Сообщения: 10
Репутация: 10
Радость Где лучше хранить настройки программы

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

Программа небольшая и параметров у нее не много (пару настроек вкл\откл некоторых чекбоксов), я больше склоняюсь к реестру, так как пользователь запуская софтину и какие бы он права в системе не имел то в любом случае настройки я смогу сохранить к HKLU так как пользователь является ее владельцем.
Но я сомневаюсь с точки зрения оптимизации (хотя какая может быть оптимизация у проги весом в 200Кб и пару параметров) но все же, где лучше хранить настройки?
Ответить с цитированием
  #2  
Старый 05.01.2010, 17:53
Аватар для Страдалецъ
Страдалецъ Страдалецъ вне форума
Гуру
 
Регистрация: 09.03.2009
Адрес: На курорте, из окна вижу теплое Баренцево море. Бррр.
Сообщения: 4,723
Репутация: 52347
По умолчанию

Лично я противник записи в реестр, т.к. итак он завален хламом.
Я предпочитаю INI-файл.
Если вы воспользуетесь стандартным классом TIniFile то он и так будет в текстовом формате.
__________________
Жизнь такова какова она есть и больше никакова.
Помогаю за спасибо.
Ответить с цитированием
  #3  
Старый 05.01.2010, 17:54
Zalm Zalm вне форума
Прохожий
 
Регистрация: 05.01.2010
Сообщения: 13
Репутация: 10
По умолчанию

Ваш вопрос ни о чем. Настройки должны быть скрыты от лишних глаз? Что вы храните в настройках? Создавайте текстовый файл и не мучайте ни себя ни других
Ответить с цитированием
  #4  
Старый 05.01.2010, 18:28
xck xck вне форума
Прохожий
 
Регистрация: 05.01.2010
Адрес: Kazakhstan
Сообщения: 10
Репутация: 10
По умолчанию

Цитата:
Сообщение от Zalm
Ваш вопрос ни о чем. Настройки должны быть скрыты от лишних глаз? Что вы храните в настройках? Создавайте текстовый файл и не мучайте ни себя ни других

Возможно, но учитывая то что при запуске программы ЛЮБЫМ пользователем, будут подниматься настройки из одного файла конфигурации, при использовании реестра этого можно избежать...
Ответить с цитированием
  #5  
Старый 05.01.2010, 18:48
Zalm Zalm вне форума
Прохожий
 
Регистрация: 05.01.2010
Сообщения: 13
Репутация: 10
По умолчанию

А что-то я не вижу что бы вы в своем первом посте при описании вашей проблемы указали на такой нюанс что вы желаете что бы программа имела настройки для каждого пользователя отдельно, а не настройки программы как таковой.
Ответить с цитированием
  #6  
Старый 05.01.2010, 18:54
xck xck вне форума
Прохожий
 
Регистрация: 05.01.2010
Адрес: Kazakhstan
Сообщения: 10
Репутация: 10
По умолчанию

Цитата:
Сообщение от Zalm
...нюанс что вы желаете что бы программа имела настройки для каждого пользователя отдельно...
Извиняюсь, возможно я не совсем точно выразил свою мысль, но именно действительно Вы правильно сказали - ...программа имела настройки для каждого пользователя отдельно... это бы и хотелось реализовать...
Ответить с цитированием
  #7  
Старый 05.01.2010, 19:09
Zalm Zalm вне форума
Прохожий
 
Регистрация: 05.01.2010
Сообщения: 13
Репутация: 10
По умолчанию

Цитата:
Сообщение от xck
Извиняюсь, возможно я не совсем точно выразил свою мысль, но именно действительно Вы правильно сказали - ...программа имела настройки для каждого пользователя отдельно... это бы и хотелось реализовать...

Ну тут вариантов миллион. Зависит уже от фантазии чисто.
1) Если программа имеет ЧЕТКОЕ кол-во настроек, то есть 5 параметров и всё тут. Саздаете типизированный файл c типом записи
Код:
 Rec = Record
           User : String[20];
           param1,param2,param3.... paramN : String[10];
         end;
И при запуске программы просите ввести имя и загружаете соответствующие настройки.
2) Можете создать рядом с программой папку аккаунтов, и там создавать на каждого текстовый файл, если кол-во настроек не известно заранее.
вариантов куча,что бы выбрать более адекватный надо точно знать ситуацию
Ответить с цитированием
  #8  
Старый 05.01.2010, 19:18
xck xck вне форума
Прохожий
 
Регистрация: 05.01.2010
Адрес: Kazakhstan
Сообщения: 10
Репутация: 10
По умолчанию

Ок, спасибо за подсказку, приму к сведению....
Ответить с цитированием
  #9  
Старый 05.01.2010, 20:31
Аватар для 0nni
0nni 0nni вне форума
Начинающий
 
Регистрация: 13.12.2008
Адрес: Туапсе
Сообщения: 161
Репутация: 20
По умолчанию

Для личных данных существует папка "%AppData\ProgramName\"
Реестр тоже отличный вариант, что тебя смущает?
__________________
...сказал, и загрустил от бесспорной своей правоты
Ответить с цитированием
  #10  
Старый 06.01.2010, 16:04
xck xck вне форума
Прохожий
 
Регистрация: 05.01.2010
Адрес: Kazakhstan
Сообщения: 10
Репутация: 10
По умолчанию

Цитата:
Сообщение от 0nni
Для личных данных существует папка "%AppData\ProgramName\"
Реестр тоже отличный вариант, что тебя смущает?

Смущает только реализация, не могу обрисовать в голове схему сохранения настроек (именно будильников) в реестре.

Вижу примерно так:
Есть ветка с моей программой (к примеру HKEY_CURRENT_USER\Software\MyAlarm) соответсвенно там будут храниться настройки программы (к примеру - Settings) и непосредственно "таски" (к примеру - Tasks)... Как я себе это представляю, при создании нового "таска" создается подраздел ветки Tasks к примеру Task01 (в которой уже будут зраниться такие параметры как Имя таска, время срабатывания таска и т.д.), тогда встает вопрос как реализовать счетчик (генерирующий соотвествующий раздел Task01, Task02 и т.д.).
Сами таски можно отражать в ListBox'е... но я упираюсь именно в "порядковую" генерацию соотвествующей ветки для каждого таска... Или тоже самое с папками...
Ответить с цитированием
  #11  
Старый 06.01.2010, 16:11
Аватар для 0nni
0nni 0nni вне форума
Начинающий
 
Регистрация: 13.12.2008
Адрес: Туапсе
Сообщения: 161
Репутация: 20
По умолчанию

ну тогда храни в %AppData\ProgramName\ на каждую задачу создавай файл (ini или просто текстовой). Имена гененируй на основе текущей даты-времени.
__________________
...сказал, и загрустил от бесспорной своей правоты
Ответить с цитированием
  #12  
Старый 06.01.2010, 16:15
xck xck вне форума
Прохожий
 
Регистрация: 05.01.2010
Адрес: Kazakhstan
Сообщения: 10
Репутация: 10
По умолчанию

Цитата:
Сообщение от 0nni
Имена гененируй на основе текущей даты-времени.
Хорошая идея, спасибо!!!!
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 07:38.


 

Сайт

Форум

FAQ

Соглашения

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2025