求一个delphi小程序

来源:百度知道 编辑:UC知道 时间:2024/05/07 06:38:35
我有一个文本文档名X,
保存如下所示数据N条,
01200706261859E0010165059
01200706261859E0010173847
……
现要求将此格文件转换成如下所示并保存至另一个文本中
2007/06/26 18:59:00 0010165059 001 00 1 00001
2007/06/26 18:59:00 0010173847 001 00 1 00002
……
即将前文本每行(01200706261859E0010165059)中第3至10位(20070626)取出保存为生成的文本中的(2007/06/26),11至14位取出加“:00”保存为(18:59:00),最后10位保持不变保存为(0010165059),第1,2位取出前加“0”保存001,生成文本中的00 1 00001自动生成,最后的00001为自动按行数累加;
求高手帮个忙~~~~~~~!N急~~!
谢谢!

procedure TForm1.Button1Click(Sender: TObject);
var
oritext,aimtext:TextFile;
s,str:string;
str1:string[5];
i,m,n:integer;
begin
i:=1;
assignfile(oritext,'D:\aa.txt');//源文件
reset(oritext);//只读方式打开
assignfile(aimtext,'D:\bb.txt');//目标文件
Rewrite(aimtext);{追加方式打开。也可以用Rewrite(aimtext),这是创建一个新文件(对于一个已存在的文件,此操作将使原文件被覆盖)。}
try
while not eof(oritext) do//循环读取文本
begin
readln(oritext,s);
str:=copy(s,3,4)+'/'+copy(s,7,2)+'/'+copy(s,9,2)+' '
+copy(s,11,2)+':'+copy(s,13,2)+':00 '
+copy(s,16,10)+' 001 00 1 ';
m:=length(inttostr(i));//判断i为字符串时的长度,决定str1中0的个数
for n:=1 to 5-m do
str1:=str1+'0';
str:=str+str1+inttostr(i);
str1:='';
i:=i+1;
writeln(aimtext,str);
end;
finally
closefile(oritext);