2013-07-02 5 views
0

I가 다음 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/

).