最近有模块要用到读写ini文件,所以自己写了2个函数便于使用。
1.首先介绍下ini文件。ini文件一般用于保存设置等,一般的格式如下:
OptionName1 = Option1;
OptionNmae2 = Option2;
2.介绍下CStdioFile类
这是个由CFile类派生出来的类,最重要的2个函数是ReadString和WriteString,用于读写文件的一行。
3.代码
GetOption(LPCTSTR lpszFileName, LPCTSTR lpszOptionName)
{
CStdioFile m_iniFile;
CString strOption = "", strTemp = "";
int iStart = 0, iEnd = 0;
m_iniFile.Open(lpszFileName, CStdioFile::modeRead, NULL);
while (m_iniFile.ReadString(strTemp))
{
iStart = strTemp.Find(lpszOptionName);
if (iStart != -1)
break;
}
m_iniFile.Close();
iStart = strTemp.Find("=");
iEnd = strTemp.Find(";");
strOption = strTemp.Mid(iStart+2, iEnd-iStart-2);
return strOption;
}
bool SetOption(LPCTSTR lpszFileName, LPCTSTR lpszOptionName, LPCTSTR lpszOption)
{
CStdioFile m_iniFile;
CString str, strTemp;
m_iniFile.Open(lpszFileName, CStdioFile::modeRead, NULL);
while (m_iniFile.ReadString(strTemp))
{
if ( strTemp.Find(lpszOptionName) == -1)
{
str += strTemp;
str += "/n";
}
}
m_iniFile.Close();
str += lpszOptionName;
str += " = ";
str += lpszOption;
str += ";";
str += "/n";
m_iniFile.Open(lpszFileName, CStdioFile::modeWrite|CStdioFile::modeCreate, NULL);
m_iniFile.WriteString(str);
m_iniFile.Close();
return FALSE;
}