ini檔案(即initialization file),這種型別的檔案中通常存放的是乙個程式的初始化資訊。ini檔案由若干個節(section)組成,每個section由若干鍵(key)組成,每個key可以賦相應的值。讀寫ini檔案實際上就是讀寫某個的section中相應的key的值,而這只要借助幾個函式即可完成。
一、向ini檔案中寫入資訊的函式
1. 把資訊寫入系統的win.ini檔案
bool writeprofilestring(
lpctstr lpkeyname, // 鍵的名字,是乙個以0結束的字串。若為null,則刪除整個節
lpctstr lpstring // 鍵的值,是乙個以0結束的字串。若為null,則刪除對應的鍵
)2. 把資訊寫入自己定義的.ini檔案
bool writeprivateprofilestring(
lpctstr lpkeyname, // 同上
lpctstr lpstring, // 同上
lpctstr lpfilename // 要寫入的檔案的檔名。相對或絕度路徑
)3.例用例
::writeprofilestring("test","id","xyz");
//在win.ini中建立乙個test節,並在該節中建立乙個鍵id,其值為xyz
::writeprivateprofilestring("test","id","xyz","d://vc//ex1");
//在ex1目錄下的ex1.ini中建立乙個test節,並在該節中建立乙個鍵id,其值為xyz
//若ex1.ini檔案與讀寫該檔案的程式在同乙個目錄下,則上面語句也可寫為:
::writeprivateprofilestring("test","id","xym",".");
二、從ini檔案中讀取資料的函式
1、從系統的win.ini檔案中讀取資訊
(i) 讀取字串
dword getprofilestring(
lpctstr lpkeyname, // 鍵名,讀取該鍵的值
lpctstr lpdefault, // 若指定的鍵不存在,該值作為讀取的預設值
lptstr lpreturnedstring, // 乙個指向緩衝區的指標,接收讀取的字串
dword nsize // 指定lpreturnedstring指向的緩衝區的大小
)cstring str;
::getprofilestring("test","id","error",str.getbuffer(20),20);
(ii) 讀取整數
uint getprofileint(
lpctstr lpkeyname, // 同上
int ndefault // 若指定的鍵名不存在,該值作為讀取的預設值
)如使用以下語句寫入了年齡資訊:
::writeprofilestring("test","age","25");
//在win.ini中建立乙個test節,並在該節中建立乙個鍵age,其值為25
則可用以下語句讀取age鍵的值:
int age;
age=::getprofileint("test","age",0);
2、從自己的ini檔案中讀取資訊
(i) 讀取字串
如:cstring str;
::getprivateprofilestring("test","id","error",str.getbuffer(20),20,".");
或:::getprivateprofilestring("test","id","error",str.getbuffer(20),20,"d://vc//ex1");
(ii) 讀取整數
如使用以下語句寫入了年齡資訊:
::writeprivateprofilestring("test","age","25",".");
//在ex1.ini中建立乙個test節,並在該節中建立乙個鍵age,其值為25
則可用以下語句讀取age鍵的值:
int age;
age=::getprivateprofileint("test","age",0,".");
三、 刪除鍵值或節
writeprofilestring函式的說明
bool writeprofilestring(
lpctstr lpkeyname, // 鍵的名字,是乙個以0結束的字串。若為null,則刪除整個節
lpctstr lpstring // 鍵的值,是乙個以0結束的字串。若為null,則刪除對應的鍵
)要刪除某個節,只需要將writeprofilestring第二個引數設為null即可。而要刪除某個鍵,則只需要將該函式的第三個引數設為 null即可。這是刪除系統的win.ini中的節或鍵,類似的,要刪除自己定義的ini檔案中的節或鍵,也可做相同的操作。
::writeprofilestring("test",null,null); //刪除win.ini中的test節
::writeprofilestring("test","id",null); //刪除win.ini中的id鍵
::writeprivateprofilestring("test",null,null,"."); //刪除ex1.ini中的test節
::writeprivateprofilestring("test","id",null,"."); //刪除ex1.ini中的id鍵
四、如何判斷乙個ini檔案中有多少個節
要判斷乙個ini檔案中有多少個節,最簡單的辦法就是將所有的節名都找出來,然後統計節名的個數。而要將所有的節名找出來,使用getprivateprofilesectionnames函式就可以了,其原型如下:
dword getprivateprofilesectionnames(
lptstr lpszreturnbuffer, // 指向乙個緩衝區,用來儲存返回的所有節名
dword nsize, // 引數lpszreturnbuffer的大小
lpctstr lpfilename // 檔名,
相對路徑/絕度路徑
)
建立 讀取 存貯INI檔案的方法《三》
控制ini 檔案幾法 要利用.ini 檔案做程式有關資料的儲存工作,就需要能讀和寫.ini 檔案,所以列了如下方法給大家參考 從.ini 檔案中獲取字串 varstrresult pchar begin getprivateprofilestring windows 中標題的名字 nullport ...
建立 讀取 存貯INI檔案的方法《一》
內容 ini檔案在系統配置及應用程式引數儲存與設定方面,具有很重要的作用,所以視覺化的程式設計一族,如vb vc vfp delphi等都提供了讀寫ini 檔案的方法,其中delphi中操作ini 檔案,最為簡潔,這是因為delphi6.0提供了乙個tinifile類,使我們可以非常靈活的處理ini...
建立 讀取 存貯INI檔案的方法《二》
內容 要利用.ini 檔案做程式有關資料的儲存工作,就需要能讀和寫.ini 檔案,所以列了如下方法給大家參考 從.ini 檔案中獲取字串 varstrresult pchar begin getprivateprofilestring windows 中標題的名字 nullport 號前的名字 ni...