文件读取和处理字符串的效率问题
Dlwxn 2003-12-16 10:31:06 文本文件每行如下格式:
2003年12月02日00时00分 16.251 0.0000 14.088 ...
现在要把它处理后分成多个字段写入到数据库中,我的处理方式有两种:
1
var
f:textfile;
line:string;
ts:TStringList;
begin
if not OpenDialog1.Execute then Exit;
AssignFile(f,OpenDialog1.FileName);
Reset(f);
while not eof(f) do
begin
readln(f,line);
//AA是结束标志,后面还有其它信息
if trim(line)='AA' then Exit;
ts:=TstringList.Create;
//字符串处理
ExtractStrings([' '],[],Pchar(line),ts);
... //其它语句
ts.Free;
end;
end;
2
var
f:textfile;
line:string;
i,j:integer;
ts:TStringList;;
begin
if not OpenDialog1.Execute then Exit;
AssignFile(f,OpenDialog1.FileName);
Reset(f);
while not eof(f) do
begin
readln(f,line);
if trim(line)='AA' then Exit;
//字符串处理
ts:=TstringList.Create;
line:=trim(line);
while Pos(' ',line)<>0 do
begin
i:=Pos(' ',line);
ts.Add(Copy(line,1,i-1));
delete(line,1,i);
line:=trim(line);
end;
ts.Add(line);
... //其它语句
ts.Free;
end;
end;
如果文本有很多的话,执行一个文件的速度很慢,字符串处理的方法不一样,但是我看ExtractStrings函数的处理好象比我这个还要复杂,总之两个都慢,是不是文件的读取方式有问题,还望高手指点。