Man erkennt die Wörter in einem Text an den Trennzeichen. Liest man die Zeichen in einem String bis zum nächsten Trennzeichen aus, so erhält man einen Teilstring, der ein Wort darstellt. Mit Hilfe des Datentyps 'Menge' kann man sich endlose if-Abfragen sparen:
const umlaute : set of char = ['ä','ö','ü','ß','Ä','Ö','Ü'];
trennzeichen : set of char = ['.',',','.',';',' ','-'];
alphabet : set of char =['A'..'Z'];
Mengen unterscheiden sich von Feldern dadurch, daß ein Element nur einmal in einer Menge vorkommen kann. Außerdem können Mengen nur für ordinale (d.h. abzählbare) Typen deklariert werden. Die Abfrage, ob der Wert einer Variablen z.B. ein Umlaut ist, erfolgt einfach durch:
if ch in umlaute then....
if not ( ch in trennzeichen) then ....
Die folgende Prozedur zerlegt eine Zeile in ihre Bestandteile (Wörter) und trägt diese in eine ListBox ein:
procedure TForm1.ZerlegeInWorte(zeile : string);
var wort : string;
begin
ListBox2.Clear;
while length(zeile) > 0 do begin
wort := '';
repeat
wort := wort+zeile[1];
delete(zeile,1,1);
until (length(zeile) = 0) or (zeile[1] in trennzeichen) ;
ListBox2.Items.Add(wort);
while (length(zeile)>0) and (zeile[1] in trennzeichen) do delete(zeile,1,1);
end;
end;
Lade das Rumpfprogramm text3.pas und erweitere es für folgende Aufgabenstellungen
Aufgaben: