.ini文件的读写
一直用Qt开发,无奈最近却要用MFC搞个东西,估计以后也不会用它开发,先记录下来,免得到时用时忘了。
ini文件由若干个节(Section)组成,每个Section由若干键(Key)组成,每个Key可以赋相应的值。读写ini文件实际上就是读写某个的Section中相应的Key的值。
MFC中读写ini文件:
1、把信息写入自己定义的.ini文件
BOOL WritePrivateProfileString(LPCTSTR lpAppName,
LPCTSTR lpKeyName,
LPCTSTR lpString,
LPCTSTR lpFileName //要写入的文件的文件名,若该ini文件与程序在同一个目录下,也可使用相对路径,否则要给出绝对路径。)
如:
::WritePrivateProfileString("CONFIGINFO","SOFT VERSION",m_SoftVer,".\\SET_NO2.ini");//将m_SoftVer的内容写进SET_NO2.ini
注,当使用相对路径时,\\前的.号不能丢掉了。
2、从.ini文件中读取信息
(1)、读取字符串
DWORD GetPrivateProfileString(LPCTSTR lpAppName,
LPCTSTR lpKeyName,
LPCTSTR lpDefault,
LPCTSTR lpReturnedString,
DWORD nSize,
LPCTSTR lpFileName)。
如:
::GetPrivateProfileString("CONFIGINFO","BAND","Error",strBandProof.GetBuffer(5),5,".\\SET_NO2.ini");
(2)、读取整数
UINT GetPrivateProfileInt(LPCTSTR lpAppName,
LPCTSTR lpKeyName,
INT nDefault,
LPCTSTR lpFileName)
如果用以下语句写入年龄信息:
::WritePrivateProfileString("Test","age","34",".\\exp.ini");
则可以用以下语句读取age的值:
int age;
age=::GetPrivateProfileInt("Test","age",0,".exp.ini");
Qt下:
写进.ini文件:
strIniDir = QCoreApplication::applicationDirPath() + "/config.ini"; QSettings *ConfigIni = new QSettings(strIniDir,QSettings::IniFormat,0); ConfigIni->setValue("Port",Params.PortName);
读取.ini文件:
strIniDir = QCoreApplication::applicationDirPath() +"/config.ini"; QSettings *ConfigIni = new QSettings(strIniDir,QSettings::IniFormat,0); PortName=ConfigIni->value("Port",PortName).toString();
- 无匹配