LINUX.ORG.RU

Именная конфибубля

 , ,


0

1

А что у нас есть из самых лучших парсеров конфигов для Си++?

Мне нужно не просто набор имя-значение, а произвольный набор блоков, у блока должен быть тип и набор переменных. Указание типа переменных не важно, но int/string/bool оно понимать должно. Всё это вдобавок должно красиво выглядеть. Настолько красиво, чтобы пользователь вполне с удовольствием редактировал конфиг (суть программы такова, что править конфиг нужно будет почти перед каждым запуском)



Последнее исправление: Usruser (всего исправлений: 1)
Ответ на: комментарий от rumgot

https://github.com/nlohmann/json header only.

JSON хороший формат, но для конфиг-файлов, которые читаются и правятся человеками не годится! Хотя-бы из за отсутствия комментариев.

sigurd ★★★★★
()
Последнее исправление: sigurd (всего исправлений: 1)
Ответ на: комментарий от anonymous2

Ну я, например, люблю когда в конфиге есть краткое описание что тут вообще происходит. Причём краткое, но достаточное для работы не заглядывая в документацию.

Usruser
() автор топика
Ответ на: комментарий от sigurd

Хотя-бы из за отсутствия комментариев.

Когда очень надо, фигачат псевдоэлемент _comment и пишут туда всё, что надо.

hobbit ★★★★★
()
Ответ на: комментарий от sigurd

Про комментарии категорически согласен. Автор json в этом плане проявил себя имбецилом. Но для сложных иерархических конфигов json все таки очень хорош. А комментарий на крайняк можно и так:

{
    "some-key-comment":"comments_comments",
    "some-key-value":"some-value",
}
rumgot ★★★★★
()
Ответ на: комментарий от rumgot

Какой хороший формат для конфигов. До чего же удобно следить за всеми этими красивыми скобочками, запятыми, кавычками. Как приятно создавать для комментариев псевдоэлементы.

thesis ★★★★★
()
Ответ на: комментарий от thesis

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

rumgot ★★★★★
()
Последнее исправление: rumgot (всего исправлений: 1)
Ответ на: комментарий от hobbit

Когда очень надо, фигачат псевдоэлемент _comment и пишут туда всё, что надо.

А что делать, если мне нужно временно закомментировать часть конфига, чтобы попробовать какие-то другие настройки и иметь возможность откатиться назад (раскомментировать)? Можно конечно файлы бекапить целиком, но это как-то менее удобно что ли.

В общем при прочих равных я за наличие комментариев.

m0rph ★★★★★
()
Ответ на: комментарий от rumgot

Не, ямл все-таки поудобнее руками править. Жсон - это для машин.

thesis ★★★★★
()
Ответ на: комментарий от m0rph

А что делать, если мне нужно временно закомментировать часть конфига

ну и проблема, просто ставишь любой символ любимого комментария в начале ключа

anonymous2 ★★★★★
()
Последнее исправление: anonymous2 (всего исправлений: 1)
Ответ на: комментарий от rumgot

зато видел заявления, что таки вот именно это и самое хорошо, ибо при таком варианте комментариев, они абсолютно точно не потеряются при машинной перезаписи конфига :)
так что это не баг разработки формата, а фитча !!

pfg ★★★★★
()
Ответ на: комментарий от m0rph

Ну лично я вообще за XML, он избыточный в хорошем смысле слова и если хорошо приготовлен — вполне человекочитаем. Но он сейчас не в моде, и его надо уметь готовить (очень многие судят про XML именно по плохо приготовленным схемам).

hobbit ★★★★★
()
Ответ на: комментарий от pfg

зато видел заявления, что таки вот именно это и самое хорошо, ибо при таком варианте комментариев, они абсолютно точно не потеряются при машинной перезаписи конфига :)

Да я тоже видел. Ну что тут скажешь. Тупых подпевал хватает везде.

rumgot ★★★★★
()
Ответ на: комментарий от hobbit

XML человекочитаем, но лично я предпочел бы никогда не работать с ним вручную.

m0rph ★★★★★
()
Ответ на: комментарий от anonymous2

проблема надуманная, назначай правильные по смыслу ключи или добавляй доп. ключи ввиде «name:description»

Ну да, возьми неподходящий инструмент, а потом лепи убогие костыли для него. Так победим.

anonymous
()
Ответ на: комментарий от hobbit

XML убог потому что в каждом ноде почему-то два разных списка поднодов и один из них не поддерживает иерархию. Это имеет смысл только для разметки текста (HTML).

X512 ★★★★★
()
Последнее исправление: X512 (всего исправлений: 1)
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.