我的程序中用到字符串的动态替换,示例如下:....
num:='123M456N789'
for k:=1 to 100000 do
begin
aaa:=num;
aaa:=StringReplace(aaa,'M',thdataM[k],[rfReplaceAll,rfIgnoreCase]);
aaa:=StringReplace(aaa,'N',thdataN[k],[rfReplaceAll,rfIgnoreCase]);
writeln(f1,aaa);
end;
.....上面用到的thdataM、thdataN数组是程序运算得到的,且不定长。执行上面语句,效率很低,求高手指点,以何方式才能有效提高速度,不胜感谢。我的一个思路不知是否可行?将 aaa 用数组处理
aaa[0]:=123;aaa[1]='';aaa[2]:=456;aaa[3]='';aaa[4]='789';
这样,通过分别赋值到数组序号 1 3 ,来实现替换。
问题是,这样做可能速度会加快,但数据如何合并成一个字符串?vb中可以通过join(aaa,"")来实现,但delphi中好象没有这个函数。
num:='123M456N789'
for k:=1 to 100000 do
begin
aaa:=num;
aaa:=StringReplace(aaa,'M',thdataM[k],[rfReplaceAll,rfIgnoreCase]);
aaa:=StringReplace(aaa,'N',thdataN[k],[rfReplaceAll,rfIgnoreCase]);
writeln(f1,aaa);
end;
.....上面用到的thdataM、thdataN数组是程序运算得到的,且不定长。执行上面语句,效率很低,求高手指点,以何方式才能有效提高速度,不胜感谢。我的一个思路不知是否可行?将 aaa 用数组处理
aaa[0]:=123;aaa[1]='';aaa[2]:=456;aaa[3]='';aaa[4]='789';
这样,通过分别赋值到数组序号 1 3 ,来实现替换。
问题是,这样做可能速度会加快,但数据如何合并成一个字符串?vb中可以通过join(aaa,"")来实现,但delphi中好象没有这个函数。
writeln(f1,aaa);这句话你可以先把替换后的字符串写到一个TStringList里,然后再通过它的SaveToFile写到一个文件中,试一下是否有提高?