方法有二:方法 1、将它读入 Memo 里,再用 Memo.Line 的方法来处理。方法 2、用 TextFile 边读边写遇到你不要的那行时,就不写。

解决方案 »

  1.   

    对于第2个方法,用下列语句,当执行到writeln时出错。。 why?
     begin
      Assignfile(f,'sys.ini');
      reset(f);
      while not Eof(f) do
      readln(f,ss,ss2);
      if ss=user then
      begin
      ss:=user+stringofchar(' ',20-length(user));
      writeln(f,ss,ss3);
       end;
      closefile(f);
      end;
      

  2.   

    当然会出错。你不能对一个文本文件同时进行 读写,只能选其一,所以你要用中间变量,对文本文件进行编辑操作而产生 BAK 文件就是这个原因,当然加一个原因是为了作后备.
      

  3.   


    Reset 是打开一个现有的文件,对其进行只读方式打开。
    ReWrite 是建立一个新文件,若文件已存在,则将被复写。你还有另一个选择,就是使用文件流
      

  4.   

    用TSTringList来处理太简单了:
    var
      sl: TStringList;
    begin
      sl := TStringList.create(self);
      sl.loadfromfile('tmp.txt');
      sl.string[0].text := '';  //delete this line
      sl.string[0].text := 'new';  //add new text at the line
    end;