Zitat:
Delphi-Quellcode:
For I2 := 0 to TS.Count-1 do
Begin
If (I2 = 0) or (I2 = TS.Count) then
Hab jetzt nicht alles angesehn, aber
(I2 = TS.Count)
wird niemals treffen.
Meinst bestimmt
TS.Count-1
?
Hier fehlt
If length(S) > 0 then TS.Add(S);
das UpperCase, wobei man das auch gleich nur einmal beim
S:=UpperCase(...)
erledigen könnte, anstatt mehrmals nachträglich.
So richtig verseh ich auch nicht, warum du die mittleren Suchwörter anders suchst, als das Erste und Letzte.
Wenn auch Umlaute vorkommen können, dann besser AnsiUpperCase statt UpperCase verwenden, denn Letzeres arbeitet nur mit
ASCII-Zeichen, also ausschließlich für A-Z.
Nur als zusätzliche Tipps:
Das
If (I2 > 0) and (I2 < TS.Count) then
soll doch wohl ein
ELSE
sein?
Und der Code zum Zerteilen der Suchwörter ->
SplitString oder
TStringList.DelimitedText mit Delimiter=' ' und StrictDelimiter=True (Delimiter und StrictDelimiter könnte man hier notfalls auch auf Default stehen lassen).
Warum graufst du hier eigentlich ständig auf Form1 zu? Ist das etwa keine Methode von TForm1?