利用Qsettings包一個類 RWIniFile, writeIni方法寫文件, readIni方法讀文件
rwinifile.h
#ifndef RWINIFILE_H
#define RWINIFILE_H
#include <QtGui>
class RWIniFile
{
public:
RWIniFile();
bool static writeIni(QString path, QString section,QString keyword, QString keyvalue,bool clear_flag);
bool static writeIni(QString path, QString section,QString keyword, QString keyvalue);
QString static readIni(QString path, QString section,QString keyword, QString &keyvalue);
};
#endif // RWINIFILE_H
rwinifile.cpp
#include "rwinifile.h"
RWIniFile::RWIniFile()
{
}
bool RWIniFile::writeIni(QString path, QString section,QString keyword, QString keyvalue)
{
if(path == QString(""))
{
return false;
}
else
{
//創建配置文件操作對象
QSettings *config = new QSettings(path, QSettings::IniFormat);
//將信息寫入配置文件
config->beginGroup(section);
config->setValue(keyword, keyvalue);
config->endGroup();
if(config)
{
delete config;
}
return true;
}
}
bool RWIniFile::writeIni(QString path, QString section,QString keyword, QString keyvalue, bool clear_flag)
{
if(path == QString(""))
{
return false;
}
else
{
//創建配置文件操作對象
QSettings *config = new QSettings(path, QSettings::IniFormat);
if( clear_flag == true )
config->clear();
//將信息寫入配置文件
config->beginGroup(section);
config->setValue(keyword, keyvalue);
config->endGroup();
if(config)
{
delete config;
}
return true;
}
}
QString RWIniFile::readIni(QString path, QString section,QString keyword, QString &keyvalue)
{
if(path == QString(""))
{
return false;
}
else
{
//創建配置文件操作對象
QSettings *config = new QSettings(path, QSettings::IniFormat);
keyvalue = config->value(section + "/" + keyword).toString();
if(config)
{
delete config;
}
return keyvalue;
}
}
main函數里的使用方法
RWIniFile::writeIni("log.txt", "config1", "key1", "test");
RWIniFile::writeIni("log.txt", "config1", "key2", "test2");
RWIniFile::writeIni("log.txt", "config2", "key1", "test");
RWIniFile::writeIni("log.txt", "config2", "key2", "test2");
RWIniFile::writeIni("log.txt", "config2", "key2", "test2"); //寫入不清除原配置
RWIniFile::writeIni("log.txt", "config3", "key", "hello world", false); //如果clear_flag=true,清除原配置
QString keyword;
keyword = RWIniFile::readIni(QString("log.txt"), QString("config3"), QString("key"), keyword); //讀配置文檔
qDebug() << keyword ;
