Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Прочее";
Текущий архив: 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.045 c
15-1169618650
Бумер2
2007-01-24 09:04
2007.02.18
Бумер2


15-1170075240
frari
2007-01-29 15:54
2007.02.18
Скинуть файл


2-1169345000
ol_nazgul
2007-01-21 05:03
2007.02.18
ComboBox дублирование строк


15-1170060470
Ajax
2007-01-29 11:47
2007.02.18
Формирование пакетов данных


2-1169915126
Garacio
2007-01-27 19:25
2007.02.18
Отдельный поток





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский