.ini文件的读写

阿紫 posted @ 2012年4月11日 17:45 in c/c++ , 1268 阅读

    一直用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();
  • 无匹配

登录 *


loading captcha image...
(输入验证码)
or Ctrl+Enter