TStrings::IndexOf mit Groß-/Kleinschreibung
-
Hallo!
Die Methode TStrings::IndexOf unterscheidet nicht zwischen Groß- und Kleinschreibung. Gibt es eine Möglichkeit, daß sie es doch tut?
Danke im voraus.
Rob'
-
SO eine Möglichkeit gibt es nicht, es sei denn, du leitest eine eigene Klasse von TStrings ab und implementierst die Funktionalität selbst.
Ansonsten musst du die Stringliste halt in einer Schleife durchlaufen und jeweils einen direkten AnsiString-Vergleich durchführen, der ja bekanntermassen case sensitive ist.
-
Hallo,
IndexOf gibt dir ja die ID zurück. Anhand der ID, weißt du um welchen String Index es sich handelt. Jetzt nutzt du einfach eine String Funktion, die die beiden Strings vergleicht und schon weißt du, ob ein Unterschied zwischen Groß- und Kleinschreibung besteht oder nicht.
bye Philipp
-
Netter Versuch.
Leider nützt das nichts, wenn der String mehrmals, aber in unterschiedlicher Schreibweise vorkommt, da IndexOf immer nur die erste Fundstelle zurückgibt.
Natürlich könnte man auch mit einer temporären StringList arbeiten, aus der man bei Nichtübereinstimmung den per IndexOf gefundenen String löscht und dann neu sucht, allerdings dürfte eine simple Schleife da doch einfacher sein.
-
Im BCB6 gibts die Eigenschaft TStringList::CaseSensitive. Ob die hier neu ist oder ob es die auch schon im 5er gab kann ich aber nicht sagen.
-
Danke, wieder was gelernt.
Im BCB5 gibt's das tatsächlich noch nicht.
-
Habs ehrlich gesagt auch nur durch "Zufall" entdeckt, aber bisher noch nie gebraucht
-
Ich habe auch noch eine Frage zur CaseSensitive Thematik.
Handelt es sich dabei ausschließlich um die Missachtung der Groß- und Kleinschreibung oder spielen noch andere Details eine Rolle?
Z.B. wenn ein String von einem anderen String verschluckt wird, wenn z.B. StringList->IndexOf("String"); z.B. den Index auf String12345 liefert oder so?Solche Fehler sind extrem schwer zu finden meiner Meinung nach.
-
Hallo
CaseSensitiv betrifft nur die Groß- und Kleinschreibung, und schneidet keine anderen Zeichen ab. Das kannst du sicher auch schnell in einem kleinen Minimalbeispiel nachprüfen.
bis bald
akari