The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

форумы  помощь  поиск  регистрация  майллист  ВХОД  слежка  RSS
"Обработка конфигурационного файла"
Вариант для распечатки Архивированная нить - только для чтения! 
Пред. тема | След. тема 
Форумы Программирование под UNIX (Public)
Изначальное сообщение [Проследить за развитием треда]

"Обработка конфигурационного файла"
Сообщение от fvl emailИскать по авторуВ закладки on 22-Ноя-02, 04:03  (MSK)
Вообщем у меня есть следующее:

Файл test.conf:
##################################
## Вот тут большущий коментарий
##################################
test {
bla = bla; # и тут комментарий
bla = bla;
bla = bla;
}

Вот как обработать такой синтаксис?
У меня вот есть кое какая идея по этому поводу.

Файл parseconf.c
#include <stdio.h>
#define MAXLINE 256
...
void parseconf(void)
{
   FILE *fp;
   char *line;
   char *file;
   filename = "test.conf"
   if ((fp = fopen("filename", "r")) == NULL)
   {
fprintf(stderr, "Can`t open filename: %s\n", filename);
exit(1);
   }
   while ((fgets(line, MAXLINE, fp)) !=NULL)
   {
checkconf(line);
   }
}

Где функция checkconf - обрабатывает синтаксис, считывает и записывает переменные.
Вот если так надо делать то не пойму, как мне написать эту функцию?
Как сделать чтоб она обрабатывала синтаксис? Если можете напишите готовый пример или поделитесь опытом или идеями.
Заранее спасибо!

  Рекомендовать в FAQ | Cообщить модератору | Наверх

 Оглавление

Индекс форумов | Темы | Пред. тема | След. тема
Сообщения по теме

1. "RE: Обработка конфигурационного файла"
Сообщение от joker Искать по авторуВ закладки on 22-Ноя-02, 10:18  (MSK)
попробуй поюзать регулярные выражения.(man regcomp, man regexec)
Но лучше поищи в инете примеры, потому что, например, у меня под РедХат ман довольно кривой по этим функциям.


  Рекомендовать в FAQ | Cообщить модератору | Наверх

2. "RE: Обработка конфигурационного файла"
Сообщение от uldus Искать по авторуВ закладки on 22-Ноя-02, 10:24  (MSK)
>Где функция checkconf - обрабатывает синтаксис, считывает и записывает переменные.

Для твоего примера конфига такое не подойдет, так как присутствуют многострочные директивы конфигурации. Самый простой путь, не изобретать велосипед, а взять 2-3 небольшие программы в исходниках с конфигурационными файлами подходящего формата и посмотреть как там реализован парсинг конфигов.

  Рекомендовать в FAQ | Cообщить модератору | Наверх

3. "RE: Обработка конфигурационного файла"
Сообщение от fvl emailИскать по авторуВ закладки on 22-Ноя-02, 23:21  (MSK)
Да я так и думал посмотреть в других прогах. Нашел подходящию - named. Хм. Вы видели его сырцы? Это ужас я там ничего не понял.
  Рекомендовать в FAQ | Cообщить модератору | Наверх


Удалить

Индекс форумов | Темы | Пред. тема | След. тема
Пожалуйста, прежде чем написать сообщение, ознакомьтесь с данными рекомендациями.




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру