如何将文本文件分割成若干文本文件,每个文本文件为30条记录,并保存为file1,file2...fileN?
文件格式如下:
                                                                                
                              管辖机构:  4012345     报表编号  :C0000001       
                                   扣款通知书                                   
  机构:  4000000xx支行     $w                                  页号:    1  
 ------------------------------------------------------------------------------ 
                                                                                
                    xx支行     $w                                             
                                                日期:      2002-01-01          
                                                                                
邮编  :  123456                                                                 
地址  : 九龙路63弄10号101室                                  
姓名  : 郑一                                                                  
                                                                                
                                                                                
                              xx银行消费信贷扣款通知书                        
                                            扣款日期:  2002-01-01              
                                                                                
尊敬的  郑一                                    先生/女士  :                   
    我行已从您的帐户中支取以下金额作为本次供款额,  特此通知。                  
 ------------------------------------------------------------------------------ 
贷款帐号  : 400000000000000001                        客户编号  : 00000001      
楼盘名称  : xxxx建设发展有限公司                      楼盘编号  : 000001        
存款帐号  : 4000000000001234567                        总期数  :  180          
现用利率  : 0.00465000                                罚息利率  : 0.00630000    
                                                                                
期号                本金                 利息                 罚息  起息日期    
 ------------------------------------------------------------------------------ 
  20             4,670.04             5,185.98                 0.00  2002-01-11 
                                                                                
本次扣款金额为  :               9,856.02                                        
阁下现时在我行的贷款余额为  :                   1,110,594.20                    
 ------------------------------------------------------------------------------ 
说明:如有不符,请于扣款后20天内到经办  银行查询  ,过期则视阁下已认可。  
                        ...........
                        ...........
                        ...........
                        ...........
                        ...........
                        ...........
                                                                                
                              管辖机构:  4012345     报表编号  :C0000001       
                                   扣款通知书                                   
  机构:  4000000xx支行     $w                                  页号:    2  
 ------------------------------------------------------------------------------ 
                                                                                
                    xx支行     $w                                             
                                                日期:      2002-01-01          
                                                                                
邮编  :  123456                                                                 
地址  : 八龙路263弄1号1101室                                  
姓名  : 郑一                                                                  
                                                                                
                                                                                
                              xx银行消费信贷扣款通知书                        
                                            扣款日期:  2002-01-01              
                                                                                
尊敬的  王小一                                  先生/女士  :                   
    我行已从您的帐户中支取以下金额作为本次供款额,  特此通知。                  
 ------------------------------------------------------------------------------ 
贷款帐号  : 400000000000000002                        客户编号  : 00000007      
楼盘名称  : xxxx建设发展有限公司                      楼盘编号  : 000002        
存款帐号  : 4000000000002222227                        总期数  :  180          
现用利率  : 0.00465000                                罚息利率  : 0.00630000    
                                                                                
期号                本金                 利息                 罚息  起息日期    
 ------------------------------------------------------------------------------ 
   3               407.72             1,420.40                 1.00  2002-01-01 
                                                                                
本次扣款金额为  :               1,828.12                                        
阁下现时在我行的贷款余额为  :                     337,781.94                     
 ------------------------------------------------------------------------------ 
说明:如有不符,请于扣款后20天内到经办  银行查询  ,过期则视阁下已认可。  有朋友写了如下程序:
var
  i,j , x : integer;
  list1 : Tstrings;
  templist : Tstrings;
  tempfilename : string;
begin
  list1 := Tstringlist.create;
  templist := Tstringlist.create;
  list1.loadfromfile('filename');
  x :=0;
  j := 1;
  for i:= 1 to list1.count do
  begin
    templist.add(list1[i-1]);
    if length(trim(list1[i-1]))=0 then
       inc(j);              //如果出现空行,记录数增加1
    if (j mod 30)=0 then   //j记载当前正在处理记录的条数
    begin
      inc(x);              //增加文件名序列号 
      tempfilename :='file'+ inttostr(x);//合成新文件名
      templist.savetofile(tempfilename);//保存临时list
      templist.clear;//清除临时list
    end;
  end;
end;
运行通过,但存在两个问题:
1.产生的file1,file2...fileN不是txt文件,且不能选择保存路径.
2.最后不足30条的记录被舍弃了,没有保存到fileN

解决方案 »

  1.   

    要选择文件路径你稍微修改以下不就可以了?
    我测试了,Tstrings.savetofile明明可以存成TXT文件。你把tempfilename加上.txt的扩展名就可以了。
    ----------------------------------------------
                       riff ur life
      

  2.   

    1.file1,file2当然是文本文件。(如你的意思是扩展名不对,文件名写作tempfilename :='file'+ inttostr(x)+'.txt'好了 )
    2.选择保存路径,加上一个SaveDialog
    3.最后不足30条记录被舍弃,因为条件句有漏洞,改为
      if ( (j mod 30)=0 ) or (i=list1.count)
       then ........