0,0 → 1,117 |
#include <stdio.h> |
#include <stdlib.h> |
#include <string.h> |
#include <unistd.h> |
|
#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\ |
#\n\ |
# This is an example of ini file\n\ |
#\n\ |
\n\ |
[Pizza]\n\ |
\n\ |
Ham = yes ;\n\ |
Mushrooms = TRUE ;\n\ |
Capres = 0 ;\n\ |
Cheese = NO ;\n\ |
\n\ |
\n\ |
[Wine]\n\ |
\n\ |
Grape = Cabernet Sauvignon ;\n\ |
Year = 1989 ;\n\ |
Country = Spain ;\n\ |
Alcohol = 12.5 ;\n\ |
\n\ |
#\n\ |
# end of file\n\ |
#\n"); |
|
fclose(ini); |
} |
|
|
int parse_ini_file(char * ini_name) |
{ |
dictionary * ini ; |
|
/* Some temporary variables to hold query results */ |
int b ; |
int i ; |
double d ; |
char * s ; |
|
ini = iniparser_load(ini_name); |
if (ini==NULL) { |
fprintf(stderr, "cannot parse file [%s]", ini_name); |
return -1 ; |
} |
iniparser_dump(ini, stderr); |
|
/* Get pizza attributes */ |
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); |
|
/* Get wine attributes */ |
printf("Wine:\n"); |
s = iniparser_getstr(ini, "wine:grape"); |
if (s) { |
printf("grape: [%s]\n", s); |
} else { |
printf("grape: not found\n"); |
} |
i = iniparser_getint(ini, "wine:year", -1); |
if (i>0) { |
printf("year: [%d]\n", i); |
} else { |
printf("year: not found\n"); |
} |
s = iniparser_getstr(ini, "wine:country"); |
if (s) { |
printf("country: [%s]\n", s); |
} else { |
printf("country: not found\n"); |
} |
d = iniparser_getdouble(ini, "wine:alcohol", -1.0); |
if (d>0.0) { |
printf("alcohol: [%g]\n", d); |
} else { |
printf("alcohol: not found\n"); |
} |
|
iniparser_freedict(ini); |
return 0 ; |
} |
|
|