全國最多中醫師線上諮詢網站-台灣中醫網
發文 回覆 瀏覽次數:3137
推到 Plurk!
推到 Facebook!

有關INI檔用法

答題得分者是:zhouying82
andychen8888
一般會員


發表:14
回覆:25
積分:7
註冊:2007-02-05

發送簡訊給我
#1 引用回覆 回覆 發表時間:2009-05-13 10:59:58 IP:203.66.xxx.xxx 訂閱
各位大大: 小弟最近在學習INI用法,但去爬文章各位前輩的INI寫法都不盡相同,請問有基本範例可供小弟參考嗎?感激不盡!
zhouying82
高階會員


發表:150
回覆:272
積分:189
註冊:2004-03-16

發送簡訊給我
#2 引用回覆 回覆 發表時間:2009-05-13 11:46:10 IP:218.80.xxx.xxx 訂閱
INI文件
的方法,其中Delphi中操作INI文件。
一、有必要了解INI文件允许有多个小节,每个小节又允许有多个关键字,“=”后面是
该关键字的值。
值的类型有三种:字符串、整型数值和布尔值。其中字符串存贮在INI文件

myinifile:=Tinifile.create('program.ini');

上面这一行语句将会为变量myinifile与具体的文件program.ini文件中的关
键字的值了。
值得注意的是,如果括号中的文件名没有指明路径的话,那么这个
Program.ini文件存储在应
用程序当前目录中的方法是:为其指定完整的路径及文件名。下面的两
条语句可以完成这个功能:


Filename:=ExtractFilePath(Paramstr
(0)) 'program.ini';
myinifile:=Tinifile.Create(filename);

四、读取关键字的值
针对INI文件中关键字的值。
假设已定义变量vs、vi、vb分别为string、integer、boolean类型。


vs:=myinifile.Readstring
('小节名','关键字',缺省值);
vi:=myinifile.Readinteger
('小节名','关键字',缺省值);
vb:=myinifile.Readbool
('小节名','关键字',缺省值);

其中缺省值为该INI文件
同样的,TInifile类也提供了三种不同的对象方法,向INI文件不存在时,上面的语句还会自动创建该INI文件中所有小节名读
取至一个字符串列表变量中去。

myinifile.readsectionvalues('小节名',TStrings变量);可将INI文件的方
法。myini.ini文件。
附源程序清单

[code cpp]
unitUnit1;
interface
uses
Windows,Messages,SysUtils,Classes,Graphics,
Controls,Forms,Dialogs,inifiles,StdCtrls,ExtCtrls;
type
TForm1=class(TForm)
Edit1:TEdit;
CheckBox1:TCheckBox;
Edit2:TEdit;
Label1:TLabel;
Label2:TLabel;
Timer1:TTimer;
Label3:TLabel;
procedureFormCreate(Sender:TObject);
procedureFormDestroy(Sender:TObject);
procedureTimer1Timer(Sender:TObject);
private
{Privatedeclarations}
public
{Publicdeclarations}
end;
var
Form1:TForm1;

implementation
var
myinifile:TInifile;
{$R*.DFM}

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

procedureTForm1.FormDestroy(Sender:TObject);
begin
myinifile.writestring('程序参数','用户名称',edit1.Text);
myinifile.writeinteger('程序参数','已运行时间',
strtoint(edit2.text));
myinifile.writebool('程序参数','是否正式用户',
checkbox1.Checked);
myinifile.Destroy;
end;

procedureTForm1.Timer1Timer(Sender:TObject);
begin
edit2.Text:=inttostr(strtoint(edit2.text) 1);
end;

end.
[/code]
------
断断续续的学了几年,还是一个初学者,永远支持Delphi !
andychen8888
一般會員


發表:14
回覆:25
積分:7
註冊:2007-02-05

發送簡訊給我
#3 引用回覆 回覆 發表時間:2009-05-13 13:34:41 IP:203.66.xxx.xxx 訂閱
感謝zhouying82大大,小弟獲益良多!
系統時間:2024-04-26 7:00:48
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!