Einzelnen Beitrag anzeigen

Benutzerbild von Sharky
Sharky

Registriert seit: 29. Mai 2002
Ort: Frankfurt
8.252 Beiträge
 
Delphi 2006 Professional
 
#12

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

  Alt 23. Aug 2004, 18:47
Zitat von lume96:
...2) Durch den direkten Vergleich mit Pos() werden auch Substrings gefunden,...
Hai Lutz,
das ist durch den einsatz einer zweiten TStringList leich zu umgehen. Dann bleibt "nur noch" das Problem mit dem Delimiter

Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var
  str1 : String;
  str2 : String;
  sl1 : TStringList;
  sl2 : TStringList;
  ndx : Integer;
  okay : Boolean;
begin
  str1 := 'Otto Harfe spielt gern';
  str2 := 'Otto spielt gern Harfe am Wochenende';
  okay := False;
  sl1 := TStringList.Create;
  sl2 := TStringList.Create;
  try
    sl1.Delimiter := ' ';
    sl1.DelimitedText := str1;
    sl2.Delimiter := ' ';
    sl2.DelimitedText := str2;
    for ndx := 0 to pred (sl1.Count) do
    begin
      okay := sl2.IndexOf(sl1.Strings[ndx]) > -1;
      if not (okay) then
      begin
        break;
      end;
    end;
  finally
    FreeAndNil (sl1);
    FreeAndNil (sl2);
  end;
  if (okay) then
  begin
    ShowMessage ('Alle Wörter gefunden');
  end
  else
  begin
    ShowMessage ('Nicht alle Wörter gefunden');
  end;
end;
Stephan B.
"Lasst den Gänsen ihre Füßchen"
  Mit Zitat antworten Zitat