Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Реестр или ini ?


Пастор ©   (2002-07-05 08:56:00) 

Как вы думаете, где лучше хранить настройки программы ?


Юрий Зотов   (2002-08-05 00:02:00) [1]

> Derkach Valery (05.07.02 10:27)
> Просто Windows NT (2000, XP) рядовому юзеру не даст ничего
> записать в системные каталоги,

И хорошо. Нечего замусоривать системные каталоги. Но INI-файл не обязан храниться в системном каталоге, он вполне может лежать в каталоге самой программы.


> Странный Прохожий © (05.07.02 10:36)
> В реестр предпочитаю писать только то, что связано с
> интеграцией в систему, и не более того.

Я тоже. Хотя бы потому, что реестр - не помойка, нечего сыпать туда все подряд.

Но есть пара нюансов, о которых почему-то не упомянули.

Если программа должна иметь одни и те же настройки для всех юзеров, то лучше в файле (не замусоривает систему). Если свои для каждого юзера - то в реестре (система все разруливает сама). Если же это программа, работающая с БД - то в самой БД (юзер получает одни и те же настройки, входя под своим логином с любой машины).

Конечно, возможны и любые комбинации.


IrenFD   (2002-08-03 03:08:00) [2]

В конце концов при полной переинсталяции системы в ini настройки сохраняться, а в реестре - нет.


PC_Maniac   (2002-08-02 16:53:00) [3]

Я использую оба метода.
Когда информация спицифична для конкретной системы (инфа, связанная с IP, например) или не сильно важна (положение окон программы, например) я использую реестр.
Когда требуется что-то более долгосрочное или важное - ini
Когда требуется блокировать важную инфу от простых юзеров - реестр, HKLM.


leshy   (2002-07-05 11:16:00) [4]

Если в настройках мало текстовой информации, удобнее хранить их в файлах собственной «конструкции» — что захотел, то и записал в любом удобном для программы формате. Создаёшь структуру (запись), пихаешь всё в неё и пишешь в файл напрямую. Так же и читаешь. Если задаться целью в самом начале программы, можно вообще все настройки держать в этой структуре в памяти, определив переменную в юните, доступном всем остальным (лучше в отдельном), в initializationи finalizationюнита читать из файла и писать в файл, чтобы настройки сохранялись всегда. И не будет проблем с сохранением данных ЛЮБЫХтипов, причем в бинаре. И не потребуется преобразований туда-обратно, которые делает TINIFile. Не будет проблем с разделителем целой и дробной части, форматом даты или времени. Надо не забывать при этом, что строковые данные нужно хранить в ShortStringили array[..] of Char. А размеры и положение форм запоминать по WM_EXITSIZEMOVE.
Собственно, такую структуру можно писать и реестр. Если очень хочется.


Странный Прохожий   (2002-07-05 10:36:00) [5]

Конечно, настройки программы удобнее хранить в ini файле!

Во-первых, все настройки в текстовом виде, на виду, легко отредактировать, сделать резервную копию.

Во-вторых -- лёгкое восстановление. Если у клиента крах, кидаешь ему на почту файлик, он кидает в каталог и никаких тебе regedit-ов.

В-третьих, ниже риск потерять свою систему из-за "случайно" изменённого параметра.

В реестр предпочитаю писать только то, что связано с интеграцией в систему, и не более того.

:)


Derkach Valery   (2002-07-05 10:27:00) [6]

В реестре однозначно лучше - в ветке HKEY_CURRENT_USER\Software\
Почему? Потому что программы должны правильно работать как под Win9х, так и под NT, 2000, XP. Просто Windows NT (2000, XP) рядовому юзеру не даст ничего записать в системные каталоги, а в пользовательскую ветку реестра - пожалуйста.
Надеюсь объяснил понятно :-)


Андрей Штим   (2002-07-05 10:06:00) [7]

Мелкософт настойчиво рекомендует хранить настройки программы в реестре. А вобще зависит от количества параметров, частоты их обновления и необходимости переносить свою прогу на другой комп.
Если параметров немного, они не затирабются (т.е. ты не собираешся удалять параметр, а затем создавать вновь)то вполне резонно внять рекомендациям авторов операционки, но если ты предпологаешь иметь множество параметров, часто их удалять и создавать новые, то проще работать с ini, иначе реестр раздуется, а это может как минимум замедлить работу твоей винды, а как максимум ее вобще порушить. Т.к. при удалении из реестра данные просто помечаются как удаленные, но физически продолжают находиться в нем. Еще один момент, если ты собираешься тиражировать свою прогу на разные машины, то проще подцепить к ней инишник, чем таскать reg - и и их там пускать.


Наверх

Титульная страница Поиск, карта сайта Написать письмо