![]() |
Модераторы: Daevaorn |
![]() ![]() ![]() |
|
chaos |
|
|||
![]() Серийный программист ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2979 Регистрация: 7.7.2004 Где: Екатеринбург Репутация: 6 Всего: 44 |
День добрый!
Хотелось бы узнать у обитателей данного форума: какими либами вы пользуетесь для разбора конфигов к своим приложениям название, +- на ваш взгляд, может кто пользовался несколькими - сравните Заранее благодарен! |
|||
|
||||
andrew_121 |
|
|||
![]() Кодофей ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3448 Регистрация: 3.1.2008 Репутация: 6 Всего: 33 |
chaos, Я использую свой вариант. Сам написал с нуля. Так как, когда мне такое понадобилось, начал искать, и нечего удовлетворяющего моим запросам не нашел.
-------------------- Удалил аккаунт. Прощайте! |
|||
|
||||
Anikmar |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2513 Регистрация: 26.11.2006 Где: Санкт-Петербург Репутация: 9 Всего: 59 |
Лично я так, как в основном пишу на билдере использую TIniFile.
В случаях, когда конфиг слишком сложный и неудобный для представления в текстовом виде - пишу сам, в виде набора структур. |
|||
|
||||
GoldFinch |
|
|||
![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2141 Регистрация: 30.11.2008 Репутация: 15 Всего: 26 |
GetPrivateProfile*()
|
|||
|
||||
mrbrooks |
|
|||
![]() трололомен ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 4259 Регистрация: 4.10.2006 Где: Дол Гулдур Репутация: 2 Всего: 306 |
как и Anikmar, пользуясь Борманом, использую TIniFiles.
Однако не гнушаюсь и БД - слишком много было данных - поэтому использовать настроечную таблицу был очень кашерный выход. |
|||
|
||||
Anikmar |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2513 Регистрация: 26.11.2006 Где: Санкт-Петербург Репутация: 9 Всего: 59 |
А какой? Я что-то подходящее не нашел, чтобы было небольшое и можно было вместе с программой таскать и запускать на другом компе без каких-либо дополнительных установок. |
|||
|
||||
Alca |
|
||||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3993 Регистрация: 14.6.2006 Репутация: 7 Всего: 50 |
MDB + ADO ![]()
Под винду: GetPrivateProfileInt GetPrivateProfileSection GetPrivateProfileSectionNames GetPrivateProfileString GetPrivateProfileStruct GetProfileInt GetProfileSection GetProfileString WritePrivateProfileSection WritePrivateProfileString WritePrivateProfileStruct WriteProfileSection WriteProfileString .... Это сообщение отредактировал(а) Alca - 25.3.2009, 12:07 |
||||
|
|||||
andrew_121 |
|
|||
![]() Кодофей ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3448 Регистрация: 3.1.2008 Репутация: 6 Всего: 33 |
Крайне не удобные функции. Хоть бы обертку в виде класса написать... ))) -------------------- Удалил аккаунт. Прощайте! |
|||
|
||||
Lazin |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3820 Регистрация: 11.12.2006 Где: paranoid oil empi re Репутация: 41 Всего: 154 |
чаще всего - реестр windows, однажды использовал lua(удобно, когда конфиги должны редактироваться юзером), БД то-же неплохой вариант |
|||
|
||||
Rickert |
|
|||
![]() Ситхи не пройдут! ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3356 Регистрация: 11.7.2006 Где: Лакрима Репутация: 0 Всего: 52 |
andrew_121, +1 тож сам писал
![]() -------------------- Ни что не внушает сна крепче, чем день приисполненный трудов! |
|||
|
||||
Helmet |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 30 Регистрация: 27.2.2009 Где: Someone's hea d Репутация: нет Всего: 1 |
QSettings
![]() Это сообщение отредактировал(а) Helmet - 25.3.2009, 12:19 |
|||
|
||||
mrbrooks |
|
|||
![]() трололомен ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 4259 Регистрация: 4.10.2006 Где: Дол Гулдур Репутация: 2 Всего: 306 |
скажем так - в данном случае настроечная таблица и была к базе данных, поэтому отдельно бд конечно не использовалась. Сама БД была на MySQL. А так хоть тот же Access. Работать будет нормально и без офиса. Это конечно под винду. Так же думаю покатит и LiteSQL. Да и что СУБД мелких мало что ли, которые не требуют инсталяции. |
|||
|
||||
Andrey44 |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1501 Регистрация: 4.12.2006 Где: На работе Репутация: 2 Всего: 26 |
XML
-------------------- ????? ??, ??????? ?????. ![]() |
|||
|
||||
andrew_121 |
|
|||
![]() Кодофей ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3448 Регистрация: 3.1.2008 Репутация: 6 Всего: 33 |
Да. Только если проект использует ее не только ради этого. А иначе, смысл = 0 ) -------------------- Удалил аккаунт. Прощайте! |
|||
|
||||
Rififi |
|
|||
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1254 Регистрация: 9.3.2008 Репутация: 11 Всего: 36 |
конфиги храню в xml, разбираю своим классом на базе msxml
|
|||
|
||||
Alca |
|
|||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3993 Регистрация: 14.6.2006 Репутация: 7 Всего: 50 |
Крайне не удобные, пока не напишешь врапер. |
|||
|
||||
azesmcar |
|
|||
![]() uploading... ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 6291 Регистрация: 12.11.2004 Где: Армения Репутация: 81 Всего: 211 |
chaos, использую то что есть в стандарте, то чего нету - пишу сам (если речь конечно идет о чистом С++). А так у каждой библиотеки свои классы (о них тут уже написано немало).
|
|||
|
||||
Andrey44 |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1501 Регистрация: 4.12.2006 Где: На работе Репутация: 2 Всего: 26 |
написал два сообщения
Это сообщение отредактировал(а) Andrey44 - 25.3.2009, 12:59 -------------------- ????? ??, ??????? ?????. ![]() |
|||
|
||||
Alca |
|
|||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3993 Регистрация: 14.6.2006 Репутация: 7 Всего: 50 |
Чем XML лучше INI?
|
|||
|
||||
Andrey44 |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1501 Регистрация: 4.12.2006 Где: На работе Репутация: 2 Всего: 26 |
Не совсем понял высказывание по поводу смысла. ![]() Это сообщение отредактировал(а) Andrey44 - 25.3.2009, 12:57 -------------------- ????? ??, ??????? ?????. ![]() |
|||
|
||||
Andrey44 |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1501 Регистрация: 4.12.2006 Где: На работе Репутация: 2 Всего: 26 |
иксмл может иметь более вложенную структуру.
-------------------- ????? ??, ??????? ?????. ![]() |
|||
|
||||
Anikmar |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2513 Регистрация: 26.11.2006 Где: Санкт-Петербург Репутация: 9 Всего: 59 |
Лично у меня душа к XML не лежит. Не вижу никаких преимуществ для использования в качестве хранилища конфигурации.
Реестр по большей части не подходит - так как проект запускается с флешки и должен все у себя хранить. |
|||
|
||||
azesmcar |
|
|||
![]() uploading... ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 6291 Регистрация: 12.11.2004 Где: Армения Репутация: 81 Всего: 211 |
Anikmar, в дот.нет есть XML серилизация, очень удобно для хранения конфигурации. Можно сразу сохранить обьект класса в файл, со всеми его данными.
Это сообщение отредактировал(а) azesmcar - 25.3.2009, 13:11 |
|||
|
||||
Rififi |
|
|||
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1254 Регистрация: 9.3.2008 Репутация: 11 Всего: 36 |
Alca,
Чем XML лучше INI? структурированностью, возможностью жесткой валидации по схеме |
|||
|
||||
Lazin |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3820 Регистрация: 11.12.2006 Где: paranoid oil empi re Репутация: 41 Всего: 154 |
в случае использования xml, встает вопрос о сохранности данных, например в ситуации, когда во время сохранения данных в конфиг. файл отключают электричество, нажимают на reset, кончается место на диске, или происходит ошибка в программе.
В этом случае, ваш конфигурационный файл может остаться в невалидном состоянии, что может привести к невозможности запуска программы и необходимости ее переустановки. Именно поэтому, лучше использовать БД(с поддержкой транзакций(например sqlite)) или реестр(который именно для этого и предназначен), или изобретать велосипед, пытаясь реализовать сохранение в файл атомарно. ![]() |
|||
|
||||
Andrey44 |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1501 Регистрация: 4.12.2006 Где: На работе Репутация: 2 Всего: 26 |
И еще базовый синтаксис языка XPath похож на адресацию в файловой системе. Очень легко читать и писать данные. Добавлено через 4 минуты и 6 секунд БД надо с собой таскать в смысле длл а xml есть всегда. По крайней мере в Windows -------------------- ????? ??, ??????? ?????. ![]() |
|||
|
||||
andrew_121 |
|
|||
![]() Кодофей ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3448 Регистрация: 3.1.2008 Репутация: 6 Всего: 33 |
Гм... Спасибо за комментирование... Речь идет о том, что если для разбора вы юзаете libxml2, или что-то на ее основе, и в других целях она не используется в вашем проекте, то зачем тащить за проектом такого динозавра. -------------------- Удалил аккаунт. Прощайте! |
|||
|
||||
Anikmar |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2513 Регистрация: 26.11.2006 Где: Санкт-Петербург Репутация: 9 Всего: 59 |
Anikmar, в дот.нет есть XML серилизация, очень удобно для хранения конфигурации. Можно сразу сохранить обьект класса в файл, со всеми его данными.
А Framework он не потребует в нагрузку? |
|||
|
||||
azesmcar |
|
||||
![]() uploading... ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 6291 Регистрация: 12.11.2004 Где: Армения Репутация: 81 Всего: 211 |
потребует конечно ![]()
я как пример преимущества для использования в качестве хранилища конфигурации. К тому же если нужно хранить иерархические данные - XML в самый раз. |
||||
|
|||||
Andrey44 |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1501 Регистрация: 4.12.2006 Где: На работе Репутация: 2 Всего: 26 |
А если не пользуюсь ничем подобным. Есть просто интерфейсы IXMLDOM.............. и т.д. -------------------- ????? ??, ??????? ?????. ![]() |
|||
|
||||
Rififi |
|
|||
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1254 Регистрация: 9.3.2008 Репутация: 11 Всего: 36 |
Lazin,
.. отключают электричество.. я вот кстати не в курсе, а что при этом будет в случае записи в реестр? Откат изменений? вроде бы, *Transacted функции только в Vista и Server 2008 появились... |
|||
|
||||
Alca |
|
|||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3993 Регистрация: 14.6.2006 Репутация: 7 Всего: 50 |
АДО есть в винде ![]() |
|||
|
||||
Anikmar |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2513 Регистрация: 26.11.2006 Где: Санкт-Петербург Репутация: 9 Всего: 59 |
На вкус и на цвет... Подходы могут быть весьма различные. Но на этот случай у меня свой класс написан. Почему-то захотелось свое. Может, конечно, и велосипед, но не люблю xml и все тут. ![]() |
|||
|
||||
Rififi |
|
|||
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1254 Регистрация: 9.3.2008 Репутация: 11 Всего: 36 |
Alca,
АДО есть в винде только в случае mdb (jet engine) получаем гемор в 64-битной среде. а в наше время закрывать глаза на поддержку 64-битной платформы - это как прятать голову в песок :gigi: |
|||
|
||||
mrbrooks |
|
|||
![]() трололомен ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 4259 Регистрация: 4.10.2006 Где: Дол Гулдур Репутация: 2 Всего: 306 |
это смотря для каких. Добавлено через 2 минуты и 5 секунд Rififi, более того еще полно машин и с 2000 маздаем. там сплошь и рядом 3 версия Jet'a - это если без SP |
|||
|
||||
Rififi |
|
|||
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1254 Регистрация: 9.3.2008 Репутация: 11 Всего: 36 |
Anikmar,
чисто интереса для. как бы ты хранил в ini и доставал/записывал данные из вот такого конфига:
|
|||
|
||||
Anikmar |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2513 Регистрация: 26.11.2006 Где: Санкт-Петербург Репутация: 9 Всего: 59 |
А что хранить то вообще надо (слаб я в разметке xml - каюсь) |
|||
|
||||
Rififi |
|
|||
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1254 Регистрация: 9.3.2008 Репутация: 11 Всего: 36 |
Anikmar,
А что хранить то вообще надо всё, что выделено синим и обычным шрифтом, то есть аттрибуты (org.jboss.mq.server.jmx.Queue, ...) и тела (queue/tutorial/example, ...) нодов (server, mbean, ...) а также их взаимное расположение друг относительно друга в иерархии |
|||
|
||||
Anikmar |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2513 Регистрация: 26.11.2006 Где: Санкт-Петербург Репутация: 9 Всего: 59 |
Т.е что-то типа того должно получиться?
[Server] code="org.jboss.mq.server.jmx.Queue" name="jboss.mq.destination:service=Queue,name=tutorial" JNDIName=queue/tutorial/example DestinationManager=jboss.mq:service=DestinationManager Если серверов несколько можно и так: [GENERAL] ServerCount=4 [Server1] ... Необходимые настройки [Server2] ... Необходимые настройки Я не говорю, что INI это панацея. Я просто говорю, что мне не нравится xml и не было случая в моей практике, когда я бы спокойно не мог без него обойтись. Может такой случай и наступит. Мои конфиги как правило - прстой набор имен параметров и их значений. |
|||
|
||||
andrew_121 |
|
|||
![]() Кодофей ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3448 Регистрация: 3.1.2008 Репутация: 6 Всего: 33 |
Прошу прощения, кодю в основном для Linux. Там такого нет. Это что-то вроде очередной Мелкософтовской заморочки? ![]() -------------------- Удалил аккаунт. Прощайте! |
|||
|
||||
Rififi |
|
|||
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1254 Регистрация: 9.3.2008 Репутация: 11 Всего: 36 |
andrew_121,
Это реализация парсера от ms, основанная на компонентной модели. Добавлено через 8 минут и 28 секунд Anikmar, Если серверов несколько несколько может быть не только серверов, но и нодов mbean, attribute внутре нода server тогда "плоская" модель ini-фала начинает превращаться в тихий ужас иногда можно встретить такой workaround server.mbean.code=... server.mbean.name=... ... ну, может кому-то такие телеги и нравятся... :gigi: а потом, проверок никаких, пиши что хочешь. например нужно число, а вписали строку. параметр обязательный, а его пропустили. должен быть один, а их два. всё это самому проверять? а может просто валиться из-за неправильного парсинга? :fear: не, нафик такое сщастие ![]() |
|||
|
||||
inside_pointer |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 344 Регистрация: 9.3.2008 Репутация: 5 Всего: 12 |
xml удобно для программы а не для пользователя, простые конфиги легко запоминаются, а здесь ещё надо xml знать (то есть напрямую конфиг не подредактируешь, а то что-нибудь сломается и обратно не восстановишь)
|
|||
|
||||
sparn |
|
|||
Новичок Профиль Группа: Участник Сообщений: 21 Регистрация: 11.5.2006 Репутация: нет Всего: 1 |
Конфиги предпочитаю хранить в виде XML, использую минималистичный парсер TinyXML. Объёмные данные предпочитаю хранить в БД и для клиентских приложений в этих целях использую sqlite.
|
|||
|
||||
MAKCim |
|
|||
![]() Воін дZэна ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5644 Регистрация: 10.12.2005 Где: Менск, РБ Репутация: 52 Всего: 207 |
libconfig
-------------------- Ах, у елі, ах, у ёлкі, ах, у елі злыя волкі © |
|||
|
||||
Master01 |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 89 Регистрация: 22.8.2007 Репутация: 2 Всего: 2 |
поддерживаю вариант XML
|
|||
|
||||
jonie |
|
|||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 5613 Регистрация: 21.8.2005 Где: Владимир Репутация: 15 Всего: 118 |
мы используем связку XML+INI. В XML у нас сама структура конфига, и из него есть ссылки на ini - вроде макросов: "%INI:path/section/value"
почему так? потому что некоторые администраторы (да и не только они) в упор не понят все спецсимволы которые нужно экранировать в XML, да и в общем-то сложно редактировать XML. ессно на всё это написана ООП надстройка, которая для программиста скрывает все "предести" ) -------------------- Что-то не поняли? -> Напейтесь до зеленых человечков... эта сверхцивилизация Вам поможет... |
|||
|
||||
semibug |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 323 Регистрация: 27.3.2009 Репутация: нет Всего: нет |
XML via tinyXML
|
|||
|
||||
korbian |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 336 Регистрация: 20.2.2007 Где: Penza Репутация: 2 Всего: 14 |
использую xml конфиг файлы. для формирования\чтения\редактирования применяю XML Archives из boost::serialization.
-------------------- korbian © |
|||
|
||||
Alexk553 |
|
|||
Новичок Профиль Группа: Участник Сообщений: 43 Регистрация: 8.11.2009 Репутация: нет Всего: нет |
Ну, если нужна вложенность, что мешает использовать SQLite + значения типа
уровеньвложения1/уровеньвложения2/уровеньвложения3/имяпараметра Если приложение сложное, то дополнительные расходы на поддержку SQLite не так и заметны, а если небольшое приложение, то вложенность не нужна и можно спокойно прикрутить что-то своё с атомарной струкурой и возможностью отката, вмонтировав LZ компрессию для истории изменений типа открытого 7z. |
|||
|
||||
Abyx |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 601 Регистрация: 3.11.2009 Репутация: 1 Всего: 10 |
планирую использовать boost.PropertyTree
|
|||
|
||||
djamshud |
|
|||
![]() Пердупержденный ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1655 Регистрация: 23.11.2009 Репутация: 8 Всего: 39 |
Простые храню в виде
#define key value сложные - xml. Для обоих случаев написал простенькие парсеры. Добавлено через 2 минуты и 50 секунд Раньше еще пользовался чем-то похожим на .ini-файлы, с поддержкой древовидных конфигов и всяких плюшек вроде макросов и инклудов. Но там парсер получился сложный, однажды решил что-то изменить и сам запутался в собственном коде. Этот вариант конфигов вытеснил нынешний xml. -------------------- 'Cuz I never walk away from what I know is right Alice Cooper - Freedom |
|||
|
||||
![]() ![]() ![]() |
Правила форума "С++:Общие вопросы" | |
|
Добро пожаловать!
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |