1. 程式人生 > >Qt——軟體設定引數檔案快速讀取

Qt——軟體設定引數檔案快速讀取

每個軟體多多少少都會存在一些自己的引數,需要依靠配置檔案對軟體進行後臺改動,當引數數量不是很多的時候解析不是很困難,但是如果引數數量比較多的時候在解析的時候會比較麻煩的。

.ini 檔案是Initialization File的縮寫,即初始化檔案,是windows的系統配置檔案所採用的儲存格式,統管windows的各項配置,一般使用者就用windows提供的各項圖形化管理介面就可實現相同的配置了。但在某些情況,還是要直接編輯ini才方便。所以我們引數配置檔案使用的是ini檔案

整體的思路是將ini配置檔案使用QFile讀入,然後按照我們寫的固定格式進行解析放入到ini檔案中。
下邊是我們ini檔案的格式。使用[]設定類別,具體引數使用等號進行賦值。

[parameter]
Length = 1
Width = 2
Weight = 3
Volume = 4

下邊我們對上邊引數檔案進行解析,對檔案進行一行一行讀取,判斷該行等式中存在等號我們就使用QMap對變數名稱與數值進行儲存

QMap<Key,T>是Qt容器型別的一種,它通過(Key, value)儲存一對值,並通過Key可以查詢與之關聯的value的值。

QMap<QString, QString> params;

void ReadIni::ReadFromIni(QString fileName)
{
    QFile file
(fileName); file.open(QIODevice::ReadOnly); while(!file.atEnd()) { QString line = file.readLine(); if(!line.contains("=")) continue; int eqindex = line.indexOf("="); QString key = line.left(eqindex - 1); QString value = line.mid(eqindex +
2, line.length() - eqindex -4); params.insert(key,value); } }

當上邊的操作執行操作結束以後就可以利用QMap對數值進行查詢複製。比如說我們想獲取配置檔案中的長度數值,我們就可以進行。

float Length = track->Ra = readini->params["Length "].toFloat();

這樣就可以利用鍵值查詢將相應的字串讀出來再轉換為我們想要的格式。

參考

ini檔案_百度百科