// Es können Wörter und/oder Zahlen eines Textes gezählt werden.


// Getestet mit D4 unter XP

type 
  zuw = (nurZahlen, nurWorte, ZahlenUndWorte); 
 
function wortzahl(const s: string; was: zuw): Word; 
const 
  bstn = ['a'..'z', 'ä', 'ö', 'ü', 'A'..'Z', 'Ä', 'Ö', 'Ü', 'ß', '''']; 
  zhln = ['0'..'9']; 
  zchn = [',', '.']; 
var 
  i: integer; 
  flag: boolean; 
  chrs: set of char; 
  function zchntest: boolean; 
  begin 
    if (s[i] in zchn) and (was <> nurWorte) and (i > 1) 
      then result := (s[pred(i)] in zhln) and (s[succ(i)] in zhln) 
    else result := true; 
  end; 
begin 
  flag := true; 
  result := 0; 
  case was of 
    nurZahlen: chrs := zhln + zchn; 
    nurWorte: chrs := bstn; 
  else chrs := bstn + zhln + zchn; 
  end; 
  for i := 1 to length(s) do begin 
    if (s[i] in chrs) and zchntest then begin 
      if flag then begin 
        inc(result); 
        flag := false; 
      end; 
    end else flag := true; 
  end; 
end; 
 
// Beispielaufruf 
 
procedure TForm1.Button7Click(Sender: TObject); 
begin 
  showmessage('Der Text enthält ' + 
    inttostr(wortzahl(Memo1.text, ZahlenUndWorte)) + 
    ' Wort(e) bzw. Zahl(en).'); 
end;




 

Zugriffe seit 6.9.2001 auf Delphi-Ecke