Forum: Algorithmen, Datenstrukturen und Klassendesign
Delphi
by Gausi,
26. Okt 2020
Die Sortier-Methode, die von der Stringlist intern verwendet wird, benutzt AnsiCompareText bzw. AnsiCompareString (je nachdem, ob CaseSensitive gesetzt ist oder nicht). Daher musst du mit deiner Binärsuche auch diese Vergleichsoperation nutzen.
Wenn du die Liste zur Laufzeit sortierst (und nicht z.B. aus einer Textdatei lädst und implizit annimmst, dass sie dann sortiert ist), dann sollte der...
Forum: Algorithmen, Datenstrukturen und Klassendesign
Delphi
by Gausi,
26. Okt 2020
Ich hatte neulich auch Probleme mit sortierten StringListen und Zeichen wie "-". Der Punkt ist wohl, dass Funktionen wie AnsiCompareText standardmäßig etwas mehr machen als erwartet: https://entwickler-ecke.de/viewtopic.php?t=118089
U.a. werden Bindestriche bei der Sortierung damit nicht berücksichtigt.
Probier mal, deine Stringvergleiche (aktuell mit <, >, =) durch AnsiCompareText zu...