Subversion Repositories FlightCtrl

Rev

Rev 56 | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
56 elmo 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[])
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)
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)
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