program Demo_von_Gleich; Type WrkString=String[20]; Adresse=record Name:WrkString; Strasse:WrkString; Postleitzahl:String[4]; Ort:WrkString; end; const MaxZahl=25; var i,j,Anzahl:integer; Liste:array[1..MaxZahl] of Adresse; Index:array[1..MaxZahl] of integer; Maske:Adresse; {$I Gleich.bib } procedure Eingabe(var DatenSatz:Adresse); begin with Datensatz do begin write('Name : ');readln(Name); if Name<>'###' then begin write('Stra~e : ');readln(Strasse); write('Postleitzahl: ');readln(Postleitzahl); write('Ort : ');readln(Ort); end; end; end; begin {Hauptprogramm} clrscr; writeln('Demonstrationsprogramm f}r Funktion Gleich'); writeln; write('Geben Sie eine Adressenliste ein'); writeln(' (Ende mit Name=###)'); i:=0; repeat writeln; i:=i+1; Eingabe(Liste[i]); until Liste[i].Name='###'; writeln; write('Sie k|nnen nun mit einer Maske,'); writeln(' die die Joker * und ? enthalten'); writeln('darf, eine Indexdatei erstellen.'); writeln;writeln('Maske :'); Eingabe(Maske); Anzahl:=0; with Maske do For j:=1 to i-1 do begin if Gleich(Name,Liste[j].Name) and Gleich(Strasse,Liste[j].Strasse) and Gleich(Postleitzahl,Liste[j].Postleitzahl) and Gleich(Ort,Liste[j].Ort) then begin Anzahl:=Anzahl+1; Index[Anzahl]:=j; end; end; writeln; for j:=1 to Anzahl do with Liste[Index[j]] do writeln(Name,' ',Strasse,' ',Postleitzahl,' ',Ort); end.