配置檔案中經常用到ini檔案,在vc中其函式分別為:
//寫入.ini檔案:
//讀取.ini檔案:
//讀取整形值:
例子:
寫入:
結果:(ini檔案中顯示如下:)cstring strname,strtemp;
int nage;
strname = "jacky";
nage = 13;
writeprivateprofilestring("student","name",strname,"c:\\setting.ini");
[student]讀取:name=jacky
結果:cstring sname;
getprivateprofilestring("student","name","defaultname",sname.getbuffer(max_length),max_length,"c:\\setting.ini");
sname = 「jacky」;這裡需要注意點就是用完getbuffer函式後一定要釋放(用sname.releasebuffer()函式),不然後面再用到sname的其他子函式就會失靈。
讀整數比較簡單,如下:
int result = getprivateprofileint("student","nage",0,"c:\\setting.ini")
返回值即為所讀取的結果!
在getprivateprofilestring最後乙個引數是配置檔案路徑的引數,此路徑只能是絕對路徑,不能是相對路徑,但現在我需要是我的exe檔案能和我的配置檔案在一起。因此我使用了getcurrentdirectory函式。
getcurrentdirectory只是返回作業系統的當前目錄dword getcurrentdirectory(
dwordnbufferlength,// size of directory buffer 緩衝區的長度
lptstrlpbuffer// directory buffer 指定乙個預定義字串,用於裝載當前目錄
);
原**如下:
注意:在這裡使用cstring變數時,在使用完getbuffer後,緊接著一定要使用releasebuffer()函式,才可以進行其他的諸如字串+操作。cstring server_ip;
cstring des=""
; ::getcurrentdirectory(max_pathlength,des.getbuffer(max_pathlength));
des.releasebuffer();
des+="\\config.ini"
;getprivateprofilestring("phonedemo","server_ip","",server_ip.getbuffersetlength(15),15,des);
server_ip.releasebuffer();
用writeprofilestring和writeprofileint來對登錄檔進行了寫入操作
用getprofileint和getprofilestring對登錄檔進行了讀取操作
注意:這幾個函式只能用於對登錄檔的操作,這也是和writeprivateprofilestring、getprivateprofilestring的區別,後者是對ini檔案的讀寫
(2)具體操作如下:
// 以下**放到initinstance中
// 首先清除登錄檔鍵值變數所分配的記憶體空間
free((void*)m_pszregistrykey);
// 再清除ini變數
free((void*)m_pszprofilename);
// 改變ini檔名.
cstring filepathtemp ="";
char filepath[max_path]=;
::getcurrentdirectory(max_path,filepath);
filepathtemp=cstring(filepath);
if(filepathtemp.right(1)!="\\")
cstring profilepath = filepathtemp+"canshu.ini";
m_pszprofilename=_tcsdup("profilepath ");
進行完以上設定後我就可以直接使用getprofilestring 、writeprofilestring等函式進行操作了。
cstring getprofilestring( lpctstr lpszsection, lpctstr lpszentry, lpctstr lpszdefault = null );
1、返回值
返回值是應用程式的.ini檔案中的字串,如果找不到該字串,則為lpszdefault。框架支援的字串最大長度為_max_path。如果lpszdefault為null,則返回值是乙個空字串。
2、引數: lpszsection 指向乙個以null結尾的字串,指定了包含入口的部分。
3、說明
呼叫這個函式以獲得與應用程式的登錄檔或.ini檔案中指定部分的入口相關的字串。
這些入口按照如下方式儲存:
·windows nt 該值儲存在登錄檔中
·windows 3.x 該值儲存在win.ini檔案中
·windows 95 該值儲存在win.ini的緩衝版本中
4、示例
(3)登錄檔存放的位置:cstring strsection = "my section";
cstring strstringitem = "my string item";
cstring strintitem = "my int item";
cstring strvalue;
assert(strvalue == "test");
int nvalue;
assert(nvalue == 1234);
開始-執行->輸入regedit->hey-current-user->software下,找即可。
MFC配置檔案讀寫
獲取當前檔案路徑 函式原型 dword getcurrentdirectory dword nbufferlength,lpwstr lpbuffer 函式返回值 返回0表示失敗,當函式呼叫成功將返回寫入緩衝區的字串長度 緩衝區長度 1 使用已定義的常量max path 260 2 使用給函式傳入n...
MFC 讀寫配置檔案 ini
1 寫ini檔案 把student.ini 放到c盤根目錄下,路徑也可以在程式裡的兩個函式調整 bool writeprivateprofilestring lpctstr lpkeyname,lpctstr lpstring,lpctstr lpfilename 其中各引數的意義 lpctstr ...
讀寫配置檔案
windows作業系統專門為此提供了6個api函式來對配置設定檔案進行讀 寫 getprivateprofileint 從私有初始化檔案獲取整型數值 getprivateprofilestring 從私有初始化檔案獲取字串型值 getprofileint 從win.ini 獲取整數值 getprof...