如何通过文件的打开在DBGrid中显示INI文件!
INN文件大致格式如下!
[language]
ivar=2
[frmCount]
wCount=3
[frm1]
total=2
frmCaption=窗口名称
lable1=程序名称^标题语言^快捷键^颜色^字体大小^提示说明^备注
lable2=程序名称^标题语言^快捷键^颜色^字体大小^提示说明^备注
[frm2]
total=1
frmCaption=窗口名称
lable1=程序名称^标题语言^快捷键^颜色^字体大小^提示说明^备注
[frm3]
total=1
frmCaption=窗口名称
lable1=程序名称^标题语言^快捷键^颜色^字体大小^提示说明^备注
其中wcount,total为变量
procedure TForm1.Exit1Click(Sender: TObject);
begin
close;
end;procedure TForm1.Open1Click(Sender: TObject);
begin
Form1.OpenDialog1.Execute;
end;procedure TForm1.SaveAs1Click(Sender: TObject);
begin
Form1.SaveDialog1.Execute;
end;
要求在执行Open1Click命令后就直接在DBGrid中显示出相关内容!
谢谢了!
文件,不过这就太麻烦了。
给你提个建议,你用TStringGrid来作.用TIniFile读取文件,让后自己写代码填充StringGrid,实现起来应该也不难!
Good Luck!
双击clientdataset1,在打开的字段列表窗口里右键选择new fields 创建你自己的字段,选择字段类型
然后照着下面的代码写就行了unit Unit1;interfaceuses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, DB, Grids, DBGrids, DBClient, IniFiles;type
TForm1 = class(TForm)
ClientDataSet1: TClientDataSet;
DBGrid1: TDBGrid;
DataSource1: TDataSource;
Button1: TButton;
OpenDialog1: TOpenDialog;
ClientDataSet1WinName: TStringField;
ClientDataSet1ProName: TStringField;
ClientDataSet1TitleLanguage: TStringField;
ClientDataSet1HotKey: TStringField;
ClientDataSet1cColor: TStringField;
ClientDataSet1cFontSize: TStringField;
ClientDataSet1cHint: TStringField;
ClientDataSet1Bz: TStringField;
procedure Button1Click(Sender: TObject);
procedure FormCreate(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;var
Form1: TForm1;implementation{$R *.dfm}function SplitStr(var AStr: string; ASplitChar: Char = ';'): string;
var
sF: string;
begin
sF := '';
if AStr <> '' then
if Pos(ASplitChar, AStr) > 0 then
begin
sF := Copy(AStr, 1, Pos(ASplitChar, AStr) - 1);
AStr := Copy(AStr, Pos(ASplitChar, AStr) + 1, MaxInt);
end
else
begin
sF := AStr;
AStr := '';
end;
Result := sF;
end;
procedure TForm1.Button1Click(Sender: TObject);
var IniFile:TIniFile;
i,wCount:Integer;
slabel:string;
begin
if OpenDialog1.Execute then
begin
IniFile:=TIniFile.Create(ExtractFilePath(Application.ExeName)+'config.ini');
wCount:=IniFile.ReadInteger('frmCount','wCount',1);
for i := 1 to wCount do
begin
slabel:=IniFile.ReadString('frm'+IntToStr(i),'lable1','');
ClientDataSet1.Append;
ClientDataSet1.FieldByName('WinName').AsString:=IniFile.ReadString('frm'+IntToStr(i),'frmCaption','');
ClientDataSet1.FieldByName('ProName').AsString:=SplitStr(slabel,'^');
ClientDataSet1.FieldByName('TitleLanguage').AsString:=SplitStr(slabel,'^');
ClientDataSet1.FieldByName('HotKey').AsString:=SplitStr(slabel,'^');
ClientDataSet1.FieldByName('cColor').AsString:=SplitStr(slabel,'^');
ClientDataSet1.FieldByName('cFontSize').AsString:=SplitStr(slabel,'^');
ClientDataSet1.FieldByName('cHint').AsString:=SplitStr(slabel,'^');
ClientDataSet1.FieldByName('Bz').AsString:=SplitStr(slabel,'^');
ClientDataSet1.Post;
end;
end;
end;procedure TForm1.FormCreate(Sender: TObject);
begin
ClientDataSet1.Close;
ClientDataSet1.CreateDataSet;
ClientDataSet1.Open;
end;end.
lable1应该也是个变量!
[frm1]
total=2
frmCaption=窗口名称
lable1=程序名称^标题语言^快捷键^颜色^字体大小^提示说明^备注
lable2=程序名称^标题语言^快捷键^颜色^字体大小^提示说明^备注
[frm2]
total=1
frmCaption=窗口名称
lable1=程序名称^标题语言^快捷键^颜色^字体大小^提示说明^备注
不过还是谢谢了!