新人有问题请教:怎样删除txt文件中不需要的行!

新人有问题请教:怎样删除txt文件中不需要的行! VCL组件开发及应用
http://www.delphi2007.net/DelphiVCL/html/delphi_20061223140901166.html
如:我有3个txt的文件.分别为:1.txt;2.txt和3.txt.  
  <<1.txt>>  
  %yyy                   //第一行  
  *xxx  
  ..  
   
  (kkkk                 //第十五行  
  f:   50.00     70.00     90.00      
  k:   80.00       90.00     70.00  
  <<2.txt>>  
  %yyy                   //第一行  
  *xxx  
  ..  
   
  (kkkk                 //第十五行  
  y:   100.00   500.00   10.00  
   
  <<3.txt>>  
  %yyy                   //第一行  
  *xxx  
  ..  
   
  (kkkk                 //第十五行  
  g:100.00   500.00   80.00  
  k:10.00     20.00   30.00  
   
  问题是:若我要求删除1-3.txt文件中的1--15行.只要求剩余的行数就可以了  
  还有如果要把1-3.txt已经删除了1-15行的文件在合并成为一个文件为yyy.txt并  
  保存在c盘下为   c:\yyy.txt.  
  最后的情况就像:  
   
  <<yyy.txt>>  
  f:   50.00     70.00     90.00         //第一行  
  k:   80.00       90.00     70.00       //第二行  
  y:   100.00   500.00   10.00  
  g:100.00   500.00   80.00  
  k:10.00     20.00   30.00         //第n行  
   
  若我的txt文件不只有3个.而是20个txt文件,又该怎么办呢?  
  且每个.txt文件必须删除1-15行后在合并为一个文件.  
   
  望大哥能给想点办法!  
  为谢!  
 

操作文本文件的思路就是全部取到内存中,作为string或者stringlist来操作,合并完了再存回去。

TStringList的Delete方法

用delete方法就行

可以详细点说下吗?因为我是外行人.根本就不懂这些!  
  补充.每个txt文件1-15行不要后只有5行了!  
  可以帮忙写个教程什么的!  
  拜托!  
  期望能写个.exe文件就^_^了!

procedure   TForm1.Button1Click(Sender:   TObject);  
  var  
      vStringList:   TStringList;  
      vStringListYYY:   TStringList;  
      I,   J:   Integer;  
  begin  
      vStringList   :=   TStringList.Create;  
      vStringListYYY   :=   TStringList.Create;  
      try  
          for   I   :=   1   to   3   do  
          begin  
              vStringList.LoadFromFile(Format('c:\%d.txt',   [I]));  
              for   J   :=   1   to   15   do  
              begin  
                  if   vStringList.Count   <=   0   then   Break;  
                  vStringListYYY.Add(vStringList[0]);  
                  vStringList.Delete(0);  
              end;  
              //vStringList.SaveToFile(Format('c:\%d.txt',   [I]));//   先看看是不是想要的结果,别错了也覆盖掉  
              vStringList.SaveToFile(Format('c:\%d_test.txt',   [I]));   //   测试用  
          end;  
          vStringListYYY.SaveToFile('c:\yyy.txt');  
      finally  
          vStringList.Free;  
          vStringListYYY.Free;  
      end;  
  end;  
 

如果文本文件只要20行,倒是可以用更简洁一点的办法。  
  思路:  
  读取文本文件第5行之后的所有字符;  
  字符串连接;  
  写到新文件中。  
   
  使用TStringList对象,感觉中间多了一层

posted on 2008-11-18 14:20  delphi2007  阅读(378)  评论(0编辑  收藏  举报