program prace_s_textem;

uses crt;

const soubor = 'text.dta';

var F : text;
    podminka : char;
    text : string;

procedure Novy;
begin
  assign(F,soubor);
  rewrite(F);
  Close(F);
end;

procedure Pridani;
begin
  textcolor(white);
  clrscr;
  assign(F,soubor);
  append(F);
  writeln('Vloz text, ktery chces ulozit na konec souboru : ');
  readln(text);
  writeln(F,text);
  close(F);
end;

procedure Statistika(ret: string);
var l, pocet_samohlasek: integer;
    samA, samE, samI, samO, samU, samY : integer;
    samohlasky: set of char;
begin
  samohlasky := ['A','E','I','O','U','Y','a','e','i','o','u','y'];
  pocet_samohlasek := 0;
  samA := 0;
  samE := 0;
  samI := 0;
  samO := 0;
  samU := 0;
  samY := 0;
  for l := 1 to length(ret) do
  begin
    if (ret[l] in samohlasky) then pocet_samohlasek := pocet_samohlasek + 1;
    case ret[l] of
      'A','a': inc(samA);
      'E','e': inc(samE);
      'I','i': inc(samI);
      'O','o': inc(samO);
      'U','u': inc(samU);
      'Y','y': inc(samY);
    end;
  end;
  writeln('Pocet samohlasek :  celkem - ',pocet_samohlasek);
  writeln('A, a - ',samA,', E, e - ',samE,', I, i - ',samI,', O, o - ',samO,', U, u - ',samU,', Y, y - ',samY);
end;

procedure ZobrazeniStat;
begin
  textcolor(yellow);
  clrscr;
  writeln('Obsah souboru :');
  writeln;
  assign(F,soubor);
  reset(F);
  while not(eof(F)) do
  begin
    readln(F,text);
    textcolor(yellow);
    write(text,'     ');
    textcolor(white);
    Statistika(text);
  end;
  textcolor(yellow);
  writeln;
  writeln('Stiskni ENTER ...');
  readln;
  close(F);
end;

procedure Zobrazeni;
begin
  textcolor(yellow);
  clrscr;
  writeln('Obsah souboru :');
  writeln;
  assign(F,soubor);
  reset(F);
  while not(eof(F)) do
  begin
    readln(F,text);
    writeln(text,'     ');
  end;
  writeln;
  writeln('Stiskni ENTER ...');
  readln;
  close(F);
end;

BEGIN
  repeat
    textbackground(0);
    clrscr;
    textcolor(lightred);
    gotoxy(16,6); writeln('Program na demonstraci praci s textovym souborem');
    gotoxy(28,8); writeln('David Padrta  -  IVT 3');
    textcolor(white);
    gotoxy(4,12); writeln('Vytvoreni noveho souboru                             :  ');
    gotoxy(4,13); writeln('Pridani textove polozky                              :  ');
    gotoxy(4,14); writeln('Zobrazeni obsahu souboru bez statistiky samohlasek   :  ');
    gotoxy(4,15); writeln('Zobrazeni obsahu souboru se statistikou samohlasek   :  ');
    textcolor(lightred);
    gotoxy(4,16); writeln('様様様様様様様様様様様様様様様様様様様様様様様様様様様様様様様様様様様');
    textcolor(white);
    gotoxy(4,18); writeln('Ukonceni programu                                    :  ');
    textcolor(lightgreen);
    gotoxy(59,12); writeln('zmackni N nebo n');
    gotoxy(59,13); writeln('zmackni P nebo p');
    gotoxy(59,14); writeln('zmackni O nebo o');
    gotoxy(59,15); writeln('zmackni S nebo s');
    gotoxy(59,18); writeln('zmackni K nebo k');
    podminka := readkey;
    case podminka of
     'N','n': Novy;
     'P','p': Pridani;
     'O','o': Zobrazeni;
     'S','s': ZobrazeniStat;
    end;
  until ((podminka = 'K') or (podminka = 'k'));
  clrscr;
END.