MFC檔案讀寫之ini檔案

2021-06-21 02:22:52 字數 2791 閱讀 1455

什麼是ini檔案?

initialization file,即為初始化檔案,是windows的系統配置檔案所採用的儲存格式,統管windows的各項配置。或者作為專案中的配置檔案,為整個專案所共用。

檔案格式為 節、鍵、值。其中節為[section name], 引數為 key(鍵)=value(值)。

ini檔案中註解使用分號表示(;),在分號後面的文字,直到該行結尾都全部為註解。

[section name]用來表示乙個段落,ini檔案可能是專案中共用的,所以使用[section name]段名來區分不同用途的引數區。key就用來表示引數名,value表示對應的值。

ini檔案讀

1、從系統的win.ini檔案中讀取資訊

(1) 讀取字串

dword getprofilestring(

lpctstr lpkeyname, // 鍵名,讀取該鍵的值【不區分大小寫】

lpctstr lpdefault, // 若指定的鍵不存在,該值作為讀取的預設值

lptstr lpreturnedstring, // 乙個指向緩衝區的指標,接收讀取的字串

dword nsize // 指定lpreturnedstring指向的緩衝區的大小)如:

cstring str;

::getprofilestring("test","id","error",str.getbuffer(20),20);

(2) 讀取整數

uint getprofileint(

lpctstr lpkeyname, // 同上

int ndefault // 若指定的鍵名不存在,該值作為讀取的預設值

)2 從自己的ini檔案中讀取資訊

函式原型

dwordgetprivateprofilestring(string lpszsection,string lpszkey,string lpszdefault, lpszreturnbuffer, cchreturnbuffer, lpszfile)

getprivateprofilestring("dbinfo","ip","",ip.getbuffer(max_path),max_path,inifilepath);【測過】

cstring ip, inifilepath.

getprivateprofilestring(section name,key,"",key.getbuffer(max_path),max_path,ini檔案路徑+檔名);

其中第乙個引數為段名,第二個引數為引數名稱,第三個引數為沒找到key返回的預設值,第四個引數為指定乙個字串緩衝區,第五個引數為指定裝載到lpreturnedstring緩衝區的最大字元數量,第六個引數為初始化檔案的名字,如沒有指定乙個完整路徑名,windows就在windows目錄中查詢檔案。

__inline dword getprivateprofilestring(

lpctstr lpkeyname,

lpctstr lpdefault,

lptstr lpreturnedstring,

dword nsize,

lpctstr lpfilename

)dword

getprivateprofileint (string lpszsection,string lpszkey,long lpszdefault, lpszfile) 為初始化檔案中指定的條目獲取乙個整數值,引數列表跟上文取string一致,而第三個引數是如果找不到則返回乙個預設的long型別的值。

特別注意的是 如果找到的數字不是乙個合法的整數,函式會返回其中合法的一部分。比如「

xyz=55zz」這個條目,函式返回55。

uint 

getprivateprofileint( 

lpctstr 

lpctstr 

lpkeyname, 

int 

ndefault, 

lpctstr 

lpfilename );

寫ini檔案

1. 把資訊寫入系統的win.ini檔案

bool writeprofilestring(

lpctstr lpkeyname, // 鍵的名字,是乙個以0結束的字串。若為null,則刪除整個節

lpctstr lpstring // 鍵的值,是乙個以0結束的字串。若為null,則刪除對應的鍵

)2. 把資訊寫入自己定義的.ini檔案

bool writeprivateprofilestring(

lpctstr lpkeyname, // 同上

lpctstr lpstring, // 同上

lpctstr lpfilename // 要寫入的檔案的檔名。若該ini檔案與程式在同乙個目錄下,也可使用相對

//路徑,否則需要給出絕度路徑。)如:

::writeprofilestring("test","id","xym");

//在win.ini中建立乙個test節,並在該節中建立乙個鍵id,其值為xym

::writeprivateprofilestring("test","id","xym","d:\\vc\\ex1\\ex1.ini");

//在ex1目錄下的ex1.ini中建立乙個test節,並在該節中建立乙個鍵id,其值為xym

//若ex1.ini檔案與讀寫該檔案的程式在同乙個目錄下,則上面語句也可寫為:

::writeprivateprofilestring("test","id","xym",".\\ex1.ini");

需要注意的是,c系列的語言中,轉義字元'\\'表示反斜線'\'。另外,當使用相對路徑時,\\前的.號不能丟掉了。

MFC 讀寫配置檔案 ini

1 寫ini檔案 把student.ini 放到c盤根目錄下,路徑也可以在程式裡的兩個函式調整 bool writeprivateprofilestring lpctstr lpkeyname,lpctstr lpstring,lpctstr lpfilename 其中各引數的意義 lpctstr ...

MFC建立及讀寫ini檔案操作

判斷檔案是否存在,如果不存在建立檔案並寫入相關資料 cfilefind finder 查詢是否存在ini檔案,若不存在,則生成乙個新的預設設定的ini檔案,這樣就保證了我們更改後的設定每次都可用 bool iffind finder.findfile t d qzze.ini if iffind i...

INI檔案讀寫

一 有必要了解ini檔案的結構 注釋 小節名 關鍵字 值 ini檔案允許有多個小節,每個小節又允許有多個關鍵字,後面是該關鍵字的值。值的型別有三種 字串 整型數值和布林值。其中字串存貯在ini檔案中時沒有引號,布林真值用1表示,布林假值用0表示。注釋以分號 開頭。二 定義 1 在inte ce的us...