Qt讀寫ini文件


一 背景

 

1 ini文件介紹

.ini 文件是Initialization File的縮寫,即初始化文件。

除了windows現在很多其他操作系統下面的應用軟件也有.ini文件,用來配置應用軟件以實現不同用戶的要求。一般不用直接編輯這些.ini文件,應用程序的圖形界面即可操作以實現相同的功能。它可以用來存放軟件信息,注冊表信息等。

 

2 ini文件格式

INI文件由節、鍵、值組成。 

  [section] 

參數(鍵=值)

name=value

 

下面是一個ini文件的例子

[Section1 Name]   

KeyName1=value1   

KeyName2=value2   

...   

[Section2 Name]   

KeyName21=value21   

KeyName22=value22   

 

其中:[Section1 Name]用來表示一個段落。因為INI文件可能是項目中共用的,所以使用[Section Name]段名來區分不同用途的參數區。例如:[Section1 Name]表示傳感器靈敏度參數區;[Section2 Name]表示測量通道參數區等等。

注解:使用分號表示(;)。在分號后面的文字,直到該行結尾都全部為注解。

 

 

二 Qt寫ini文件

  1.  
    #include <QtCore/QCoreApplication>
  2.  
    #include <QSettings>
  3.  
    int main(int argc, char *argv[])
  4.  
    {
  5.  
    QCoreApplication a(argc, argv);
  6.  
    //Qt中使用QSettings類讀寫ini文件
  7.  
    //QSettings構造函數的第一個參數是ini文件的路徑,第二個參數表示針對ini文件,第三個參數可以缺省
  8.  
    QSettings *configIniWrite = new QSettings("hahaya.ini", QSettings::IniFormat);
  9.  
    //向ini文件中寫入內容,setValue函數的兩個參數是鍵值對
  10.  
    //向ini文件的第一個節寫入內容,ip節下的第一個參數
  11.  
    configIniWrite->setValue( "/ip/first", "192.168.0.1");
  12.  
    //向ini文件的第一個節寫入內容,ip節下的第二個參數
  13.  
    configIniWrite->setValue( "ip/second", "127.0.0.1");
  14.  
    //向ini文件的第二個節寫入內容,port節下的第一個參數
  15.  
    configIniWrite->setValue( "port/open", "2222");
  16.  
    //寫入完成后刪除指針
  17.  
    delete configIniWrite;
  18.  
     
  19.  
    return a.exec();
  20.  
    }


 

運行程序后,打開程序目錄下的hahaya.ini文件,結果如下圖所示:

 

三 Qt讀ini文件

  1.  
    #include <QtCore/QCoreApplication>
  2.  
    #include <QSettings>
  3.  
    #include <QString>
  4.  
    #include <QDebug>
  5.  
    int main(int argc, char *argv[])
  6.  
    {
  7.  
    QCoreApplication a(argc, argv);
  8.  
     
  9.  
    QSettings *configIniRead = new QSettings("hahaya.ini", QSettings::IniFormat);
  10.  
    //將讀取到的ini文件保存在QString中,先取值,然后通過toString()函數轉換成QString類型
  11.  
    QString ipResult = configIniRead->value( "/ip/second").toString();
  12.  
    QString portResult = configIniRead->value( "/port/open").toString();
  13.  
    //打印得到的結果
  14.  
    qDebug() << ipResult;
  15.  
    qDebug() << portResult;
  16.  
    //讀入入完成后刪除指針
  17.  
    delete configIniRead;
  18.  
    return a.exec();
  19.  
    }


 

程序運行截圖:

 

轉自:https://blog.csdn.net/qiurisuixiang/article/details/7760828


免責聲明!

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



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