Forum: Programmieren allgemein
by Uwe Raabe,
9. Jan 2017
Das Duplicates wird auch nur beim Hinzufügen ausgewertet, nicht beim Sort. Das Property ist eben keine Garantie für den Inhalt der Stringlist. Es kann insbesondere jederzeit zwischen zwei Add-Aufrufen geändert werden.
Forum: Programmieren allgemein
by Uwe Raabe,
9. Jan 2017
Das sehe ich anders! Bei dupAccept trifft keines der case-Labels zu und der Code springt direkt zum InsertItem. Hast du es mal probiert?
Forum: Programmieren allgemein
by Uwe Raabe,
9. Jan 2017
Kann ich zumindest bei meinem Delphi 7 nicht bestätigen. Dort ist ebenso TDuplicates = (dupIgnore, dupAccept, dupError); und da es im Create oder anderswo nicht gesetzt wird, entspricht der Standardwert auch dort TDuplicates(0) = dupIgnore.
Forum: Programmieren allgemein
by Uwe Raabe,
9. Jan 2017
Das entspricht aber auch der Standardeinstellung. Lediglich für ein anderes Verhalten muss das explizit gesetzt werden.
Forum: Programmieren allgemein
by Uwe Raabe,
8. Jan 2017
Sorted := true ruft intern sowieso ein Sort auf, das nun aber nichts mehr verändert. Probier mal, ob es noch etwas schneller ist, wenn du den expliziten Sort-Aufruf weglässt.
Forum: Programmieren allgemein
by Uwe Raabe,
8. Jan 2017
Insbesondere sieht man, daß Find eine binäre Suche durchführt und IndexOf direkt Find aufruft, wenn Sorted gesetzt ist.
Daraus folgt a) daß Find nur dann funktionieren kann, wenn Sorted gesetzt wurde, und b) IndexOf immer funktioniert c) IndexOf im Falle von Sorted wegen der binären Suche in Find schon recht schnell sein sollte.
Bleiben noch die Optimierungsmöglichkeiten in CompareStrings,...