procedure TForm1.Button2Click(Sender: TObject);
var
s: string;
begin
AssignFile(F,FileName);
Reset(F); //只读打开 Readln(F, s); //读取
ShowMessage(s); //显示: 第一行
CloseFile(F);
end;如何让它每点一次按钮循环读取下一行呢?就是,按一次,读第一行,按二次,读第二行?
这个行号怎么定义?
var
s: string;
begin
AssignFile(F,FileName);
Reset(F); //只读打开 Readln(F, s); //读取
ShowMessage(s); //显示: 第一行
CloseFile(F);
end;如何让它每点一次按钮循环读取下一行呢?就是,按一次,读第一行,按二次,读第二行?
这个行号怎么定义?
FilePos : 返回文件的当前位置
Eoln : 返回行结束标志
EOF : 返回文件结束标志
FileSeek : 改变当前文件指针的位置
unit Unit1;interfaceuses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;type
TForm1 = class(TForm)
Edit1: TEdit;
Button1: TButton;
procedure FormCreate(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;var
Form1: TForm1;
mylist:TStringlist;
i,a:integer;{i用来统计mylist的count,判断是不是到了mylist的最后一行;a用来重复递加,以便读取下一行}
implementation{$R *.dfm}procedure TForm1.FormCreate(Sender: TObject);
begin
a:=0;{赋a值为0,以便按button1时读mylist的第一行}
if fileexists('E:\aa.txt') then
begin
mylist:=TStringlist.Create;
mylist.LoadFromFile('E:\aa.txt');{读文件到mylist}
end;
i:=mylist.Count;{获得mylist的count}
button1.Caption:='开始';
edit1.text:='按[开始]键读第一行';
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
if a<>i then{判断a是否为i,既不是mylist的未尾}
begin
button1.Caption:='下一行';
edit1.Clear;{清除edit1的上一行内容}
edit1.Text:=mylist.Strings[a];{添加一行}
a:=a+1;{a值加1,既为下一行}
end
else{如果到mylist未尾,赋a值为0,从第一行重开始}
begin
a:=0;
edit1.Clear;
showmessage('此行为文件未行,点击从第一行开始');
edit1.Text:='请点击[重新开始]';
edit1.SetFocus;
button1.Caption:='重新开始';
end;
end;procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
mylist.Free;{释放mylist}
end;end.
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;type
TForm1 = class(TForm)
Button1: TButton;
procedure Button1Click(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
private
lst: TStringList;
{ Private declarations }
public
{ Public declarations }
end;var
Form1: TForm1;implementation{$R *.dfm}procedure TForm1.Button1Click(Sender: TObject);
begin
ShowMessage(lst.Strings[Button1.Tag]); if Button1.Tag < lst.Count - 1 then
Button1.Tag := Button1.Tag + 1
else
begin
Button1.Tag := 0;
ShowMessage('已到文章结尾, 从头开始.');
end; Button1.Caption := Format('第 %d 行', [Button1.Tag + 1]);
end;procedure TForm1.FormCreate(Sender: TObject);
var
strFileName: String;
begin
strFileName := 'C:\ccrun\123.txt'; lst := TStringList.Create;
if FileExists(strFileName) then
begin
lst.LoadFromFile(strFileName); Button1.Tag := 0;
Button1.Caption := Format('第 %d 行', [Button1.Tag + 1]);
end
else
begin
ShowMessage('指定的文件未找到!'); Button1.Enabled := false;
end;
end;procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
lst.Free;
end;end.
procedure TForm1.Button25Click(Sender: TObject);
var
f: TextFile;
s: string;
begin
AssignFile(f, '123.txt');
reset(F);
while not eof(F) do
begin
Readln(F, s);
showmessage(s);
end;
CloseFile(f);
end;