procedure TForm1.Button2Click(Sender: TObject);
var
  s: string;
begin
  AssignFile(F,FileName);
  Reset(F);  //只读打开  Readln(F, s);   //读取
  ShowMessage(s); //显示: 第一行
  CloseFile(F);
end;如何让它每点一次按钮循环读取下一行呢?就是,按一次,读第一行,按二次,读第二行?
这个行号怎么定义?

解决方案 »

  1.   

    Seek :把文件当前位置移到指定部分
    FilePos : 返回文件的当前位置
    Eoln : 返回行结束标志
    EOF : 返回文件结束标志
    FileSeek : 改变当前文件指针的位置
      

  2.   


    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. 
      

  3.   

    unit Unit1;interfaceuses
      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.
      

  4.   


    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;