Hallöchen!
ich habe in meinem Programm zwei Listboxen und einen großen String. Dieser String soll untersucht werden, ob Worte aus Listbox1 drin stehen, und falls Ja, sollen sie in Listbox2 eingetragen werden.
Das sieht etwas so aus:
string:='Delphi Praxis Forum Code Center SQL XML Delphi-Forum Delphi'
Jetzt wird der String untersucht; das sieht so aus:
Delphi-Quellcode:
sl := TStringList.Create;
try
sl.Delimiter := #9;
sl.Sorted:=True;
for x:=0 to ListboxGesuchteWorte.Count-1 do
begin
sl.DelimitedText := ListboxGesuchteWorte.Items[x];
sl.Duplicates:=dupIgnore;
for ndx := 0 to pred (sl.Count) do
begin
okay := Pos (sl.Strings[ndx],MeinGrosserString) > 0; // Wort ist vorhanden
if okay then
ListboxIstVorhanden.Items.Add(sl.Strings[ndx]);
end;
end;
finally
FreeAndNil (sl);
end;
Allerdings gibt es bei
ListboxIstVorhanden.Items.Add(sl.Strings[ndx]);
das Problem, dass die Einträge aus ListboxGesuchteWorte zerstückelt werden.
Wenn ich im String von oben nach "Delphi Forum" suche, wird mir zurückgegeben, dass sowohl "Delphi" als auch "Forum" vorkommen. Das ist aber nicht richtig (in meinem Fall), denn "Delphi Forum" soll als
eine Zeichenkette gewertet werden.
Ich hab das schonmal ein bisschen in
diesem Thread angeschnitten.
Vielen Dank für eure Hilfe