MFC文件讀寫之ini文件

什麼是ini文件?windows

initialization File,即爲初始化文件,是windows的系統配置文件所採用的存儲格式,統管windows的各項配置。或者做爲項目中的配置文件,爲整個項目所共用。函數

文件格式爲 節、鍵、值。其中節爲[Section name], 參數爲 key(鍵)=value(值)。spa

ini文件中註解使用分號表示(;),在分號後面的文字,直到該行結尾都所有爲註解。指針

[Section Name]用來表示一個段落,INI文件多是項目中共用的,因此使用[Section Name]段名來區分不一樣用途的參數區。key就用來表示參數名,value表示對應的值。字符串

ini文件讀原型

一、從系統的win.ini文件中讀取信息string

(1) 讀取字符串it

DWORD GetProfileString(io

LPCTSTR lpAppName, // 節名【不區分大小寫】class

LPCTSTR lpKeyName, // 鍵名,讀取該鍵的值【不區分大小寫

LPCTSTR lpDefault, // 若指定的鍵不存在,該值做爲讀取的默認值

LPTSTR lpReturnedString, // 一個指向緩衝區的指針,接收讀取的字符串

DWORD nSize // 指定lpReturnedString指向的緩衝區的大小

)

如:

CString str;

::GetProfileString("Test","id","Error",str.GetBuffer(20),20);

(2) 讀取整數

UINT GetProfileInt(

LPCTSTR lpAppName, // 同上

LPCTSTR lpKeyName, // 同上

INT nDefault // 若指定的鍵名不存在,該值做爲讀取的默認值

)

2 從本身的ini文件中讀取信息

函數原型

DWORD GetPrivateProfileString(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 lpAppName,

LPCTSTR lpKeyName,

LPCTSTR lpDefault,

LPTSTR lpReturnedString,

DWORD nSize,

LPCTSTR lpFileName

)

DWORDGetPrivateProfileInt (string lpszSection,string lpszKey,long lpszDefault, lpszFile)爲初始化文件中指定的條目獲取一個整數值,參數列表跟上文取String一致,而第三個參數是若是找不到則返回一個默認的long類型的值。

特別注意的是 若是找到的數字不是一個合法的整數,函數會返回其中合法的一部分。好比「xyz=55zz」這個條目,函數返回55。

UINTGetPrivateProfileInt(
LPCTSTRlpAppName,
LPCTSTRlpKeyName,
INTnDefault,
LPCTSTRlpFileName
);

寫INI文件

1. 把信息寫入系統的win.ini文件

BOOL WriteProfileString(

LPCTSTR lpAppName, // 節的名字,是一個以0結束的字符串

LPCTSTR lpKeyName, // 鍵的名字,是一個以0結束的字符串。若爲NULL,則刪除整個節

LPCTSTR lpString // 鍵的值,是一個以0結束的字符串。若爲NULL,則刪除對應的鍵

)

2. 把信息寫入本身定義的.ini文件

BOOL WritePrivateProfileString(

LPCTSTR lpAppName, // 同上

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系列的語言中,轉義字符'\\'表示反斜線'\'。另外,當使用相對路徑時,\\前的.號不能丟掉了。

相關文章
相關標籤/搜索