předchozí návrat do menu uložit zdrojový kód následující

Cvičení 24

Vytvořte program, který bude v textovém souboru vytvářet telefonní seznam. Jméno souboru bude zadávat uživatel při spuštění programu (lze i s cestou). Soubor bude mít hlavičku, pod kterou budou uvedena data ve tvaru viz. ukázka. Data nebudou nijak tříděna. Vytvořte procedury pro výpis obsahu souboru, přidání nové položky do souboru a pro výběr (založení) jiného souboru. Uživatel bude mít rovněž možnost současný soubor zcela zrušit. V tomto případě pak bude tázán, zda chce otevřít jiný soubor, nebo chce program ukončit.


program ukol24;
uses crt;
const {konstanta pro generovani dotazu behem zadani}
   polozka: array[1..4] of string= ('prijmeni','jmeno',
   'telefonni cislo','cislo na mobil');
var
   zadani,radek,soubor:string;
   s:text;                    {textovy soubor}
   i:integer;
   odpoved:char;

procedure novy; {vytvori novy soubor}
 begin
  rewrite(s);
   write(s,'Prijmeni':15); {a zapise do neho hlavicku}
   write(s,'Jmeno':15);
   write(s,'Telefon':15);
   writeln(s,'Mobil':15);
   for i:=1 to 60 do write(s,'-');
   writeln(s);
  close(s);
 end;

procedure inicializace;
 begin
  clrscr;
  write('Jmeno souboru: '); {vyber souboru}
  readln(soubor);
  assign(s,soubor);
  {$I-}
  reset(s);             {testuje jestli soubor existuje}
  {$I+}
  if ioresult<>0 then novy {kdyz ne tak ho vytvori}
   else close(s);
 end;

procedure vypis; {vypise obsah souboru}
 begin
  clrscr;
  reset(s);
  while not eof(s) do begin
   readln(s,radek);
   writeln(radek);
  end;
  repeat until keypressed;
  close(s);
 end;

procedure vymaz; {vymaze aktualni soubor}
 begin
  clrscr;
  erase(s);
  writeln('Soubor ',soubor,' byl smazan!');
  writeln('Chcete vybrat jiny soubor A/N');
  if upcase(readkey)='A' then inicializace {otevre bud jiny soubor}
   else halt;                              {nebo ukonci program}
 end;

procedure pridat; {prida polozku do souboru}
 begin
 append(s);
 repeat
    clrscr;

    for i:=1 to 4 do begin {generuje dotaz pomoci konstant}
    write('Zadejte ',polozka[i],': ');
    readln(zadani);
    write(s,zadani:15);
    end;

   writeln(s);
   writeln('----------------------');
   writeln('Dalsi zaznam? (A/N)');
  until upcase(readkey)<>'A';
  close(s);
 end;

begin   { hlavni program - menu}
 inicializace;
 repeat
  clrscr;
  writeln('Soubor: ',soubor);
  writeln('---------------------');
  writeln('Vypsat obsah ...... V');
  writeln('Pridat polozku .... P');
  writeln('Smazat soubor ..... S');
  writeln('Zmena souboru ..... Z');
  writeln('---------------------');
  writeln('Konec ........... Esc');
  odpoved:=upcase(readkey);
  case odpoved of
   'V': vypis;
   'P': pridat;
   'Z': inicializace;
   'S': vymaz;
  end;
 until odpoved=chr(27);
end.

Zpět na: Lekce 10


předchozí návrat do menu uložit zdrojový kód následující
Klíčová slova v Pascal