Hallo zusammen,
habe momentan folgendes Problem: Eine sortierte TStringList meint, 'tesst' und 'teßt' seien dasselbe. Darum wird einerseits beim Hinzufügen einer der beiden Werte ignoriert (da dupIgnore), andererseits mit IndexOf der jeweils andere Wert gefunden:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9:
| var bla: tstringlist; begin bla := tstringlist.Create; bla.Sorted := true; bla.Duplicates := dupIgnore; bla.Add('tesst'); showmessage(inttostr(bla.IndexOf('teßt'))); bla.Free; |
Es wird 0 zurückgegeben statt -1.
Habe zwar schon Behelfslösungen gefunden (wie z.B. das Ersetzen von 'ß' durch einen temporären Wert), aber eine wirklich saubere Lösung habe ich bisher nicht gefunden.
Gibt es vielleicht eine StringList, die das korrekt löst (= nur tatsächlich identische Strings werden auch als identisch erkannt, unabhängig von irgendwelchen LocaleSettings)? Oder kann ich die classes.pas so anpassen, dass ss und ß nicht mehr als identisch angesehen werden (wäre mir insofern fast lieber, da ich diese Änderung sonst in mehreren Projekten vornehmen müsste)?
Danke und Gruß
Andy
P.S. Sorry, bin im falschen Forenbereich gelandet, sollte eigentlich in den WinAPI-Bereich.
Moderiert von
Narses: Das ist hier schon richtig, ist ja eine Onboard-Compo. 