more general string<->value functions

This commit is contained in:
Glenn Maynard
2004-12-07 01:43:06 +00:00
parent d9cfe446ce
commit c37a82ed40
3 changed files with 82 additions and 54 deletions
+16 -54
View File
@@ -124,67 +124,29 @@ bool IniFile::GetValue( const CString &keyname, const CString &valuename, CStrin
return true;
}
bool IniFile::GetValue(const CString &keyname, const CString &valuename, int& value) const
{
CString sValue;
if( !GetValue(keyname,valuename,sValue) )
return false;
sscanf( sValue.c_str(), "%d", &value );
return true;
}
bool IniFile::GetValue(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;
}
bool IniFile::GetValue(const CString &keyname, const CString &valuename, float& value) const
{
CString sValue;
if( !GetValue(keyname,valuename,sValue) )
return false;
value = strtof( sValue, NULL );
return true;
}
bool IniFile::GetValue( const CString &keyname, const CString &valuename, bool& value ) const
{
CString sValue;
if( !GetValue(keyname,valuename,sValue) )
return false;
value = atoi(sValue) != 0;
return true;
}
bool IniFile::SetValue( const CString &keyname, const CString &valuename, const CString &value )
{
keys[keyname][valuename] = value;
return true;
}
bool IniFile::SetValue( const CString &keyname, const CString &valuename, int value )
{
return SetValue( keyname, valuename, ssprintf("%d",value) );
}
#define TYPE(T) \
bool IniFile::GetValue( const CString &keyname, const CString &valuename, T &value ) const \
{ \
CString sValue; \
if( !GetValue(keyname,valuename,sValue) ) \
return false; \
return FromString( sValue, value ); \
} \
bool IniFile::SetValue( const CString &keyname, const CString &valuename, T value ) \
{ \
return SetValue( keyname, valuename, ToString(value) ); \
}
bool IniFile::SetValue( const CString &keyname, const CString &valuename, unsigned value )
{
return SetValue( keyname, valuename, ssprintf("%u",value) );
}
bool IniFile::SetValue( const CString &keyname, const CString &valuename, float value )
{
return SetValue( keyname, valuename, ssprintf("%f",value) );
}
bool IniFile::SetValue( const CString &keyname, const CString &valuename, bool value )
{
return SetValue( keyname, valuename, ssprintf("%d",value) );
}
TYPE(int);
TYPE(unsigned);
TYPE(float);
TYPE(bool);
bool IniFile::DeleteValue(const CString &keyname, const CString &valuename)
{