PROGRAM Pliki;

USES Crt;

TYPE Osoba = RECORD
               Imie, Nazw : String[15];
               Adres      : String[50];
               Tel        : String[10];
             END;
     Pli = FILE OF Osoba;

VAR Nazwa : String;
    Plik  : Pli;
    x     : Osoba;
    Zn    : Char;
    Log   : Boolean;

PROCEDURE Tworz(Var Plik : Pli);
Begin
  ClrScr;
  Write('Podaj nazwe pliku i sciezke : ');
  ReadLn(Nazwa);
  Assign(Plik, Nazwa);
  Rewrite(Plik);
End;

PROCEDURE Otworz(Var Plik : Pli);
Begin
  ClrScr;
  Write('Podaj nazwe pliku i sciezke : ');
  ReadLn(Nazwa);
  Assign(Plik, Nazwa);
  Reset(Plik);
End;

PROCEDURE Wpisz(Var Plik : Pli);
Begin
  ClrScr;
  Write('Podaj imie     : ');
  ReadLn(x.Imie);
  Write('Podaj nazwisko : ');
  ReadLn(x.Nazw);
  Write('Podaj adres    : ');
  ReadLn(x.Adres);
  Write('Podaj telefon  : ');
  ReadLn(x.Tel);
  Seek(Plik, FileSize(Plik));
  Write(Plik, x);
End;

PROCEDURE Wypisz(Var Plik : Pli);
Begin
  While Not Eof(Plik) Do
    Begin
      ClrScr;
      Read(Plik, x);
      Writeln('IMIE     : ', x.Imie);
      Writeln('NAZWISKO : ', x.Nazw);
      Writeln('ADRES    : ', x.Adres);
      Writeln('TELEFON  : ', x.Tel);
      Zn:=ReadKey;
    End;
End;

BEGIN
  Log:=False;
  Repeat
    ClrScr;
    WriteLn('1 : Tworzenie nowego pliku.');
    WriteLn('2 : Otwieranie istniejacego pliku.');
    WriteLn('3 : Wpisywanie danych do pliku.');
    WriteLn('4 : Wyswietlenie zawartosci pliku.');
    WriteLn('----------------------------------');
    WriteLn('5 : KONIEC');
    Zn:=ReadKey;
    Case Zn Of
       '1' : Begin
               Tworz(Plik);
               Log:=True;
             End;
       '2' : Begin
               Otworz(Plik);
               Log:=True;
             End;
       '3' : Begin
               If Log=True Then
                Begin
                  Wpisz(Plik);
                  Close(Plik);
                  Log:=False;
                End;
             End;
       '4' : Begin
               If Log=True Then
                 Begin
                   Wypisz(Plik);
                   Close(Plik);
                   Log:=False;
                 End;
             End;
    End;
  Until Zn = '5';
END.