QT 使用QSettings讀寫ini配置文件


利用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 ;



 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM