The OpenNET Project / Index page

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

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

"Разбор параметров из конф-файла в С"
Сообщение от lamer Искать по авторуВ закладки on 31-Май-03, 14:06  (MSK)
Помогите ламеру. Есть конфигурационный файл следующего формата:
variable:<пробел>value\n
variable_x:<пробел>value1<пробел>value2\n
....
Как разобрать переменная=значение этот файл на C? Только не отсылайте пожалуйста к документации :))
  Рекомендовать в FAQ | Cообщить модератору | Наверх

 Оглавление

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

1. "Разбор параметров из конф-файла в С"
Сообщение от lamer Искать по авторуВ закладки on 02-Июн-03, 11:40  (MSK)
>Помогите ламеру. Есть конфигурационный файл следующего формата:
>variable:<пробел>value\n
>variable_x:<пробел>value1<пробел>value2\n
>....
>Как разобрать переменная=значение этот файл на C? Только не отсылайте пожалуйста к
>документации :))

Ребят, вам совсем влом помочь? Ну только я начал учиться С, совсем запутался в этих strcmp, strtok и т.д.

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

2. "Разбор параметров из конф-файла в С"
Сообщение от Wadimoff emailИскать по авторуВ закладки on 03-Июл-03, 13:04  (MSK)
>>Помогите ламеру. Есть конфигурационный файл следующего формата:
>>variable:<пробел>value\n
>>variable_x:<пробел>value1<пробел>value2\n
>>....
>>Как разобрать переменная=значение этот файл на C? Только не отсылайте пожалуйста к
>>документации :))
>
>Ребят, вам совсем влом помочь? Ну только я начал учиться С, совсем
>запутался в этих strcmp, strtok и т.д.

Ну, вот нечто похожее на разбор ini-файла, но код сырой и напильником нужно еще поработать.

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

#define TRUE 1
#define FALSE 0

#define MAXLINE 1000

static FILE *fp = NULL;
static char *curfile = NULL;
static char *cursect = NULL;
static long int sectoffset;

static int inisearch(FILE *, const char *);

char *
inifetch(const char *file, const char *sect, const char *key)
{
static char line[MAXLINE];
char *p, *retp = NULL;
int len;

if(fp == NULL || curfile == NULL || strcmp(curfile, file) != 0)
      {
      if(fp != NULL)
            fclose(fp);
      if(curfile != NULL)
            { free(curfile); curfile = NULL; }
      if(cursect != NULL)
            { free(cursect); cursect = NULL; }
      fp = fopen(file, "r");
      if(fp == NULL)
            return NULL;

      curfile = malloc(strlen(file) + 1);
      if(curfile != NULL)
            strcpy(curfile, file);
      }

/* search for key */
len = strlen(key);
while(fgets(line, MAXLINE, fp) != NULL)
      {
      if(*line == '[')
            break;
      if(strncmp(line, key, len) == 0 &&
                        line[len] == '=')
            {
            retp = &line[len+1];
            if((p = strrchr(retp, '\n')) != NULL)
                  *p = '\0';
            break;
            }
      }
      
return retp;
}

static int
inisearch(FILE *fp, const char *sect)
{
char line[MAXLINE];
int len = strlen(sect);
while(fgets(line, MAXLINE, fp) != NULL)
      {
      if(*line != '[')
            continue;
      if(strncmp(&line[1], sect, len) == 0 &&
                              line[1+len] == ']')
            return TRUE;      /* found it */
      }
      
return FALSE;
}

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

4. "Разбор параметров из конф-файла в С"
Сообщение от asso Искать по авторуВ закладки on 04-Июл-03, 16:18  (MSK)
>Ребят, вам совсем влом помочь? Ну только я начал учиться С, совсем
>запутался в этих strcmp, strtok и т.д.

Не в лом, но если ты не научишься писать такие парсеры "одной левой", то в программировании тебе делать нечего.  Дерзай.

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

3. "Разбор параметров из конф-файла в С"
Сообщение от pth Искать по авторуВ закладки on 03-Июл-03, 13:57  (MSK)
http://www.netsw.org/system/libs/config/

По-моему readconf - это то, что требовалось.

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


Удалить

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




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

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