LINUX.ORG.RU

Работа с конфигами..


0

0

Может знатоки чего порекомендуют:

Необходимо читать/писать конфигурационный файл в формате [секция1] ключ1 = значение1 ... [секция n] ключ n = значение n

Я посмотрел пару программ (XMMS, Sylpheed и еще чего-то там), так там используются самодельные парсеры. Может есть какая-нибудь стандартная либа?

P.S. Заранее благодарен за ответы 8)


ИМХО, "стандартная задачка" по курсу трансляторов. С помощью регулярных выражений делаешь лексический анализатор, затем строишь синтаксический. А в качестве готового решения могу посоветовать хранить в XML формате и разгребать например с помощью expat

PETER ★★
()

проще самому написать чем будешь искать ..

lg ★★
()

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

syomin
() автор топика

В смысле "хранить в xml" 8)

syomin
() автор топика

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

PETER ★★
()

>>Необходимо читать/писать конфигурационный файл в формате
>>[секция1] ключ1 = значение1 ... [секция n] ключ n = значение n
В PHP подобная хрень делается одной функцией parse_ini_file(filename)
(примерно так называется , но параметры точно не помню)
Если сильно в лом писать свой парсер - скомпили ПХП в бинарник и запускай ПХП скрипты.:)))

joker
()

Ну приделывать PHP к той примитивщине, что я пишу, это слишком 8).

qt не подходит по весьма прозаической причине - прога под Gtk+, однако за ссылку спасибо - я подозревал, что в qt такая фенька есть 8)

За config_api спасибо - обязательно вечером посмотрю.

P.S. Всем ответившим спасибо, однако может кто чего добавит? 8)

syomin
() автор топика

FreshMeat Вам поможет. Да прибудет с Вами... Эээ... Чет я заболтался %)

Nefer
()

Для разбора можно воспользоваться lex-ом. Быстро описывается несложный синтаксис.

anonymous
()

дык береш сорс КуТевый и вперед.

anonymous
()

> дык береш сорс КуТевый и вперед.
Быстрее "с нуля" написать 8). Просто странно, что зада вроде бы типичная, а вот стандартного решения нет...

syomin
() автор топика

Так lex+yacc (aka flex+bison) это и есть стандартное решение подобных задач. An XML parser -- это еще одно стандартное решение.

aa5779
()

Можешь взять liblua. Тогда у тебя можно будет делать навороченные конфиги, с функциями и т.д.

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.