您的位置:首页 > 编程语言 > Qt开发

QT 使用QSettings读写ini配置文件

2013-09-11 14:27 531 查看
利用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 ;
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: