Delphi樹立、讀取、存貯INI文件的辦法《一》。本站提示廣大學習愛好者:(Delphi樹立、讀取、存貯INI文件的辦法《一》)文章只能為提供參考,不一定能成為您想要的結果。以下是Delphi樹立、讀取、存貯INI文件的辦法《一》正文
1、有需要懂得INI文件的構造:
;正文
[末節名]
症結字=值
...
INI文件許可有多個末節,每一個末節又許可有多個症結字, “=”前面是該症結字的值。
值的類型有三種:字符串、整型數值和布爾值。個中字符串存貯在INI文件中時沒有引號,布爾真值用1表現,布爾假值用0表現。
正文以分號“;”開首。
2、界說
1、在Interface的Uses節增長IniFiles;
2、在Var變量界說部門增長一行:
myinifile:Tinifile;
然後,便可以對變量myinifile停止創立、翻開、讀取、寫入等操作了。
3、翻開INI文件
myinifile:=Tinifile.create('program.ini');
下面這一行語句將會為變量myinifile與詳細的文件 program.ini樹立接洽,然後,便可以經由過程變量myinifile,來讀寫program.ini文件中的症結字的值了。
值得留意的是,假如括號中的文件名沒有指明途徑的話,那末這個Program.ini文件會存儲在Windows目次中,把Program.ini文件存儲在運用法式以後目次中的辦法是:為其指定完全的途徑及文件名。上面的兩條語句可以完成這個功
能:
Filename:=ExtractFilePath(Paramstr(0))+'program.ini';
myinifile:=Tinifile.Create(filename);
4、讀取症結字的值
針對INI文件支撐的字符串、整型數值、布爾值三種數據類型,TINIfiles類供給了三種分歧的對象辦法來讀取INI文件中症結字的值。
假定已界說變量vs、vi、vb分離為string、 integer、boolean類型。
vs:=myinifile.Readstring('末節名','症結字',缺省值);
vi:=myinifile.Readinteger('末節名','症結字',缺省值);
vb:=myinifile.Readbool('末節名','症結字',缺省值);
個中缺省值為該INI文件不存在該症結字時前往的缺省值。
5、寫入INI文件
異樣的,TInifile類也供給了三種分歧的對象辦法,向INI文件寫入字符串、整型數及布爾類型的症結字。
myinifile.writestring('末節名','症結字',變量或字符串值);
myinifile.writeinteger('末節名','症結字',變量或整型數值);
myinifile.writebool('末節名','症結字',變量或True或False);
當這個INI文件不存在時,下面的語句還會主動創立該INI文件。
6、刪除症結字
除可用寫入辦法增長一個症結字,Tinifile類還供給了一個刪除症結字的對象辦法:
myinifile.DeleteKey('末節名','症結字');
7、末節操作
增長一個末節可用寫入的辦法來完成,刪除一個末節可用上面的對象辦法:
myinifile.EraseSection('末節名');
別的Tinifile類還供給了三種對象辦法來對末節停止操作:
myinifile.readsection('末節名',TStrings變量);可將指定末節中的一切症結字名讀取至一個字符串列表變量中;
myinifile.readsections(TStrings變量);可將INI文件中一切末節名讀取至一個字符串列表變量中去。
myinifile.readsectionvalues('末節名',TStrings變量);可將INI文件中指定末節的一切行(包含症結字、=、值)讀取至一個字符串列表變量中去。
8、釋放
在恰當的地位用上面的語句釋放myinifile:
myinifile.distory;
9、一個實例
上面用一個簡略的例子(如圖),演示了樹立、讀取、存貯INI文件的辦法。myini.ini文件中包括有“法式參數”末節,和用戶稱號(字符串)、能否正式用戶(布爾值)和已運轉時光(整型值)三個症結字。法式在窗體樹立讀取這些數據,並在窗體釋放時寫myini.ini文件。
附源法式清單
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs,IniFiles, StdCtrls, ExtCtrls;
type
TForm1 = class(TForm)
Edit1: TEdit;
Edit2: TEdit;
CheckBox1: TCheckBox;
Timer1: TTimer;
procedure FormCreate(Sender: TObject);
procedure FormDestroy(Sender: TObject);
procedure Timer1Timer(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
myinifile:Tinifile;
implementation
{$R *.dfm}
procedure TForm1.FormCreate(Sender: TObject);
var
filename:string;
begin
filename:=ExtractFilePath(paramstr(0))+´myini.ini´;
myinifile:=TInifile.Create(filename);
edit1.Text:= myinifile.readstring(´法式參數´,´用戶稱號´,´缺省的用戶稱號´);
edit2.text:= inttostr(myinifile.readinteger(´法式參數´,´已運轉時光´,0));
checkbox1.Checked:= myinifile.readbool(´法式參數´,´能否正式用戶´,False);
end;
procedure TForm1.FormDestroy(Sender: TObject);
begin
myinifile.writestring(´法式參數´,´用戶稱號´,edit1.Text);
myinifile.writeinteger(´法式參數´,´已運轉時光´,strtoint(edit2.text));
myinifile.writebool(´法式參數´,´能否正式用戶´,checkbox1.Checked);
myinifile.Destroy;
end;
procedure TForm1.Timer1Timer(Sender: TObject);
begin
edit2.Text:=inttostr(strtoint(edit2.text)+1);
end;
end.
此實例在Delphi6.0+WinXP下調試經由過程.