怎样每一次读一行的读出一个文本文件的全部内容!
var    
    instring:string;
    s:textfile;
begin    
     assignfile(s,extractfilepath(application.ExeName)+'text.txt');
     reset(s);
     readln(s,instring);
     edit1.Text:=instring;
end;我想每次读一行的读出一个文本文件的全部内容!
   但上面的语句只能总是读第一行。第二行老是读不出。
   怎么把当前的文本指针移到第二行开头呢!
   然后下一次再读出第二行的内容呢!

解决方案 »

  1.   

    用循环
    while not s.eof do
    begin
    readln(s,instring);
    end;
      

  2.   

    var
      instring:string;
      s:textfile;
    begin
      assignfile(s,'d:\abc.asm');
      reset(s);
      while not eof(s) do
      begin
        readln(s,instring);
        memo1.lines.Add(instring);
      end;
      closefile(s);
    end;
      

  3.   

    声明一个整型的全局变量CurLinevar
      instring:string;
      s:textfile;
      i:integer;
    begin
      assignfile(s,'d:\abc.asm');
      reset(s);
      i:=1;
      while not eof(s) do
      begin
        readln(s,instring);
        if i=CurLine then
          begin     
            inc(CurLine);
            exit;
          end;
        inc(i);
      end;
      closefile(s);
      edit1.Text:=instring;
    end;
      

  4.   

    var
      i: Integer;
      sl: TStringList;
      s: String;  //你的字符串
    begin
      sl := TStringList.Create;
      with sl do
      try
        LoadFromFile('你的文件.txt');
        for i:=0 to Count-1 do
          s := sl[i]; //获取本行字符串
      finally
        Free;
      end;
    end;
      

  5.   

    我觉得是楼上说的对的
    用TStringlist来实现 先获得文本的行数 然后读取
      

  6.   

    TStrings操作方便些 但textfile更底层些
      

  7.   

    严重同意Taken(铁拳) 
    一次性读出,而后再处理,即高效,又方便。
      

  8.   

    //把S声明的全局
    var
      Form1: TForm1;
      S: TextFile;
    implementation{$R *.dfm}
    procedure TForm1.FormCreate(Sender: TObject);
    begin
      AssignFile(S, ExtractFilePath(Application.ExeName)+'text.txt');
      Reset(S);
    end;procedure TForm1.Button1Click(Sender: TObject);
    var
      InString: string;
    begin
      if not Eof(S) then
      begin
        Readln(S, InString);
        Edit1.Text := InString;
      end;
    end;
      

  9.   

    private
     slist: TStringList;
     curIndex: integer; //当前的行号
    procedure TForm1.FormCreate(Sender: TObject);
    begin
       slist := TStringList.create;
       slist.loadFromFile('文件名');end;procedure TForm1.Button1Click(Sender: TObject);
    begin
       resultStr := sList.string(curIndex-1);
       Inc(curIndex);end;procedure TForm1.FormDestroy(Sender: TObject);
    begin
       slist.free;
    end;
      

  10.   

    for i:=1 to CurLine-1 do
      begin
        readln(f);
      end;
      
    for i:=CurLine to CurLine+23 do
      begin
        readln(f,s);
        writeln(s);
      end;
      

  11.   

    不要用什么TStringList,对于巨型文件比如几十兆,上百兆的文件,TStringList根本就
    无能为力。
      

  12.   

    》一次性读出,而后再处理,即高效,又方便。
    对于一个上百兆的文件,word会一次读出?