2013-07-02 3 views
0

У меня есть следующие config.cfgКак получить значения из файла конфигурации

[DD] 
user=** 
password=*** 
database=*** 
IPServidor=**** 
port=*** 

[Controller] 
Control1=8 
Temp=5 
Hum=7 
Link=8 
Volt=9 

[Controller] 
Control2=10 
Temp=5 
Hum=7 
Link=8 
Volt=9 

Я хотел бы прочитать значения только контроллеров и печатать их на экран, как

Controller_8: 5,7,8,9 

Я не хочу использовать libconfig или glib, потому что у меня проблема с неопределенными функциями. Я сделал установку, у меня есть заголовки, но я не знаю, почему это не работает. Поэтому я хочу другое решение. Моя первая мысль заключается в использовании strchr для поиска строк, которые я хочу (чтобы проигнорировать таблицу [DD] в моем случае), и с использованием strtok получить только значения temp, hum, link, volt

char buffer1[100]; 
FILE *f = fopen("/home/pi/Desktop/Config.cfg","r"); 
while(fgets(buffer1, sizeof(buffer1), f)) 
{ 
    printf("%s",buffer1); 
    char *pos1 = strchr(buffer1,'Controller'); 
    if (pos1) 
    { 

    item = strtok (buffer1,"Control"); 
    printf("Results: %s\n", buffer1); 
    } 
} 

Вышеупомянутый код некорректен. Это просто мысль. Есть ли лучший способ?

ответ

0

Не пытайтесь разбирать ini-файлы, используйте существующую библиотеку.

Инициализация файла Ini включена в ряд «каркасов», например, в Gtk+ или Windows. Если вы не можете получить к ним доступ, вы можете использовать некоторую автономную библиотеку, например: http://ndevilla.free.fr/iniparser/

Смежные вопросы