BCB中有個TIniFile

來源:互聯網
上載者:User

ini檔案(xxx.ini),就是系統的設定檔,用來儲存系統的一些配置資訊。

使用INI設定檔 

在BCB中有個TIniFile類,它提供了對INI檔案的操作,INI檔案一種通用的設定檔格式它也象註冊表一樣 分鍵和資料項目,下面是一個INI設定檔的內容,它有一個鍵LastConfig, 在這個鍵下有一個資料項目DefaultDit,在資料項目後面就是這個資料項目的值。

[LastConfig]  

DefaultDir=E:\xxx  

TIniFile類有幾個常用的方法給大家介紹一下: 

__fastcallTIniFile(const AnsiString FileName) : Inifiles::TCustomIniFile(FileName) { }  

這個方法建立一個INI對象,如果FileName指定的檔案名稱不存在則自動產生此檔案,FileName可以用全路徑,指定INI檔案的地點,如果只有檔案名稱沒有路徑,這個函數將到Windows系統路徑下去開啟或建立。(WIN9X是Windows目錄,NT和2000是WINNT目錄) 

bool __fastcall SectionExists(const AnsiString Section);  

這個方法判斷是否存在Section這個鍵。 

virtual AnsiString __fastcall ReadString(const AnsiString Section, const AnsiString Ident, const AnsiString Default);  

這個方法從INI檔案中讀取一個字串,

Section是指定的鍵,

Ident是指定鍵下的資料項目Default是如果這個項不存在的時候的預設值。 

virtual void __fastcall WriteString(const AnsiString Section, const AnsiString Ident, const AnsiString Value);  

這個方法是向INI檔案中寫入一個字串,

Senction是指定的鍵,

Ident是指定的資料項目,

Value是要寫入的資料。

同TRegistry一樣,TIniFile類還提供了讀取整型、布爾型,二進位等資料類型的讀寫方法,大家看看線上說明就可以了,用法基本一樣。

下面就那上面的INI檔案為例來說明一下如何有INI檔案來儲存配置資訊和如何從INI檔案中讀取資料。 

下面的例子是如何從一個INI檔案中讀取配置,此設定檔儲存在應用程式的目錄下,如果沒有配置,則取程式所在路徑為預設值。 

#include <inifiles.hpp> 

void __fastcall ReadConfig () 

{ //讀取配置,  

TIniFile * regKey;  

AnsiString ExePath = ExtractFileName( ParamStr ( 0 ) );//返回指定檔案的工作路徑  

regKey = new TIniFile ( ExePath + "TrimTxt.ini");  

DefaultDir=regKey->ReadString("LastConfig","DefaultDir",ExePath );  

delete regKey; 

下面的例子說明如何將資訊寫入INI檔案 

void __fastcall SaveConfig ()  

{  

TIniFile * regKey;  

AnsiString ExePath = ExtractFileName( ParamStr ( 0 ) );  

regKey = new TIniFile ( ExePath + "TrimTxt.ini");  

regKey->WriteString ( "LastConfig", "DefaultDir" , DefaultDir );  

delete regKey;  

使用INI檔案儲存配置資訊是很方便的,它最大的優點就是使用者可以手工去就改它,它通常用來儲存一些不是至關重要的資料。它的缺點就是不適合儲存結構比較複雜的資料,而且檔案容易被破壞。

http://blog.hehehehehe.cn/a/8454.htm


MP3用到的函數及解釋:

(1)更改指定檔案的副檔名:

function ChangeFileExt(const FileName, Extension: string): string;

//第一個參數為要修改的檔案名稱,可以帶路徑

//第二個參數為修改後的尾碼名

//該函數返回修改後的檔案名稱

eg: ChangeFileExt( mp3.exe, config.cfg) ===>返回 mp3.cfg

比如:s:=changefileext('f:\123.txt','.ini');  

showmessage(s);//f:\123.ini

相關關鍵詞:

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.