СообЧа > База Знаний > Программирование > Visual Basic

Вопрос

Куда лучше сохранять настройки? В ini или в реестр?

Ответ

Ну ты спросил. Это может быть даже делом вкуса, но, лично мое мнение, что реестр — это гиблое дело. MS хотела изобрести удобный инструмент, но, получилось как всегда. Вот если бы Windows никогда не приходилось переустанавливать…

На мой скромный взгляд в реестре следует хранить что-либо только если:
1. Данные настройки могут быть необходимы другим программам (например, путь к программе)
2. Данные все равно теряют актуальность после краха и переустановки Windows.
3. Когда данные сохраняются для нужд ОС в строго оговоренном месте реестра (например, для регистрации некоего расширения и ассоциации его со своей программой)
4. Другие очень специфические нужды.

То, что MS реализовала в VB, кроме как затычкой назвать нельзя (я про SaveSetting). Несмотря на то, что работа с реестром для осуществления этих убогих функций была реализована в run-time библиотеке, программисту доступна только вершина айсберга и то урезанная процентов на 90-99.

Поэтому, выбор все равно стоит между тем, какой класс/модель подключить — для работы с INI или Registry.

Что касается INI файлов — они способны хранить настройки программы вплоть до физического удаления файла, следовательно, в большинстве случаев (кроме случайного удаления конфигов вместе с виндой и случаев хранения последних в директории винды или Win.ini) способны обеспечить сохранение настроек везде. Кроме того, они дают возможность удобного переноса настроек между компьютерами, возможность для параллельного использования нескольких конфигураций без страха повредить работоспособности программы.

Ну и в заключение надо отметить: как настраивается большинство «серьезного» софта, POP/SMTP/FTP сервера. Например: конфигами, напоминающими (иногда 1 в 1 повторяющими) INI. Наводит на мысль.

Savenger

Но, если вдруг Вамнужно сохранить более 64Кб в *.INI файле (правда в моей практике был лишь один такой случай, когда пользователь захотел, чтобы сохранялись настройки шрифтов, включая цвет размер, фона и т.д. Для каждого столбца таблиц в интерфейсе программы), то под 98-ой виндой вы будуте розачарованы. Размер INI-файла не должен превышать указанный предел.

sacha

Я тоже всегда горой стоял за ini-файлы, потому что ненавижу, когда программы копошатся в реестре, что-то туда пихают, а потом он раздувается до размеров кита и жутко тормозит систему.
Но совсем недавно мне пришло в голову: если требуется сохранять разные настройки для каждого пользователя, то ini-файлы явно проигрывают. Конечно, можно завести в файле отдельные разделы для каждого пользователя, а можно и несколько отдельных файлов, размещать их в

C:\Documents and Settings\<user>\Application Data,
но все это кажется большой запаркой по сравнению с простым HKEY_CURRENT_USER. Может быть, кто-то и придумал уже, как решить эту проблему, но у меня пока идей нет.



Copyright © 2000-2004 Сообщество Чайников
Контактная информация