Const fixes.

Add unsigned values.
Remove old, outdated, redundant comments.
Simplify.
This commit is contained in:
Glenn Maynard
2003-05-22 19:35:57 +00:00
parent 383779f2fc
commit 1edc1a325c
2 changed files with 37 additions and 44 deletions
+27 -34
View File
@@ -46,9 +46,7 @@ bool IniFile::ReadFile()
return 0; return 0;
} }
CString keyname, valuename, value; CString line, keyname;
CString temp;
CString line;
while (getline(file, line)) while (getline(file, line))
{ {
if(line.size() >= 3 && if(line.size() >= 3 &&
@@ -71,17 +69,15 @@ bool IniFile::ReadFile()
if (line[0] == '[' && line[line.GetLength()-1] == ']') //if a section heading if (line[0] == '[' && line[line.GetLength()-1] == ']') //if a section heading
{ {
keyname = line; keyname = line.substr(1, line.size()-2);
TrimLeft(keyname, "[");
TrimRight(keyname, "]");
} }
else //if a value else //if a value
{ {
int iEqualIndex = line.Find("="); int iEqualIndex = line.Find("=");
if( iEqualIndex != -1 ) if( iEqualIndex != -1 )
{ {
valuename = line.Left(iEqualIndex); CString valuename = line.Left(iEqualIndex);
value = line.Right(line.GetLength()-valuename.GetLength()-1); CString value = line.Right(line.GetLength()-valuename.GetLength()-1);
SetValue(keyname,valuename,value); SetValue(keyname,valuename,value);
} }
} }
@@ -135,8 +131,7 @@ int IniFile::GetNumValues(const CString &keyname) const
} }
// gets value of [keyname] valuename = // gets value of [keyname] valuename =
// overloaded to return CString, int, and double bool IniFile::GetValue(const CString &keyname, const CString &valuename, CString& value) const
bool IniFile::GetValue(const CString &keyname, const CString &valuename, CString& value)
{ {
keymap::const_iterator k = keys.find(keyname); keymap::const_iterator k = keys.find(keyname);
if (k == keys.end()) if (k == keys.end())
@@ -158,36 +153,39 @@ bool IniFile::GetValue(const CString &keyname, const CString &valuename, CString
} }
// gets value of [keyname] valuename = // gets value of [keyname] valuename =
// overloaded to return CString, int, and double bool IniFile::GetValueI(const CString &keyname, const CString &valuename, int& value) const
bool IniFile::GetValueI(const CString &keyname, const CString &valuename, int& value)
{ {
CString sValue; CString sValue;
bool bSuccess = GetValue(keyname,valuename,sValue); if( !GetValue(keyname,valuename,sValue) )
if( !bSuccess )
return false; return false;
value = atoi(sValue); sscanf( sValue.c_str(), "%d", &value );
return true;
}
bool IniFile::GetValueU(const CString &keyname, const CString &valuename, unsigned &value) const
{
CString sValue;
if( !GetValue(keyname,valuename,sValue) )
return false;
sscanf( sValue.c_str(), "%u", &value );
return true; return true;
} }
// gets value of [keyname] valuename = // gets value of [keyname] valuename =
// overloaded to return CString, int, and double bool IniFile::GetValueF(const CString &keyname, const CString &valuename, float& value) const
bool IniFile::GetValueF(const CString &keyname, const CString &valuename, float& value)
{ {
CString sValue; CString sValue;
bool bSuccess = GetValue(keyname,valuename,sValue); if( !GetValue(keyname,valuename,sValue) )
if( !bSuccess )
return false; return false;
value = (float)atof(sValue); sscanf( sValue.c_str(), "%f", &value );
return true; return true;
} }
// gets value of [keyname] valuename = // gets value of [keyname] valuename =
// overloaded to return CString, int, and double bool IniFile::GetValueB(const CString &keyname, const CString &valuename, bool& value) const
bool IniFile::GetValueB(const CString &keyname, const CString &valuename, bool& value)
{ {
CString sValue; CString sValue;
bool bSuccess = GetValue(keyname,valuename,sValue); if( !GetValue(keyname,valuename,sValue) )
if( !bSuccess )
return false; return false;
value = atoi(sValue) != 0; value = atoi(sValue) != 0;
return true; return true;
@@ -196,7 +194,6 @@ bool IniFile::GetValueB(const CString &keyname, const CString &valuename, bool&
// sets value of [keyname] valuename =. // sets value of [keyname] valuename =.
// specify the optional paramter as false (0) if you do not want it to create // specify the optional paramter as false (0) if you do not want it to create
// the key if it doesn't exist. Returns true if data entered, false otherwise // the key if it doesn't exist. Returns true if data entered, false otherwise
// overloaded to accept CString, int, and double
bool IniFile::SetValue(const CString &keyname, const CString &valuename, const CString &value, bool create) bool IniFile::SetValue(const CString &keyname, const CString &valuename, const CString &value, bool create)
{ {
if (!create && keys.find(keyname) == keys.end()) //if key doesn't exist if (!create && keys.find(keyname) == keys.end()) //if key doesn't exist
@@ -213,25 +210,21 @@ bool IniFile::SetValue(const CString &keyname, const CString &valuename, const C
// sets value of [keyname] valuename =. // sets value of [keyname] valuename =.
// specify the optional paramter as false (0) if you do not want it to create // specify the optional paramter as false (0) if you do not want it to create
// the key if it doesn't exist. Returns true if data entered, false otherwise // the key if it doesn't exist. Returns true if data entered, false otherwise
// overloaded to accept CString, int, and double
bool IniFile::SetValueI(const CString &keyname, const CString &valuename, int value, bool create) bool IniFile::SetValueI(const CString &keyname, const CString &valuename, int value, bool create)
{ {
return SetValue(keyname, valuename, ssprintf("%d",value), create); return SetValue(keyname, valuename, ssprintf("%d",value), create);
} }
// sets value of [keyname] valuename =. bool IniFile::SetValueU(const CString &keyname, const CString &valuename, unsigned value, bool create)
// specify the optional paramter as false (0) if you do not want it to create {
// the key if it doesn't exist. Returns true if data entered, false otherwise return SetValue(keyname, valuename, ssprintf("%u",value), create);
// overloaded to accept CString, int, and double }
bool IniFile::SetValueF(const CString &keyname, const CString &valuename, float value, bool create) bool IniFile::SetValueF(const CString &keyname, const CString &valuename, float value, bool create)
{ {
return SetValue(keyname, valuename, ssprintf("%f",value), create); return SetValue(keyname, valuename, ssprintf("%f",value), create);
} }
// sets value of [keyname] valuename =.
// specify the optional paramter as false (0) if you do not want it to create
// the key if it doesn't exist. Returns true if data entered, false otherwise
// overloaded to accept CString, int, and double
bool IniFile::SetValueB(const CString &keyname, const CString &valuename, bool value, bool create) bool IniFile::SetValueB(const CString &keyname, const CString &valuename, bool value, bool create)
{ {
return SetValue(keyname, valuename, ssprintf("%d",value), create); return SetValue(keyname, valuename, ssprintf("%d",value), create);
+10 -10
View File
@@ -39,7 +39,7 @@ public:
//will contain error info if one occurs //will contain error info if one occurs
//ended up not using much, just in ReadFile and GetValue //ended up not using much, just in ReadFile and GetValue
CString error; mutable CString error;
//constructor, can specify pathname here instead of using SetPath later //constructor, can specify pathname here instead of using SetPath later
IniFile(CString inipath = ""); IniFile(CString inipath = "");
@@ -68,22 +68,22 @@ public:
int GetNumValues(const CString &keyname) const; int GetNumValues(const CString &keyname) const;
//gets value of [keyname] valuename = //gets value of [keyname] valuename =
//overloaded to return CString, int, and double,
//returns "", or 0 if key/value not found. Sets error member to show problem //returns "", or 0 if key/value not found. Sets error member to show problem
bool GetValue(const CString &key, const CString &valuename, CString& value); bool GetValue(const CString &key, const CString &valuename, CString& value) const;
bool GetValueI(const CString &key, const CString &valuename, int& value); bool GetValueI(const CString &key, const CString &valuename, int& value) const;
bool GetValueF(const CString &key, const CString &valuename, float& value); bool GetValueU(const CString &key, const CString &valuename, unsigned& value) const;
bool GetValueB(const CString &key, const CString &valuename, bool& value); bool GetValueF(const CString &key, const CString &valuename, float& value) const;
bool GetValue(const CString &key, const CString &valuename, int& value) { return GetValueI(key, valuename, value); } bool GetValueB(const CString &key, const CString &valuename, bool& value) const;
bool GetValue(const CString &key, const CString &valuename, float& value) { return GetValueF(key, valuename, value); } bool GetValue(const CString &key, const CString &valuename, int& value) const { return GetValueI(key, valuename, value); }
bool GetValue(const CString &key, const CString &valuename, bool& value) { return GetValueB(key, valuename, value); } bool GetValue(const CString &key, const CString &valuename, float& value) const { return GetValueF(key, valuename, value); }
bool GetValue(const CString &key, const CString &valuename, bool& value) const { return GetValueB(key, valuename, value); }
//sets value of [keyname] valuename =. //sets value of [keyname] valuename =.
//specify the optional paramter as false (0) if you do not want it to create //specify the optional paramter as false (0) if you do not want it to create
//the key if it doesn't exist. Returns true if data entered, false otherwise //the key if it doesn't exist. Returns true if data entered, false otherwise
//overloaded to accept CString, int, and double
bool SetValue(const CString &key, const CString &valuename, const CString &value, bool create = 1); bool SetValue(const CString &key, const CString &valuename, const CString &value, bool create = 1);
bool SetValueI(const CString &key, const CString &valuename, int value, bool create = 1); bool SetValueI(const CString &key, const CString &valuename, int value, bool create = 1);
bool SetValueU(const CString &key, const CString &valuename, unsigned value, bool create = 1);
bool SetValueF(const CString &key, const CString &valuename, float value, bool create = 1); bool SetValueF(const CString &key, const CString &valuename, float value, bool create = 1);
bool SetValueB(const CString &key, const CString &valuename, bool value, bool create = 1); bool SetValueB(const CString &key, const CString &valuename, bool value, bool create = 1);
bool SetValue(const CString &key, const CString &valuename, int value, bool create = 1) { return SetValue(key, valuename, value, create); } bool SetValue(const CString &key, const CString &valuename, int value, bool create = 1) { return SetValue(key, valuename, value, create); }