QT 讀取配置ini檔案

2021-10-25 17:29:29 字數 3328 閱讀 8107

.ini 檔案是initialization file的縮寫,即初始化檔案。

格式:

ini配置檔案由節、鍵、值組成。

【節】

所有的引數都是以節(section)為單位結合在一起的。所有的section名稱都是獨佔一行,並且section名字都被方括號包圍著([和])。在section宣告後的所有parameters都屬於該section。乙個section沒有明顯的結束識別符號,乙個section的開始就是上乙個section的結束,或者是檔案結束。

例如:

[addr]
【引數】(鍵=值)

如:

ip=

127.0

.0.1

port=

9527

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

;addr配置ipv4位址和埠
整體如下:

[addr]

ip=192.168

.1.1

port=

5768

cvltime=

10user=plote

[system]

system-v=win10

cpu=

4

使用qsetting類讀寫ini檔案

//標頭檔案 

#include

#include

#include

qsettings *settings;

//申明乙個qsetting類函式

settings =

new qsettings (

"config.ini"

, qsettings::iniformat)

;//構建函式

//引數:引數一為配置檔案,一般位於專案檔案下,引數二表示針對ini檔案格式

寫入檔案
//向目標檔案中的config節的引數ip寫入資料192.167.1.1 ini中為ip=192.187.1.1

settings-

>

setvalue

("/system/user"

,"admin");

settings-

>

setvalue

("/system/pass"

,"123");

settings-

>

setvalue

("/system/ipaddress"

,"192.167.1.1"

);

開啟檔案效果如下:

讀取檔案:

首先可以定義乙個儲存資訊的結構體:

struct system_infomation

;

這裡常用的資料類似兩種,一種是int型,一種是qstring型別。

//先宣告結構體

system_infomation sys;

sys.port=settings->

value

("/system/port").

toint()

;sys.cnum=settings->

value

("/system/cnum").

tofloat()

;//前面定義的什麼型別,後面就轉換為什麼型別

qstring pass=settings->

value

("/system/pass").

tostring()

;

如果是字串,使用tostring將資料轉化為qstring,注意這裡的型別是qstring,不能char * paw=pass;

sys.pass=settings-

>

value

("/system/pass").

tostring()

;是錯誤的,會報錯,因為結構體中pass 的定義是char

*

如果要將ini中的資訊讀取儲存到char * 型別的結構體中,則涉及到乙個型別的轉換。

//char *型賦值

qstring pass=settings-

>

value

("/system/pass").

tostring()

;定義為char*

qbytearray pa=pass.

tolatin1()

;//將qstring類轉換為char *

sys.pass=pa.

data()

;

使用qbytearray進行轉化就可以將資訊讀取出來了。

還有一種將qstring轉化為char *的方法:

注意此方法要求char * 的定義為 const char *

//qstring與char * 轉化方法2 但是要求char*定義為 const char *

qstring pass=settings-

>

value

("/system/pass").

tostring()

; std::string str=pass.

tostdstring()

; sys.pass=str.

c_str()

;

這裡的sys.pass定義為const char *

在讀寫完後刪除指標

delete settings;
輸出

使用qdebug()輸出

qdebug()

<<

"user:"

<

qdebug()

<<

"user:"

<

qdebug()

<<

"addr:"

<

qdebug()

<<

"port"

<

qt讀取中文ini配置檔案 qt讀取ini檔案

qsettings configini new qsettings qsettings ini configini insertsearchpath qsettings unix,home dawei 配置檔案目錄 configini writeentry qstring fromutf8 conf...

qt讀取ini檔案

2010 08 26 10 53 30 標籤 ini 檔案qt 推送到技術圈 原始出處 作者資訊和本宣告。否則將追究法律責任。qsettings configini new qsettings qsettings ini configini insertsearchpath qsettings un...

qt怎麼讀取配置項 QT讀寫配置檔案 ini

ini ini檔案格式是某些平台或軟體上的配置檔案的非正式標準,以節 section 和鍵 key 構成,常用於微軟windows作業系統中。ini檔案是initialization file的縮寫,即初始化檔案。除了windows現在很多其他作業系統下面的應用軟體也有.ini檔案,用來配置應用軟體...