INI文件读写

使用QSetting类,有两种实现方式
(1)通过键值对
(2)通过组

1、添加依赖文件

#include 
#include 

2、头文件

bool WriteIniFile(const QString fileName="");
bool ReadIniFile(const QString fileName="");

2、源文件

bool Widget::WriteIniFile(const QString fileName/*=""*/)
{
    QSettings * ini = new QSettings("config.ini", QSettings::IniFormat);//构造QSettings对象,访问ini文件
  
    //方式1:键值对
    ini->setValue("server/ip", "127.0.0.1");
    ini->setValue("server/port", "7999");
    ini->setValue("server/clientNumber", "8");
    
    ini->setValue("server2/ip", "192.168.0.1");
    ini->setValue("server2/port", "8000");
    ini->setValue("server2/clientNumber", "10");
    
    
    //方式2:组
    ini->beginGroup("client");
    ini->setValue("connectIp","127.0.0.1");
    ini->setValue("connectPort","7999");
    ini->endGroup();
    
    ini->beginGroup("client2");
    ini->setValue("connectIp2","192.168.0.1");
    ini->setValue("connectPort2","8000");
    ini->endGroup();

   delete ini;

   return true;
}
bool Widget::ReadIniFile(const QString fileName/*=""*/)
{
    QSettings * ini = new QSettings("config.ini", QSettings::IniFormat);

    //方式1:键值对
    QString serverIp    = ini->value("server/ip").toString();
    int serverPort      = ini->value("server/port").toInt();
    int clientNumber    = ini->value("server/clientNumber").toInt();
    qDebug().nospace() << "server/serverIp="       << serverIp;
    qDebug().nospace() << "server/serverPort="     << serverPort;
    qDebug().nospace() << "server/clientNumber="   << clientNumber;
 
    QString server2Ip    = ini->value("server2/ip").toString();
    int server2Port      = ini->value("server2/port").toInt();
    int client2Number    = ini->value("server2/clientNumber").toInt();
    qDebug().nospace() << "server2/serverIp="       << server2Ip;
    qDebug().nospace() << "server2/serverPort="     << server2Port;
    qDebug().nospace() << "server2/clientNumber="   << client2Number;


    //方式2:组
    //注意:需要从group中读出,否则将读不出来
    ini->beginGroup("client");
    QString connectIp = ini->value("connectIp", "").toString();
    int connectPort = ini->value("connectPort", -1).toInt();
    ini->endGroup();
    qDebug().nospace() << "client: ";
    qDebug().nospace() << "connectIp="       << connectIp;
    qDebug().nospace() << "connectPort="     << connectPort;

    ini->beginGroup("client2");
    QString connect2Ip = ini->value("connectIp", "").toString();
    int connect2Port = ini->value("connectPort", -1).toInt();
    ini->endGroup();
    qDebug().nospace() << "client2: ";
    qDebug().nospace() << "connectIp="       << connect2Ip;
    qDebug().nospace() << "connectPort="     << connect2Port;
    
    delete ini;

    return true;
}

你可能感兴趣的:(Qt,编程,qt,c++,ini,vs)