DELPHI基礎(chǔ):DELPHI中的INI文件編程

字號:

第一部分:INI文件的結(jié)構(gòu):
    ;——注釋
    [小節(jié)名]
    關(guān)鍵字=值
    ...
    ►---- INI文件允許有多個小節(jié),每個小節(jié)又允許有多個關(guān)鍵字, “=”后面是該關(guān)鍵字的值。
    ►---- 值的類型有三種:字符串、整型數(shù)值和布爾值。其中字符串存貯在INI文件中時沒有引號,布爾真值用1表示,布爾假值用0表示。
    ►---- 注釋以分號“;”開頭。
    第二部分:
    定義
    ►---- 1、在Interface的Uses節(jié)增加IniFiles;
    ►---- 2、在Var變量定義部分增加一行:
    ►fileHandle:Tinifile;
    ►---- 然后,就可以對變量fileHandle進(jìn)行創(chuàng)建、打開、讀取、寫入等操作了。
    下面是一個通過ini文件讀取數(shù)據(jù)庫設(shè)置的例子,通過這個例子可以使我們更好地理解。
    procedure DBConfig(var server_name,db_name,user_id,user_pwd:string);
    var
    fileHandle:tinifile;
    begin
    fileHandle:=TIniFile.Create(GetCurrentDir()+’\\dbconfig.ini’);
    server_name:=fileHandle.ReadString(’dbsettings’,’server_name’,’ZYF’);
    db_name:=fileHandle.ReadString(’dbsettings’,’db_name’,’Al_Product’);
    user_id:=fileHandle.ReadString(’dbsettings’,’user_id’,’tap’);
    user_pwd:=fileHandle.ReadString(’dbsettings’,’user_pwd’,’tap’);
    fileHandle.Destroy;
    end;
    注意:如果括號中的文件名沒有指明路徑的話,那么這個dbconfig.ini文件必須存儲在Windows目錄中,才能讀出設(shè)定值,否則只有默認(rèn)值,如果想把dbconfig.ini文件存儲在應(yīng)用程序當(dāng)前目錄中,讀取的方法是:為其指定完整的路徑及文件名。
    除了應(yīng)用上面的GetCurrentDir()方法,下面的兩條語句也可以完成這個功能:
    ►Filename:=ExtractFilePath(Paramstr(0))+’program.ini’;
    ►myinifile:=Tinifile.Create(filename);
    這里主要用到了下面的方法來讀取文件
    ——fileHandle:=TIniFile.Create(GetCurrentDir()+’\\dbconfig.ini’); //在當(dāng)前工作目錄下,創(chuàng)建一個INI文件
    ——filehandle.Readstring(’小節(jié)名’,’關(guān)鍵字’,缺省值); //讀取一個關(guān)鍵字,可以指定缺省值
    ——fileHandle.Destroy //操作完畢,結(jié)束句柄
    第三部分:其他操作
    ► 寫INI文件
    同樣的,TIniFile類也提供了三種不同的對象方法,向INI文件寫入字符串、整型數(shù)及布爾類型的關(guān)鍵字。
    fileHandle.WriteString(’小節(jié)名’,’關(guān)鍵字’,變量或字符串值);
    fileHandle.WriteInteger(’小節(jié)名’,’關(guān)鍵字’,變量或整型數(shù)值);
    fileHandle.WriteBool(’小節(jié)名’,’關(guān)鍵字’,變量或True或False);
    當(dāng)這個INI文件不存在時,還會自動創(chuàng)建該INI文件。
    ► 刪除關(guān)鍵字
    ---- 除了可用寫入方法增加一個關(guān)鍵字,Tinifile類還提供了一個刪除關(guān)鍵字的對象方法:
    fileHandle.DeleteKey(’小節(jié)名’,’關(guān)鍵字’);
    ► 小節(jié)操作
    --- 增加一個小節(jié)可用寫入的方法來完成,刪除一個小節(jié)可用下面的對象方法:
    fileHandle.EraseSection(’小節(jié)名’);
    另外Tinifile類還提供了三種對象方法來對小節(jié)進(jìn)行操作:
    fileHandle.ReadSection(‘小節(jié)名’,TStrings變量);
    可將指定小節(jié)中的所有關(guān)鍵字名讀取至一個字符串列表變量中;
    fileHandle. ReadSections(TStrings變量);
    可將INI文件中所有小節(jié)名讀取至一個字符串列表變量中去。
    fileHandle.ReadSectionValues(’小節(jié)名’,TStrings變量);
    可將INI文件中指定小節(jié)的所有行(包括關(guān)鍵字、=、值)讀取至一個
    字符串列表變量中去。
    ► 釋放:在適當(dāng)?shù)奈恢糜孟旅娴恼Z句釋放fileHandle:
    fileHandle.Destroy;