Hi DPler
Ich möchte in meiner Suchfunktion nach Einträgen in einer Listbox suchen. Das soll nat. auch funktionieren wenn in der LSB "Hallo_Welt" steht und ich in der Suchmaske "hallo Welt" schreibe. dafür muss ich ja die einzelnen Teilstrings "Hallo" und "Welt" aus dem Suchfeld rausfiltern und schauen ob das Ganze in der LSb ist (da er ja bei einem reinen vergleich beider Strings ein FALSE ausgeben würde, da "hallo Welt" <> "hallo_Welt").
Mein Problem ist dabei das Herausfiltern der Teilstrings. Ich nutze diesen Code:
Delphi-Quellcode:
var Suchtext : String;
u : integer;
Suchtext := edSuchen.Text;
u := 0;
repeat
begin
Length(Teilstrings,u+1);
if Pos(' ',Suchtext) > 0 then
Teilstrings[u] := AnsiLeftStr(Suchtext,Pos(' ',Suchtext)-1)
else
Teilstrings[u] := Suchtext;
Suchtext := AnsiRightStr(Suchtext,Length(Suchtext) - Pos(' ',Suchtext));
u := u + 1;
end
until Pos(' ',Suchtext) = 0;
Logischerweise findet er aber dabei nicht den letzten Teilstringwenn schon ein Leerzeichen vorkommt, er findet diesen erst wenn nach dem letzten Teilstring ein Leerzeichen kommt. Ich weiß nat. woran das Problem liegt (an der UNTIL-Bedingung), aber mir fällt einfach keine Möglichkeit ein das zu lösen...