ExtractWord

Verweis: Pos PosEx WordPosition WordCount
Uses: StrUtils
Eingabe: PositionSuch(Integer),Satz(String),Zeichen(SetOfChar)
Ausgabe: EinzelWort(String)
Funktion: Sucht in einem String nach dem x-ten Wort welches im Set vorgegeben wurde.

Beispiel 1

Vorbereitung: Erstellen sie eine IDE Anwendung und ziehen Sie einen TButton auf die Form. Binden Sie die Unit StrUtils mit der Uses-Klausel in die Anwendung ein. Doppelklicken sie auf den Button und ersetzen Sie das Ereignis durch folgenden Quelltext:

procedure TForm1.Button1Click(Sender: TObject);
var
  Satz, EinzelWort: string;
  Wort: integer;
begin
  // Bestücken der Vaiablen
  Satz := 'Es gibt gute und schlechte Tage.';
  //Welches wort?
  Wort := 3;
  //Isoliere das einzelne Wort
  EinzelWort := ExtractWord(Wort, Satz, [' ']);
  // Gib beide aus
  ShowMessage('Aus dem Satz: ' + Satz + LineEnding +
    'Habe ich das ' + IntToStr(Wort) +
    '.Wort isoliert. Es heißt: ' + EinzelWort);
end;

Die Funktion ExtractWord, isoliert ein Wort aus einem Satz. Die Grenzen des Wortes werden von den einzelnen Zeichen die in Klammern angegeben worden bestimmt. Hierbei handelt es sich um einzelne Zeichen die angegeben werden können.

Lazarus ExtractWord liest einzelne Worte aus dem Satz.
ExtractWord isoliert Worte.

Die Umlaute gehören hier leider nicht dazu. Jedoch wird in der Praxis wohl kaum, für eine Wortbegrenzung ein Umlaut benutzt. Da hier kein Zahlenwert, sondern das Isolierte Wort zurück gegeben wird, können wir bei diesem Befehl auch Umlaute einsetzen. Sollte das übergebene Zeichen nicht dabei sein, so gibt die Funktion einen leeren String zurück. Sollte das Zeichen nicht so oft dabei sein wie angegeben. hier in dem Beispiel 8 für das Wort. So wird ebenfalls ein leerer String zurück gegeben.

Es kann auch StdWordDelims eingesetzt werden

Des weiteren können Sie auch hier die vordefinierte Konstante StdWordDelims benutzen. Dies eine Konstante die sich in der Unit StrUtils befindet. Wie sie diese Konstante verwenden können hatte ich bereits schon bei WordCount erwähnt.Bitte schauen sie dort nach.