Home » Tipps & Tricks » Object Pascal » Strings » Wörter in einem String zählen
Wörter in einem String zählen
Viele Textverarbeitungen bieten diese Funktion an: Wörter zählen…Mit dieser Funktion kannst Du auch so etwas realisieren. In der lokalen Funktion Seps kannst Du selbst festlegen, welche Zeichen als Indikator für ein neues Wort verwendet werden sollen.
Function WordCount(CText: String): Longint; Function Seps(As_Arg: Char): Boolean; Begin Seps := As_Arg In [#0..#$1F, ' ', '.', ',', '?', ':', ';', '(',')', '/', '']; End; Var Ix: Word; Work_Count: Longint; Begin Work_Count := 0; Ix := 1; While Ix <= Length(CText) Do Begin While (Ix <= Length(CText)) And (Seps(CText[Ix])) Do Inc(Ix); If Ix <= Length(CText) Then Begin Inc(Work_Count); While (Ix <= Length(CText)) And (Not Seps(CText[Ix])) Do Inc(Ix); End; End; Result := Work_Count; End;
Die Funktion könnte man Beispielsweise so aufrufen:
procedure TForm1.Button1Click(Sender: TObject); begin Caption:=IntToStr(WordCount(Memo1.Text)); end;
In diesem Falle würde in der Titelleiste des Formulars die Anzahl der Wörter des Textfeldes Memo1 stehen.