Einzelnen Beitrag anzeigen

Aike

Registriert seit: 2. Okt 2004
319 Beiträge
 
#34

Re: Prüfen ob Wörter in einem String vorkommen, Reihenfolge

  Alt 17. Okt 2004, 21:43
Ich habe es jetzt wie folgt hinbekommen:

Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var
  DelphiPraxisStrings : String;
  sl : TStringList;
  ndx : Integer;
  okay : Boolean;
  x:integer;
begin
  DelphiPraxisStrings := getHTML('http://www.delphipraxis.net'); //Nur als Bsp.

  lstbxGetrennt.Items.Clear;
  lstbxVerbunden.Items.Clear;

  sl := TStringList.Create;
  try
    sl.Delimiter := ' ';
    sl.Sorted:=True;

    for x:=0 to lstbxGesucht.Count-1 do
    begin
      sl.DelimitedText := lstbxGesucht.Items[x];
      sl.Duplicates:=dupIgnore;
      for ndx := 0 to pred (sl.Count) do
      begin
        okay := Pos (sl.Strings[ndx],DelphiPraxisStrings) > 0; // Wort ist vorhanden
        if not (okay) then
        begin
          lstbxGetrennt.Items.Add(sl.Strings[ndx]); //Wort steht nicht in der Liste
        end
        else
        begin
          lstbxVerbunden.Items.Add(sl.Strings[ndx]); //Wort steht in der StringListe
        end;
      end;
    end;
  finally
    FreeAndNil (sl);
  end;
end;
Jetzt fehlt mir nur noch eine Möglichkeit auch aufeinander folgene Strings zu untersuchen ... wie eben "Guten Tag", welches in "lstbxGesucht.Items[x]" gespeichert ist.

Mir ist leider gerade aufgefallen, dass auch Substrings gefunden werden. In diesem Thread steht ja schon etwas von der function "SplitIntoWords", aber ich weiß nicht, was ich damit anfangen soll
Achim
  Mit Zitat antworten Zitat