home *** CD-ROM | disk | FTP | other *** search
-
- PROGRAM Adressdatei;
-
- USES Crt;
-
- CONST Maxn = 40;
-
- TYPE Setofchar = SET OF Char;
- Kurzstring = String [20];
- Adresse = RECORD
- Test : Boolean;
- Name, Vorname, Strasse : Kurzstring;
- PLZ : Integer;
- Ort, Tel :Kurzstring
- END; { Adresse }
- Filetyp = FILE OF Adresse;
-
- VAR Person : ARRAY [1..Maxn] OF Adresse;
- Leer : Kurzstring;
- Datei : Filetyp;
- Dateiname : String [15];
- ch : Char;
- Anzahl, Nr, i, k : Integer;
- J, JN, N : SET OF Char;
-
- FUNCTION Lieszeichen (m : Setofchar) : Char;
- VAR ch : Char;
- OK : Boolean;
- BEGIN
- REPEAT
- ch:=ReadKey; { Lies Zeichen ohne Echo }
- OK := ch IN m;
- IF NOT OK THEN Write (Chr(7)) { Bell }
- ELSE IF ch IN [' '..Chr(126)] { druckbare Zeichen }
- THEN Write (ch)
- UNTIL OK;
- Lieszeichen := ch
- END; { von Lieszeichen }
-
- PROCEDURE Lesen (N : Integer; VAR Satz : Adresse);
- BEGIN
- {folgt noch}
- END;
-
- PROCEDURE Schreiben (N : Integer; Satz : Adresse);
- BEGIN
- {folgt noch}
- END;
-
- PROCEDURE Veraendern;
- BEGIN
- {folgt noch}
- END;
-
- PROCEDURE Loeschen;
- BEGIN
- {folgt noch}
- END;
-
- PROCEDURE Alphasort;
- BEGIN
- {folgt noch}
- END;
-
- PROCEDURE Drucken;
- BEGIN
- { Übung }
- END;
-
- PROCEDURE Suchen;
- BEGIN
- { Übung }
- END;
-
-
- PROCEDURE Menu;
- VAR Frage : Char;
- BEGIN
- REPEAT
- ClrScr;
- Writeln; Writeln;
- Writeln ('Die Datei hat ', Anzahl:3);
- Writeln ('tatsächliche Elemente.');
- Writeln; Writeln ('Wählen Sie:');
- Writeln; Writeln;
- Writeln (' V (erändern von Daten ');
- Writeln (' L (öschen von Daten ');
- Writeln (' A (lphabetisch Ordnen ');
- Writeln (' D (rucken der Datei ');
- Writeln (' S (uchen nach Kriterien ');
- Writeln;
- Writeln (' Z (um Schluss ');
- Frage:=Lieszeichen(['V','v','L','l','A','a','D','d',
- 'S','s','Z','z']);
- CASE Frage OF
- 'V','v' : Veraendern;
- 'L','l' : Loeschen;
- 'A','a' : Alphasort;
- 'D','d' : Drucken;
- 'S','s' : Suchen
- END { case }
- UNTIL Frage IN ['Z','z']
- END; { von Menu }
-
- PROCEDURE Start;
- LABEL Exit1;
- VAR Satz : Adresse;
-
- PROCEDURE Neu;
- BEGIN { von Neu }
- Leer:=' '; { 20 mal Leer }
- Assign(Datei,Dateiname);
- Rewrite (Datei);
- FOR i:=1 TO Maxn DO BEGIN
- WITH Person [i] DO BEGIN { leere Datei erzeugen }
- Test := False; Name := Leer; Vorname := Leer;
- Ort := Leer; PLZ := 0; Strasse := Leer; Tel := Leer
- END; { With }
- Write(Datei,Person [i]);
- END; { for }
- Close (Datei)
- END; { von Neu }
-
- BEGIN { von Start }
- Anzahl := 0; { noch keine Datei }
- Writeln; Writeln;
- Write ('Eingabe des Dateinamens: '); Readln (Dateiname);
- Assign(Datei, Dateiname);
- {$I-}Reset(Datei); {$I+}
- IF IOResult <> 0 THEN BEGIN
- Writeln ('Datei existiert nicht! ');
- Write ('Wollen Sie eine neue Datei (J/N) ?');
- ch := Lieszeichen (JN);
- IF ch IN J THEN Neu ELSE GOTO Exit1
- END; { von if }
- Reset(Datei);
- FOR i:=0 TO Maxn-1 DO BEGIN
- Seek(Datei,i);
- Read(Datei,Satz);
- IF Satz.Test THEN Anzahl := Anzahl +1
- END; { von for }
- Menu;
- Close (Datei);
- Exit1:
- END; { von Start }
-
-
- BEGIN { Hauptprogramm }
- J := ['J','j'];
- N := ['N','n'];
- JN := ['J','j','N','n'];
- ClrScr;
- Start;
- ClrScr;
- Writeln ('Das wars...')
- END.
-
-