Einzelnen Beitrag anzeigen

Dax
(Gast)

n/a Beiträge
 
#2

Re: Mehrere Strings effizient verketten

  Alt 4. Jul 2008, 03:02
himitsu schlägt folgende Optimierung vor:
Delphi-Quellcode:
function StrArrayConcat(const a : array of string):string;
var
  i, j, k : Integer;
begin
  j := 0;
  for i := Low(a) to High(a) do
    Inc(j, Length(a[i]));
  SetLength(Result, j);

  j := 0;
  for i := Low(a) to High(a) do
    if a[i] <> 'then
    begin
      k := Length(a[i]);
      MoveMemory(PChar(Pointer(Result)) + j, Pointer(a[i]), k);
      Inc(j, k);
    end;
end;
Sein Kommentar:
Zitat von himitsu:
var s: string; entfernt ... unnötige bearbeiung des Referenzzählers
UniqueString entfernt (kein PChar(s), s[x]+Varparameter oder @s[x])
und ein [i]Length(a) entfernt
  Mit Zitat antworten Zitat