• INI文件读写


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

    1、添加依赖文件

    #include 
    #include 
    
    • 1
    • 2

    2、头文件

    bool WriteIniFile(const QString fileName="");
    bool ReadIniFile(const QString fileName="");
    
    • 1
    • 2

    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;
    }
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46
    • 47
    • 48
    • 49
    • 50
    • 51
    • 52
    • 53
    • 54
    • 55
    • 56
    • 57
    • 58
    • 59
    • 60
    • 61
    • 62
    • 63
    • 64
    • 65
    • 66
    • 67
    • 68
    • 69
    • 70
    • 71
    • 72
  • 相关阅读:
    2022“杭电杯”中国大学生算法设计超级联赛(3)
    Qt 信号与槽
    AUTOSAR-UDS诊断
    mysql面试题13:MySQL中什么是异步复制?底层实现?
    《MongoDB入门教程》第01篇 MongoDB简介
    [mit6.1810] lab Utilities
    Spring源码(一)IOC之ClassPathXmlApplicationContext
    实施阴影介绍
    ​​​​MyBatis友人帐之基础入门
    C++模板——待决名
  • 原文地址:https://blog.csdn.net/weixin_45053845/article/details/133591124