我要用6个label的caption来分别显示六个内容,这六个内容是这样写在txt文本里面的,共三行,每行包括一个英语单词和中文意思,中间用个标志符号隔开{如love*喜欢),怎样分别用6个label的caption对应显示出来,另外,若3行为一组,怎样用一个botton就能按顺序读取下一组呢?即我的txt文本有很多行英语单词和中文的话。首先对回答我的问题的所有朋友们表示最由衷的感谢。
调试欢乐多
FOPEN("文件名","R+")
lable1=标签一uses IniFiles;var
ini:TIniFile;
begin
ini:=TIniFile.Create('D:\MyLable.ini');
lable1.Caption:=ini.ReadString('caption','lable1','');
ini.Free;
end;
var
Tfs:TextFile;
Astr:String;
begin
AssignFile(Tfs,TextFileName);
ReSet(Tfs);
While Not Eof(Tfs) do begin
Readln(Tfs,Astr);//Astr就是读出的一行的字符
end;
CloseFile(tfs);
end;
读出Astr后,根据你得标志符号,把前后两个字符串分别取出,然后显示在label中
realistic*现实的
abstract*抽象的
sculpture*雕塑
gallery*画廊
belief*信仰
consequent*随之发生的
aim*目标
symbol*象征
value*价值
focus*聚焦
religion*宗教
possession*财产
convince*使信服
shadow*影子
ridiculous*可笑的
attempt*试图
predict*预言
scholar*学者
geometry*几何学
bunch*串
avenue*林荫道
exhibition*展览
civilization*文明
contemporary*当代的
permanent*永久
district*区大家看看怎么实现?谢谢
var
Tfs:TextFile;
lstr,rstr,Astr:String;
begin
AssignFile(Tfs,TextFileName);
ReSet(Tfs);
While Not Eof(Tfs) do begin
Readln(Tfs,Astr);//Astr就是读出的一行的字符
lstr := Copy(Astr,1,Pos('*',Astr)-1);//英文
rstr := Copy(Astr,Pos('*',Astr)+1,Length(Astr)-Pos('*',Astr));//中文
end;
CloseFile(tfs);
end;
多省事,省去了打开txt的繁琐过程
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;type
TForm2 = class(TForm)
Button1: TButton;
Label1: TLabel;
Label2: TLabel;
procedure Button1Click(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure FormDestroy(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;var
Form2: TForm2;
str : Tstringlist;
I : integer;
implementation{$R *.dfm}procedure TForm2.Button1Click(Sender: TObject);
begin
label1.Caption := copy(str.Strings[i],0,pos('*',str.Strings[i])-1);
label2.Caption := copy(str.Strings[i],pos('*',str.Strings[i])+1,length(str.Strings[i]));
if i = str.Count then i := 0 else
inc(i);
end;procedure TForm2.FormCreate(Sender: TObject);
begin
str := Tstringlist.Create;
str.LoadFromFile('c:\test.txt');
i := 0;
end;procedure TForm2.FormDestroy(Sender: TObject);
begin
freeAndNil(str);
end;end.
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;type
TForm2 = class(TForm)
Button1: TButton;
Label1: TLabel;
Label2: TLabel;
procedure Button1Click(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure FormDestroy(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;var
Form2: TForm2;
str : Tstringlist;
I : integer;
implementation{$R *.dfm}procedure TForm2.Button1Click(Sender: TObject);
begin
label1.Caption := copy(str.Strings[i],0,pos('*',str.Strings[i])-1);
label2.Caption := copy(str.Strings[i],pos('*',str.Strings[i])+1,length(str.Strings[i]));
if i = str.Count-1 then i := 0 else
inc(i);
end;procedure TForm2.FormCreate(Sender: TObject);
begin
str := Tstringlist.Create;
str.LoadFromFile('c:\test.txt');
i := 0;
end;procedure TForm2.FormDestroy(Sender: TObject);
begin
freeAndNil(str);
end;end.
上面那個有點BUG,這個應該可以
abstract=抽象的
sculpture=雕塑
gallery=画廊 就可以直接用TStringlist来读取
比如说第一行str.Names[0]
str.Values[str.Names[0]])