Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2007.02.18;
Скачать: CL | DM;

Вниз

Опрос: где ваши программы хранят данные?   Найти похожие ветки 

 
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;
Скачать: CL | DM;

Наверх




Память: 0.61 MB
Время: 0.03 c
15-1169982180
Ломброзо
2007-01-28 14:03
2007.02.18
Воскресные задачки (для воскресной школы)


2-1170065544
GrayFace
2007-01-29 13:12
2007.02.18
Не показывать конструктор родителя при overload нутом своем?


8-1145444606
hosco
2006-04-19 15:03
2007.02.18
Информация о видео-файле


15-1169054926
vasIzmax
2007-01-17 20:28
2007.02.18
Пару вопросов...


2-1170112622
kolyann..
2007-01-30 02:17
2007.02.18
как получать данные с usb порта