Einzelnen Beitrag anzeigen

Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.105 Beiträge
 
Delphi 11 Alexandria
 
#9

Re: Funktionsaufruf: Dauert immer länger. Warum?

  Alt 11. Apr 2009, 16:09
Moin Cyf,

vielleicht besser so

Zitat von Cyf:
Code:
SetLength(Result, Length(Str));
for ...
begin
  Result[[color=red]Count[/color]]:= Str[i];
  Inc(Count);
end;
SetLength(Result, Length(Count));
[EDIT]
@Go2EITS:
Ein String ist eigentlich ein dynamisches Array.
Wenn Du dieses verlängerst, muss, normaler Weise, jedesmal der Speicher neu angefordert, und der bisherige Inhalt dort hineinkopiert werden. Deswegen sollte man, nach Möglichkeit, ein dynamisches Array von Anfang an so gross machen, wie erforderlich, und erst zum Schluss die Länge setzen.
(Wenn man die Länge nicht vorab genau kennt, empfiehlt es sich, die Länge vorab so gut wie möglich abzuschätzen, und dann, ggf. um mehere Elemente vergrössern, z.B. um 10% des ursprünglichen Schätzwertes. Um welchen Wert man vergrössert sollte davon abhängen, wie gut man den Initialwert abschätzen kann.)
[/EDIT]
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  Mit Zitat antworten Zitat