功能
int
iniparser_getnsec(dictionary* D)
在字典中的部分路段,获取数。
void
iniparser_getsecname(dictionary* D,int n)
得到N节在字典的名称。
void
iniparser_dump_ini(dictionary* D,file* F)
保存到一个可装载的ini文件的字典。
void
iniparser_dumpsection_ini(dictionary* D的char *,FILE * F)
字典第一个可装载的ini文件保存。
void
iniparser_dump(dictionary* D,file* F)
转储到一个打开的文件指针的字典。
int
iniparser_getsecnkeys(dictionary* D,CHAR *s)
获取的数字键在字典中的一个部分。
char**
iniparser_getseckeys(dictionary* D,CHAR *s)
获取的数字键在字典中的一个部分。
char*
iniparser_getstring(dictionary* D,const char*key,char* DEF)
获取字符串相关的关键。
int
iniparser_getint(dictionary* D,const char* key,int NOTFOUND)
获取相关的一个关键的字符串转换为int。
double
iniparser_getdouble(dictionary* D,const char*key,doubleNOTFOUND)
获取相关的一个关键的字符串,转换成一个双。
Iint
iniparser_getboolean(dictionary* D,const char*key,int NOTFOUND)
获取相关的一个关键的字符串,转换成一个布尔值。
int
iniparser_set(dictionary* ini,const char entry*,const char* val)
设置在字典中的一个条目。
void
iniparser_unset(dictionary* ini,const char*entry)
在字典中删除条目。
int
iniparser_find_entry(dictionary* ini ,const char*entry)
找出一个给定的条目,如果存在一个字典。
dictionary*
iniparser_load(const char* ininame)
解析ini文件,并返回一个分配的字典对象。
void
iniparser_freedict(dictionary* D)
释放所有内存相关的一个ini字典。
【example】
下面是一个官方给的例子,确实好用
#include #include #include #include //#include #include "iniparser.h" void create_example_ini_file(void); int parse_ini_file(char * ini_name); int main(int argc, char * argv[]) { int status ; if (argc<2) { create_example_ini_file(); status = parse_ini_file("example.ini"); } else { status = parse_ini_file(argv[1]); } return status ; } void create_example_ini_file(void) { FILE * ini ; ini = fopen("example.ini", "w"); fprintf(ini, "#\n" "# This is an example of ini file\n" "#\n" "\n" "[Pizza]\n" "\n" "Ham = yes ;\n" "Mushrooms = TRUE ;\n" "Capres = 0 ;\n" "Cheese = Non ;\n" "\n" "\n" "[Wine]\n" "\n" "Grape = Cabernet Sauvignon ;\n" "Year = 1989 ;\n" "Country = Spain ;\n" "Alcohol = 12.5 ;\n" "\n"); fclose(ini); } int parse_ini_file(char * ini_name) { dictionary * ini ; int b ; int i ; double d ; char * s ; ini = iniparser_load(ini_name); //装载文件到字典ini中 if (ini==NULL) { fprintf(stderr, "cannot parse file: %s\n", ini_name); return -1 ; } iniparser_dump(ini, stderr); //确定字典的输出文件 //下面只要以树形结构来读取文档就万事OK啦 printf("Pizza:\n"); b = iniparser_getboolean(ini, "pizza:ham", -1); printf("Ham: [%d]\n", b); b = iniparser_getboolean(ini, "pizza:mushrooms", -1); printf("Mushrooms: [%d]\n", b); b = iniparser_getboolean(ini, "pizza:capres", -1); printf("Capres: [%d]\n", b); b = iniparser_getboolean(ini, "pizza:cheese", -1); printf("Cheese: [%d]\n", b); printf("Wine:\n"); s = iniparser_getstring(ini, "wine:grape", NULL); printf("Grape: [%s]\n", s ? s : "UNDEF"); i = iniparser_getint(ini, "wine:year", -1); printf("Year: [%d]\n", i); s = iniparser_getstring(ini, "wine:country", NULL); printf("Country: [%s]\n", s ? s : "UNDEF"); d = iniparser_getdouble(ini, "wine:alcohol", -1.0); printf("Alcohol: [%g]\n", d); iniparser_freedict(ini); system("PAUSE"); //记得最后要释放文件啊 return 0 ; }