return (strcasecmp(str1.c_str(), str2.c_str()) < 0);
}
//---------------------------------------------------------------------------
-CONFIGFILE::CONFIGFILE(const string & fn)
+CONFIGFILE::CONFIGFILE(const string & fn, bool nook)
: param_val(StringCaseCmp),
fileName(fn),
error(0)
{
ifstream f(fileName.c_str());
-//FILE * f = fopen(fileName.c_str(), "rt");
if (!f)
{
- error = -1;
+ if (!nook)
+ error = -1;
return;
}
string line;
while (getline(f, line))
{
- /*unsigned char c = fgetc(f);
- while (!feof(f))
- {
- if (c == '\n')
- break;
- line.push_back(c);
- c = fgetc(f);
- }*/
-
size_t pos = line.find('#');
if (pos != string::npos)
line.resize(pos);
if (line.find_first_not_of(" \t\r") == string::npos)
continue;
- /*bool emptyLine = true;
- for (unsigned int i = 0; i < line.size(); i++)
- {
- if (line[i] != ' ' && line[i] != '\t' && line[i] != '\n' && line[i] != '\r')
- {
- emptyLine = false;
- break;
- }
- }
- if (emptyLine)
- {
- continue;
- }*/
-
pos = line.find_first_of('=');
if (pos == string::npos)
{
map<string, string>::const_iterator it = param_val.begin();
while (it != param_val.end())
{
- f << it->first << "=" << it->second << endl;
+ f << it->first << "=" << it->second << "\n";
it++;
}
class CONFIGFILE
{
public:
- CONFIGFILE(const string & fn);
+ CONFIGFILE(const string & fn, bool nook = false);
~CONFIGFILE();
const string & GetFileName() const;
int ReadULongLongInt(const string & param, uint64_t *, uint64_t) const;
int ReadDouble(const string & param, double * val, double defaultVal) const;
- //int WriteString(const string & param, const char * val);
+ int WriteString(const string & param, const char * val) { return WriteString(param, std::string(val)); }
int WriteString(const string & param, const string & val);
int WriteInt(const string & param, int64_t val);
int WriteDouble(const string & param, double val);