我正在使用StringReplace将生成的XML中的>和<替换为char本身,如下所示:
StringReplace(xml.Text,'>','>',[rfReplaceAll]) ;
StringReplace(xml.Text,'<','<',[rfReplaceAll]) ;
Run Code Online (Sandbox Code Playgroud)
事情是,取代>的每一次出现都需要太长时间.
你是否有更好的想法让它更快?
如果您使用的是Delphi 2009,使用TStringBuilder时此操作比使用ReplaceString快3倍.它也是Unicode安全的.
我用从文本http://www.CodeGear.com与"<"和">"改变所有出现"<",并">"作为我的出发点.
包括字符串赋值和创建/释放对象,这些在我的系统上分别花了大约25ms和75ms:
function TForm1.TestStringBuilder(const aString: string): string;
var
sb: TStringBuilder;
begin
StartTimer;
sb := TStringBuilder.Create;
sb.Append(aString);
sb.Replace('>', '>');
sb.Replace('<', '<');
Result := sb.ToString();
FreeAndNil(sb);
StopTimer;
end;
function TForm1.TestStringReplace(const aString: string): string;
begin
StartTimer;
Result := StringReplace(aString,'>','>',[rfReplaceAll]) ;
Result := StringReplace(Result,'<','<',[rfReplaceAll]) ;
StopTimer;
end;
Run Code Online (Sandbox Code Playgroud)
试试Peter Morris的FastStrings.pas.
| 归档时间: |
|
| 查看次数: |
10944 次 |
| 最近记录: |