Парсинг конфиг файлов (библиотека vs своя функция)

Модератор: Модераторы разделов

Аватара пользователя
Ardzhan
Сообщения: 57
ОС: Debian + WinXP на виртуалке

Парсинг конфиг файлов

Сообщение Ardzhan »

Под линукс на си начал писать недавно, интересует такой вопрос. Для разбора конфиг файлов обычно используют какую-то стандартную библиотеку или пишут свою функцию???
Спасибо сказали:
Аватара пользователя
madskull
Сообщения: 1019
Статус: Экс-металлюга

Re: Парсинг конфиг файлов

Сообщение madskull »

Прошу прощения за оффтоп. Но я сам такой.
Из "Что дyмают о pyсских пpогpаммистах их западные коллеги":
Рyсские пpогpаммисты не любят использовать шаблоны. Их пpогpаммы - это индивидyально написанные пpоизведения с большой долей импpовизации.
ArchLinux / IceWM
Спасибо сказали:
Аватара пользователя
Asgard
Сообщения: 215
Статус: North Valfader

Re: Парсинг конфиг файлов

Сообщение Asgard »

Ardzhan
хм, если вы заметили, почти у каждой линуксовой программы 'свой' формат конфигов => свой метод их парсинга.
sator arepo tenet opera rotas ;)
------------------------------------------------------------
LJ
Спасибо сказали:
Аватара пользователя
Zeus
Сообщения: 694

Re: Парсинг конфиг файлов

Сообщение Zeus »

У меня конфиги в XML-е хранятся, но перебрав штук 10 разных библиотек парсинга XML я пришёл к выводу, что нужно писать свою.
Мне нужно-то было: из XML'я сформировать DOM в виде дерева из Node.
Причём нафиг не надо никаких дополнительных классов, типов, операций.
У меня Node это:

namespace jXML
{
class jNode:
{
public:
std::string name;
std::string value;
std::map<std::string, std::string> attributes;
jNode *parent;
std::list<jNode*> childs;
};
};

У парсера фактически 3 доступные функции:
парсинг,
запись DOM в файл (ф-я статическая, можно передать любой DOM - не обязательно DOM этого объекта),
удаление дерева (тоже статическая, передаёшь ей узел начиная с которого и ниже нужно всё удалить - он производит корректное удаление дерева).

Никаких словарей и прочих наворотов XML'я не поддерживается, но мне это и не надо.
Да, своя поделка сначала сыровата, но постепенно отладится, главное что уже сейчас парсит и записывает.
Мне больше и не нужно.
Главное - компилится любым C++ компилятором и не требует никаких дополнительных библиотек кроме стандартной.
Спасибо сказали:
Аватара пользователя
Skull
Модератор
Сообщения: 2089
ОС: ALT Linux

Re: Парсинг конфиг файлов

Сообщение Skull »

Ardzhan писал(а):
25.01.2006 20:13
Под линукс на си начал писать недавно, интересует такой вопрос. Для разбора конфиг файлов обычно используют какую-то стандартную библиотеку или пишут свою функцию???
Зависит от тулкита: в KDE, Qt есть отличные классы. И для простого приложения есть библиотека. Всегда лучше взять готовое, чем городить свой огород.


Zeus писал(а):
26.01.2006 10:31
У меня конфиги в XML-е хранятся, но перебрав штук 10 разных библиотек парсинга XML я пришёл к выводу, что нужно писать свою...
Никаких словарей и прочих наворотов XML'я не поддерживается, но мне это и не надо.
Да, своя поделка сначала сыровата, но постепенно отладится, главное что уже сейчас парсит и записывает.
А почему же ты не используешь XPath, идущий в стандартной libxml2? Русские любят трудности? :)
Skull
Спасибо сказали:
Аватара пользователя
Sparky
Сообщения: 604
Статус: core dumped
ОС: Plan 9

Re: Парсинг конфиг файлов

Сообщение Sparky »

Skull писал(а):
26.01.2006 11:17
А почему же ты не используешь XPath, идущий в стандартной libxml2? Русские любят трудности? :)

Не стоит судить так строго, молодые программисты любят "поизобретать колесо", через это, ИМХО, все должны пройти B)
Блог
--------------------

GCS/M/MU/P/IT/E d- s: a- C++(+++) UBL++ P->-- L+++$ E- W+++$ N* o? K? w>--
O M-@ V- PS@ PE+ Y+ PGP+ t 5 X R* tv-->- b++ DI? D>+ G e+(++) h--- r+ y++
Спасибо сказали:
Аватара пользователя
Zeus
Сообщения: 694

Re: Парсинг конфиг файлов

Сообщение Zeus »

А почему же ты не используешь XPath, идущий в стандартной libxml2? Русские любят трудности? :)

А он, скажем так, слишком самостоятелен в вопросах кодировки.

А к разговору о "начинающих".
Как-раз им-то полезно что-нибудь такое сварганить: ввод-вывод, анализ строк, структуры данных и т.п.
Хорошая тренировка.
Спасибо сказали:
Аватара пользователя
nerezus
Сообщения: 525
Статус: Вселенский отказник
ОС: windoze

Re: Парсинг конфиг файлов

Сообщение nerezus »

молодые программисты любят "поизобретать колесо"

не молодые, а неопытные. Путать не стоит! :angry:
ICQ 547097
Спасибо сказали:
Аватара пользователя
Ardzhan
Сообщения: 57
ОС: Debian + WinXP на виртуалке

Re: Парсинг конфиг файлов

Сообщение Ardzhan »

Забыл сказать, что пишу своего демона, так что Qt и прочие подобные библиотеки не подойдут.
Спасибо сказали:
Аватара пользователя
t.t
Бывший модератор
Сообщения: 7390
Статус: думающий о вечном
ОС: Debian, LMDE

Re: Парсинг конфиг файлов

Сообщение t.t »

¡иɯʎdʞ ин ʞɐʞ 'ɐнɔɐdʞǝdu qнεиж
Спасибо сказали:
Аватара пользователя
Ardzhan
Сообщения: 57
ОС: Debian + WinXP на виртуалке

Re: Парсинг конфиг файлов

Сообщение Ardzhan »


спасибо, то что нужно
Спасибо сказали: