Форум: "Прочее";
Текущий архив: 2007.02.18;
Скачать: [xml.tar.bz2];
ВнизОпрос: где ваши программы хранят данные? Найти похожие ветки
← →
IMHO © (2007-01-24 02:36) [0]Где ваши программы хранят данные? (настройки, выходные файлы, временные файлы)
1. Реестр
2. CSIDL_APPDATA
3. Папка программы
4. Комбинация предыдущих
5. Свой вариант (подробнее, плиз)
← →
TUser © (2007-01-24 02:55) [1]Documents and Settinggs/username/Application Data или HKCU/Software/MyProg
Она для этого и придумано, любое другое местечко - ошибка программиста, т.к. туда легко может быть закрыт доступ.
← →
Джо © (2007-01-24 02:56) [2]По-разному. Чаще — варианты 1 и 2. Но иногда и в папке программы.
← →
TUser © (2007-01-24 02:57) [3]Temporaly files еще, конечно.
← →
Джо © (2007-01-24 03:04) [4]> [2]
Добавлю к [2].
Вариант 3 использую в 2-х случаях. Первый, это когда программа — всего лишь мелкая утилита, предназначенная для разового запуска, иногда — с внешнего носителя, например CD или флэш-накопитель. Второй случай — есть у меня более или менее серьезный продукт, настройки (а их много и хранятся они в шибко структурированном виде по разным под-папкам и файлам) хранятся в папке с программой. Однако, сам путь к этой папке берется не из Application.ExeName, а из реестра. Собственно, эту папку безболезненно можно переместить в любое место, изменив после этого путь, указанный в реестре. А путь по умолчанию прописывает в реестр инсталлятор. Вот такая чехарда :)
← →
TUser © (2007-01-24 03:08) [5]> CD
И туда писАть ???
← →
Джо © (2007-01-24 03:09) [6]> [5] TUser © (24.01.07 03:08)
> > CD
>
> И туда писАть ???
"CD" я как-то машинально на «автопилоте» написал спросонок :) Впрочем, необязательно и писать. Конфигурационные файлы еще и читают :)
← →
iZEN © (2007-01-24 03:28) [7]
> IMHO © (24.01.07 02:36)
>
> Где ваши программы хранят данные? (настройки, выходные файлы,
> временные файлы)
В ~/.
← →
Дмитрий Белькевич © (2007-01-24 03:52) [8]В папке программы в инишке.
Несколько плюсов:
1. Настройки никогда не слетают, даже после переустановки винды ничего не нужно перенастраивать.
2. Перенос софта из папки в папку, с веника на веник, с компьютера на компьютер не представляет никаких сложностей, софт практически не привязан к абсолютным путям, а, за счет инишки - к реестру.
3. На некоторых специфических настройках бывают некоторые проблемы с софтом, юзеры могут переслать настройки - бывает, помогает в поиске глюков (в частности, сегодня).
Минус, конечно, тот, что в папку программы писать можно - потенциальная дыра.
← →
pasha_golub © (2007-01-24 09:29) [9]
> 2. CSIDL_APPDATA
Гы, а что это? :-)
Предпочитаю инифайлы, либо XML. Ибо легко правится на лету. Реестр не люблю.
← →
tesseract © (2007-01-24 09:31) [10]чаще всего в :
HKEY_CURRENT_USER\Software\1C\1Cv7\7.7\Options
← →
Ega23 © (2007-01-24 09:31) [11]БД
← →
властелин колхоза (2007-01-24 09:50) [12]> [0] IMHO © (24.01.07 02:36)
В самом начале хранил в реестре, затем ini в папке программы, теперь c:\documents and settings\all users\application data.
← →
Gero © (2007-01-24 11:52) [13]В корневом каталоге диска C.
← →
Алхимик © (2007-01-24 11:57) [14]> [13] Gero © (24.01.07 11:52)
> В корневом каталоге диска C.
Тогда уж в корневом каталоге диска A: :)
← →
Gero © (2007-01-24 11:59) [15]> [14] Алхимик © (24.01.07 11:57)
> Тогда уж в корневом каталоге диска A:
В таком случае лучше B )
← →
властелин колхоза (2007-01-24 12:02) [16]> [13] Gero © (24.01.07 11:52)
туда я кидаю логи... ))
← →
ANTPro © (2007-01-24 12:30) [17]> где ваши программы хранят данные?
Там где удобно пользователю
← →
Petr V. abramov (not at home) (2007-01-24 12:37) [18]Настройки - в базе
временные - в темпе
← →
КиТаЯц © (2007-01-24 13:13) [19]Настройки
HKCU\Software\MyCompany\MyProg
Данные
БД
← →
antonn © (2007-01-24 13:26) [20]3. И обычно предупреждаю, что нужны права на запись
← →
TUser © (2007-01-24 13:29) [21]Диск а, диск бэ, баловство все. Я вот видел программулину, которая настройки встеганографировывала в картинку на десктопе. Зацените претензию пользователя:
- Цветовая схема поменялась, зхвуковая поменялась, все настройки полетели ...
- Чего-нибудь менял?
- Ну, картинку на рабочем столе, может от этого?
- Да не, ты чо, это не может повлиять на настройки этой программы.
← →
megabyte © (2007-01-24 13:36) [22]Настройки в Ini(удобно, что без меня продвинутые юзеры могут изменить их);
Данные в БД само собой.
← →
ПЛОВ © (2007-01-24 13:47) [23]Настройки всех своих программ кидаю в Boot.ini, для универсальности :)))
← →
Vlad Oshin © (2007-01-24 13:54) [24]3
> Настройки всех своих программ кидаю в Boot.ini, для универсальности
> :)))
на майл ру надо слать, у них теперь места много, заодно будет доступ отовсюду :)
← →
Gero © (2007-01-24 13:55) [25]> [22] megabyte © (24.01.07 13:36)
> Настройки в Ini(удобно, что без меня продвинутые юзеры могут
> изменить их);
Достаточно сделать интерфейс, позволяющий их изменять.
← →
antonn © (2007-01-24 14:20) [26]
> Достаточно сделать интерфейс, позволяющий их изменять.
достаточно написать телепатор, чтобы сразу транслировались:Р
← →
ShaggyDoc (2007-01-24 15:05) [27]И единственно серьезно и правильно написал
>TUser © (24.01.07 02:55) [1] и [3]
Хотя вариант с A: B: тоже хороши, для тех кто делает по принципу "мне так ндравица".
Все таки потенциальную работоспособность своих программ не стоит решать путем голосования. Лучше авторитарно - как велела Microsoft, независимо от того, любим ли мы ее. Иначе - "насолю биллу, сделаю, чтоб программа работала только на моей машине".
← →
antonn © (2007-01-24 17:04) [28]ShaggyDoc (24.01.07 15:05) [27]
И единственно серьезно и правильно написал
относительно чего единственно серьезно и правильно?
Тут разные программы пишут, на разные цели ориентирован, и в данном случае решать именно разработчикам.
ЗЫ с реестром Висты сталкивались, все быстро и без проблем разрешилось?
← →
ANB © (2007-01-24 18:19) [29]В оракловой БД. Настройки коннекта к ней - в ини или реестре (как вздумается, один хрен RXFormStorage юзаю для сих целей - а там одну галку переключить).
← →
Gadenysh (2007-01-24 18:32) [30]что попроще в реестре
сложные структуры - естественно в xml
← →
Agent13 © (2007-01-24 20:03) [31]
> Диск а, диск бэ, баловство все. Я вот видел программулину,
> которая настройки встеганографировывала в картинку на десктопе.
> Зацените претензию пользователя:
Это случаем был не "универсальный конвектор форматов" известного автора?
← →
Гарри Поттер © (2007-01-24 20:52) [32]> [24] Vlad Oshin © (24.01.07 13:54)
> на майл ру надо слать, у них теперь места много, заодно
> будет доступ отовсюду :)
Класс! Надо обдумать :)
← →
MsGuns © (2007-01-25 00:04) [33]В мешочке. Мешочек - в чулке, чулок в шкатулке, шкатулка в сундуке, сундук в старом комоде, комод в кладовке, кладовка в хатынке, хатынка в лесу, лес за селом, село.. блин, забыл как называется и где находится..
ЗЫ. Кто не въехал - это пародия на хитрозадое запрятывание настроек в реестре типа чтоб никто не догадался ;)
← →
vlad-mal © (2007-01-25 06:08) [34]Сначала в реестре хранил.
Система многопользовательская, какая-то тетка стала вопить: "хочу, чтобы мои настройки были, когда я на любой машине под собой вхожу".
Ну, я и подменил исползуемый ранее TRegIniFile класс на другой, который не в реестр пишет, а в указанный блоб записи, описывающей текущего пользователя.
← →
SpellCaster (2007-01-25 11:26) [35]Инишка в папке программы. Реестр не захламляю принципиально, ибо сие есть зло.
← →
vuk © (2007-01-25 11:43) [36]Настройки интерфейса (положения окон, состояния контролов) - в реестре.
Глобальные параметры, влияющие на работу БД - собственно в БД.
Настройки соединений к базам данных - у нас их раздает специальный сервис в сети.
Настройки для разных сервисов - ini в каталоге сервиса.
to vlad-mal © (25.01.07 06:08) [34]
>"хочу, чтобы мои настройки были, когда я на любой машине под собой
>вхожу".
>Ну, я и подменил исползуемый ранее TRegIniFile класс на другой
Понятно. Про перемещаемые профили не в курсе. :)
← →
Megabyte © (2007-01-25 13:21) [37]в
> Gero © (24.01.07 13:55) [25]
> [22] megabyte © (24.01.07 13:36)
> Настройки в Ini(удобно, что без меня продвинутые юзеры могут
> изменить их);
Достаточно сделать интерфейс, позволяющий их изменять.
Писать доп. модуль для того, чтобы внести настройки в основную прогу(или что не так понял)?
Имхо лишнее. Это каждый раз выводить интерфейс для изменения настроек, а если это не надо делать каждый раз при входе в прогамму?
А в ini вносишь изменения, когда потребуется(например, перенос на др. комп) и очень просто добавляется новый параметр. Ну это все вопрос религии. %)
← →
Gero © (2007-01-25 13:31) [38]> [37] Megabyte © (25.01.07 13:21)
> Ну это все вопрос религии. %)
Скорее, юзабилити.
← →
Nic (from SAF) (2007-01-25 13:40) [39]vuk © (25.01.07 11:43) [36]
Опа, реестр, БД, сервис.. А чем обычнй Ini не подходит?
← →
Nic (from SAF) (2007-01-25 13:51) [40]Потом реестр валится от того, что туда все программы пишут всякую всячину.
← →
vuk (2007-01-25 15:08) [41]to Nic (from SAF) (25.01.07 13:40) [39]:
>Опа, реестр, БД, сервис..
Реестр - потому, что он структурированный (что удобно для хранения настроек интерфейса) и автоматически переезжает с машины на машину с профилем пользователя.
БД - потому, что некоторые вещи должны быть глобальны для системы в целом (в том числе и для хранимых процедур).
Сервис - потому, что некоторая конфигурационная информация должна быть глобальной и должна быть получена до подключения к БД (настройки соединений). Тут ситуация такая - когда у нас программа поднимается, она вообще ничего не знает о конфигурации соединений. Даже не знает, где сервис конфигураций живет. :)
>А чем обычнй Ini не подходит?
Я это сказал? Нет. Иногда подходит.
← →
Игорь Шевченко © (2007-01-25 15:17) [42]Nic (from SAF) (25.01.07 13:51) [40]
Ты, когда звон услышишь, смотри на источник, чтобы не попасть в неловкое положение.
← →
Nic (from SAF) (2007-01-25 15:53) [43]vuk (25.01.07 15:08) [41]
Прояснилось.
← →
zdm © (2007-01-25 17:22) [44]В БД хранить не плохо, если это не настройки касающиеся самой БД и коннекта к ней. Остановился на INI.
← →
zdm © (2007-01-25 17:23) [45]а путь, лучше всего к личным дерикториям юзера. И доступ к ним у него всегда есть и настройки только его личные.
← →
vlad-mal © (2007-01-25 18:36) [46]
> Понятно. Про перемещаемые профили не в курсе. :)
Не в курсе. А что это?
← →
TUser © (2007-01-25 18:43) [47]> Потом реестр валится от того, что туда все программы пишут всякую всячину.
Этоштожтуданадозаписать такое, чтобы реестр свалился? И, кстати, что такое свалившийся реестр? Чем он от несвалившегося отличается?
← →
Nic © (2007-01-25 19:12) [48]Пургу сказал. Хотел выразить то, что реестр превращается в ужасную помойку, если все всё туда писать будут.
← →
Desdechado © (2007-01-25 19:23) [49]реестр + БД
← →
iZEN © (2007-01-25 19:36) [50]
> vlad-mal © (25.01.07 18:36) [46]
>
>
> > Понятно. Про перемещаемые профили не в курсе. :)
>
> Не в курсе. А что это?
Это такая папка в Windows, немного похожая на каталог ~/ в Unix.
> TUser © (25.01.07 18:43) [47]
> кстати, что такое свалившийся реестр? Чем он от несвалившегося
> отличается?
Свалифшийся реестр представляет собой кучу бинарного мусора, которую невозможно прочитать.
← →
vuk © (2007-01-25 20:16) [51]to vlad-mal © (25.01.07 18:36) [46]:
>Не в курсе. А что это?
Профиль - набор пользовательских данных. Туда, помимо прочего, входит и ветка реестра HKEY_CURRENT_USER. Если компьютер работает в домене и профиль настроен как перемещаемый, то при входе пользователя в систему профиль загружается с контроллера домена на локальную машину, а при выходе из системы происходит копирование данных обратно на контроллер домена.
to Любителя заваливать реестр:
У меня реестр не валится. Что я делаю не так? :)
← →
vuk © (2007-01-25 20:17) [52]блин...
>to Любителя заваливать реестр:
Любители
← →
vlad-mal © (2007-01-25 21:43) [53]
> vuk © (25.01.07 20:16) [51]
> to vlad-mal © (25.01.07 18:36) [46]:>Не в курсе. А что
> это?Профиль - набор пользовательских данных. Туда, помимо
> прочего, входит и ветка реестра HKEY_CURRENT_USER. Если
> компьютер работает в домене и профиль настроен как перемещаемый,
> то при входе пользователя в систему профиль загружается
> с контроллера домена на локальную машину, а при выходе из
> системы происходит копирование данных обратно на контроллер
> домена.
Понял, я такое знаю.
Не пойдет.
Пользователь программы <> current_user Windows.
Пример: я топчу клаву, работая в программке "под собой". Приходит начальник, я ему жалуюсь на маленькую зарплату. Он тут же, за моим компьютером, в этой же программе выбирает действие "Вход под другим пользователем", вводит свое имя и пароль - и бац - программа выглядит так, как он себе настроил, он входит в закрытый для меня модуль "Учет труда и зарплаты" и увеличивает мне з/плату.
Потом снова - "Вход под другим пользователем" - и я возвращаюсь к своим настройкам.
Ну, или неграмотная тетя Маша подходят и жалуются, что "у Гали буквы крупнее, а я у меня тоже зрение слабое...". Я, прямо на своем рабочем месте, не меняя current_user Windows, вхожу в программку под Машей, и настраиваю ей размер шрифта.
По-моему, проще, чем уговоривать админов насчет настройки профилей. (Бывает, что фиг уговоришь порт открыть для доступа к удаленному серверу :(.)
А кодирования - не больше, чем при работе с реестром (или ini - файлом).
------------
Любители завалить реестр - это обычны любители всяких утилит по автоматической его чистке. :)
← →
Некто © (2007-01-26 09:48) [54]Блин, тоже сейчас задумался о хранении настроек. Только я программы редко пишу. :)
Пишу скрипты в основном. Настройка в самом скрипте (обычно выделенная особым образом часть с подписью "значения для изменения" или "настройки"). Сейчас подумываю о хранении настроек в xml. Логи привык писать в журнал событий.
← →
колхоз глазами хакера (2007-01-26 10:25) [55]> Он тут же, за моим компьютером, в этой же программе выбирает
> действие "Вход под другим пользователем", вводит свое имя
> и пароль - и бац - программа выглядит так, как он себе настроил
LogonUser()+ImpersonateLoggedOnUser()? А прогу вообще запускать от имени SYSTEM. %-)
Страницы: 1 2 вся ветка
Форум: "Прочее";
Текущий архив: 2007.02.18;
Скачать: [xml.tar.bz2];
Память: 0.6 MB
Время: 0.068 c