/* [<][>][^][v][top][bottom][index][help] */
DEFINITIONS
This source file includes following definitions.
- main
- create_example_ini_file
- parse_ini_file
1 #include <stdio.h>
2 #include <stdlib.h>
3 #include <string.h>
4 #include <unistd.h>
5
6 #include "iniparser.h"
7
8 void create_example_ini_file(void);
9 int parse_ini_file(char * ini_name);
10
11 int main(int argc, char * argv[])
/* [<][>][^][v][top][bottom][index][help] */
12 {
13 int status ;
14
15 if (argc<2) {
16 create_example_ini_file();
17 status = parse_ini_file("example.ini");
18 } else {
19 status = parse_ini_file(argv[1]);
20 }
21 return status ;
22 }
23
24 void create_example_ini_file(void)
/* [<][>][^][v][top][bottom][index][help] */
25 {
26 FILE * ini ;
27
28 ini = fopen("example.ini", "w");
29 fprintf(ini, "\n\
30 #\n\
31 # This is an example of ini file\n\
32 #\n\
33 \n\
34 [Pizza]\n\
35 \n\
36 Ham = yes ;\n\
37 Mushrooms = TRUE ;\n\
38 Capres = 0 ;\n\
39 Cheese = NO ;\n\
40 \n\
41 \n\
42 [Wine]\n\
43 \n\
44 Grape = Cabernet Sauvignon ;\n\
45 Year = 1989 ;\n\
46 Country = Spain ;\n\
47 Alcohol = 12.5 ;\n\
48 \n\
49 #\n\
50 # end of file\n\
51 #\n");
52
53 fclose(ini);
54 }
55
56
57 int parse_ini_file(char * ini_name)
/* [<][>][^][v][top][bottom][index][help] */
58 {
59 dictionary * ini ;
60
61 /* Some temporary variables to hold query results */
62 int b ;
63 int i ;
64 double d ;
65 char * s ;
66
67 ini = iniparser_load(ini_name);
68 if (ini==NULL) {
69 fprintf(stderr, "cannot parse file [%s]", ini_name);
70 return -1 ;
71 }
72 iniparser_dump(ini, stderr);
73
74 /* Get pizza attributes */
75 printf("Pizza:\n");
76
77 b = iniparser_getboolean(ini, "pizza:ham", -1);
78 printf("Ham: [%d]\n", b);
79 b = iniparser_getboolean(ini, "pizza:mushrooms", -1);
80 printf("Mushrooms: [%d]\n", b);
81 b = iniparser_getboolean(ini, "pizza:capres", -1);
82 printf("Capres: [%d]\n", b);
83 b = iniparser_getboolean(ini, "pizza:cheese", -1);
84 printf("Cheese: [%d]\n", b);
85
86 /* Get wine attributes */
87 printf("Wine:\n");
88 s = iniparser_getstr(ini, "wine:grape");
89 if (s) {
90 printf("grape: [%s]\n", s);
91 } else {
92 printf("grape: not found\n");
93 }
94 i = iniparser_getint(ini, "wine:year", -1);
95 if (i>0) {
96 printf("year: [%d]\n", i);
97 } else {
98 printf("year: not found\n");
99 }
100 s = iniparser_getstr(ini, "wine:country");
101 if (s) {
102 printf("country: [%s]\n", s);
103 } else {
104 printf("country: not found\n");
105 }
106 d = iniparser_getdouble(ini, "wine:alcohol", -1.0);
107 if (d>0.0) {
108 printf("alcohol: [%g]\n", d);
109 } else {
110 printf("alcohol: not found\n");
111 }
112
113 iniparser_freedict(ini);
114 return 0 ;
115 }
116
117