Einzelnen Beitrag anzeigen

Benutzerbild von Gausi
Gausi
Online

Registriert seit: 17. Jul 2005
880 Beiträge
 
Delphi 11 Alexandria
 
#6

AW: Byte-Suche, String-Vergleich mit A>B, A<B und A=B

  Alt 26. Okt 2020, 13:28
Wie kann ich nun sicherstellen das eine auf meinem PC sortierte Liste auf ALLEN Systemen gleich sortiert bleibt und die Routine dann auf ALLEN PC's das richtige Ergebnis liefert?
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 Code mit AnsiCompareXXX überall funktionieren. Allerdings ist die Sortierung ggf. anders - aber davon merkst du bei der Suche nichts.

Wenn du die Sortierung länderunabhängig immer gleich haben willst, dann musst du deine eigene Sortierfunktion schreiben, bzw. eine eigene Compare-Funktion, die du dann mit CustomSort verwendest. Und diese Compare-Funktion musst du dann auch in der Binärsuche nutzen.
The angels have the phone box.
  Mit Zitat antworten Zitat