INI檔案的建立與讀取方法

2021-07-25 03:56:23 字數 3320 閱讀 8734

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...