如何将文本文件分割成若干文本文件?
joann 2002-09-25 03:40:04 如何将文本文件分割成若干文本文件,每个文本文件为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