如题~!

解决方案 »

  1.   


    原码如下:procedure TForm1.Button1Click(Sender: TObject);begin
      OpenDialog1.FileName:='E:\khjl\20050420_2002-0201-02\a11003.txt';
      AssignFile(aa, OpenDialog1.FileName);
      Reset(aa);
     
      AssignFile(aa4,'d:\qq4.txt');       //如果存在文件,则清空文件
      Rewrite(aa4);
      try
            while not Eof(aa) do   //没到文件尾
            begin
            Readln(aa,f1,f2,f3,f4,f5,f6,f7,f8,f9,f10);
           
            writeln(aa4,f1,f2,f3,f4,f5,f6,f7,f8,f9,f10);
           
            end;
        finally    begin
         showmessage('提数成功! ');
        end;
        end;end;
    原文件的最后一条记录:表外合计                                                                                                                                 0.00                   0.00                   0.00                   0.00038
    新生成qq4.txt的最后一条记录:(少了0.0038)
    表外合计                                                                                                                                 0.00                   0.00                   0.00就是最后一条数据不完整!其它的都正确。请各位多指教!谢谢。。
      

  2.   

    var
      s: string;
    ..............
            while not Eof(aa) do   //没到文件尾
            begin
            Readln(aa,s);
           
            writeln(aa4,s);
           
            end;
    ..............
      

  3.   

    我对各个字段都作了正确的定义!例如:f1:string[16],f2:string[22];.........希望曾经遇到这种情况的大虾来提醒一下!谢谢
      

  4.   

    你不是读字符串么?要f1f2做甚?
    procedure TForm1.Button1Click(Sender: TObject);
    var temp:string;
    begin
      OpenDialog1.FileName:='E:\khjl\20050420_2002-0201-02\a11003.txt';//这句要来作甚?改成
      if OpenDialog1.Execute then
      begin
        AssignFile(aa,OpenDialog1.FileName);
        Reset(aa);
     
        AssignFile(aa4,'d:\qq4.txt');       //如果存在文件,则清空文件
        Rewrite(aa4);
        try
            while not Eof(aa) do   //没到文件尾
            begin
              Readln(aa,temp);       
              writeln(aa4,temp);       
            end;
        finally
         showmessage('提数成功! ');    
        end;
      end;
    end;
      

  5.   

    不过俺现在基本不用assignfile来读取文本了(除非是哪种一行上万字符的超大文本),最简单的方法是这样:
    memo1.lines.loadfromfile('E:\khjl\20050420_2002-0201-02\a11003.txt');
    memo1.lines.savetofile('d:\qq4.txt');
    两句话搞定
      

  6.   

    而且你最后也没close
    ...
    finally
       CloseFile(f1);
       CloseFile(w);
       showmessage('提数成功! ');    
    end;
      

  7.   

    我也基本上只使用Tstringlist来读取和写入文本。
      

  8.   

    Rail100(每逢佳节倍思春)(How Old Are You?怎么老是你?-_-) ( ) 信誉:100  兄的可以
    我也是这样一条一条的读的,用memo1.loadfromfile()当文件很大时(4M)会很慢的,假死机,你可以试一下,