你不是读字符串么?要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;
原码如下: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就是最后一条数据不完整!其它的都正确。请各位多指教!谢谢。。
s: string;
..............
while not Eof(aa) do //没到文件尾
begin
Readln(aa,s);
writeln(aa4,s);
end;
..............
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;
memo1.lines.loadfromfile('E:\khjl\20050420_2002-0201-02\a11003.txt');
memo1.lines.savetofile('d:\qq4.txt');
两句话搞定
...
finally
CloseFile(f1);
CloseFile(w);
showmessage('提数成功! ');
end;
我也是这样一条一条的读的,用memo1.loadfromfile()当文件很大时(4M)会很慢的,假死机,你可以试一下,