merge successful with staging
[biocity.git] / src / ConfReader.cpp
blob5984de44dd4eafe50bac8a4e5be94c3f9d1f7107
1 #include "ConfReader.hh"
3 ConfReader::ConfReader( string _filename )
5 filename = _filename;
6 ifstream conf( filename.c_str(), ios::out );
7 read_success = conf.is_open();
9 fields[0] = "default";
10 values[0] = "-1";
12 string curr_line;
13 string curr_field;
14 string curr_value;
16 int data_begin;
17 int i = 1;
19 if (read_success)
21 while ( !conf.eof() )
23 getline( conf, curr_line );
24 if ( curr_line.substr(0,1) != "#" )
26 data_begin = curr_line.find_first_of(":");
27 if (data_begin != -1)
29 curr_field = curr_line.substr(0,data_begin);
30 curr_value = curr_line.substr(data_begin + 1,
31 curr_line.length() - 1);
32 fields[i] = curr_field;
33 values[i] = curr_value;
34 if (i < 16) { i++; }
41 bool ConfReader::field_int( string _field, int *field)
43 stringstream value;
44 int result;
45 bool found = false;
46 int i = 1;
48 while( i < 16 && !found )
50 if (fields[i]==_field)
52 value.str( values[i] );
53 found = true;
55 i++;
57 if (!found)
59 return false;
61 value>>result;
62 *field = result;
63 return found;
66 bool ConfReader::field_double( string _field, double *field)
68 stringstream value;
69 double result;
70 bool found = false;
71 int i = 1;
73 while( i < 16 && !found )
75 if (fields[i]==_field)
77 value.str( values[i] );
78 found = true;
80 i++;
82 if (!found)
84 return false;
86 value>>result;
87 *field = result;
88 return found;
91 bool ConfReader::field_string( string _field, string *field)
93 stringstream value;
94 string result;
95 bool found = false;
96 int i = 1;
98 while( i < 16 && !found )
100 if (fields[i]==_field)
102 value.str( values[i] );
103 found = true;
105 i++;
107 if (!found)
109 return false;
111 value>>result;
112 *field = result;
113 return found;
117 bool ConfReader::success( )
119 return read_success;