program menushka;

uses
  modulmenu, slova, crt;



{
------------------------------------
--процедура чтения данных из файла--
------------------------------------
}
procedure read_file(var out_veck: massive; var count: integer);
var
  i: integer;
  file_name, str: string;
  file_input: text;
begin
  Writeln('Введите имя файла для чтения данных:');
  readln(file_name);    {получаем имя файла}
  Assign(file_input, file_name);  {окрываем указанный файл}
  Reset(file_input);

  count := 0;
  while not EOF(file_input) do  {в цикле построчно читаем файл}
  begin
    Inc(count);
    readln(file_input, str); {считали строку}
    out_veck[count] := str;  {добавили в массив считанную строку}
  end;
  Close(file_input);  {закрыли файл}
end;


{
-------------------------------------
---процедура вывода данных в файл ---
-------------------------------------
}
procedure write_file(out_veck: massive; count: integer);{запись в файл}
var
  i: integer;
  file_name: string;
  file_out: text;
begin
  Writeln('Введите имя файла для записи данных:');
  readln(file_name);
  Assign(file_out, file_name);
  Rewrite(file_out);

  for i := 1 to count do
    Write(file_out, out_veck[i], ' ');
 writeln(file_out);

  Close(file_out);
end;


{
-------------------------------------------
--  процедура ввода данных с клавиатуры  --
-------------------------------------------
}
procedure input_scr(var out_veck: massive; var count: integer);{ввод с клавиатуры}
var
  i: integer;
  str: string;
begin
  writeln('введите количество вводимых строк:');
  readln(count);
  for i := 1 to count do
  begin
    writeln('введите строку ', i, ':');
    readln(str);
    out_veck[i] := str;
  end;
end;


{
--------------------------
--  основная программа  --
--------------------------
}
var
  s1, s2, t, p1, p2, x: string;
  l: byte;
  h: char;
  f1, f2: Text;
  m, i, k, n: integer;
  str: massive;
  out_veck: massive;

begin
  {
  ---------------------------
  --  выбор способа ввода  --
  ---------------------------
  }
  t  := 'Меню ввода данных';
  s1 := 'Ввод с клавиатуры';
  s2 := 'Ввод из файла ';
  Menu(s1, s2, t, l, h);
  m := l;

  if (l = 1) and (h = #13) then  {vvod iz faila}
    read_file(str, n);  {читаем данные из файла в массив str, n - число строк которые хранятся в массиве}

  if (l = 2) and (h = #13) then   {ручной ввод данных}
    input_scr(str, n);

  {
  -----------------------------------
  --  выбор запускаемой программы  --
  -----------------------------------
  }
  t  := 'Какую программу запустить';
  s1 :='      слова перевёртыши';
  s2 :='относительная частота символов';
  Menu(s1, s2, t, l, h);
  m := l;

  if (l = 1) and (h = #13) then {запуск программы "частота"}
  begin
    k := 1;
    for i := 1 to n do
    begin

      PoiskSimvolov(str, n, out_veck, k);


      {рисуем график }

    end;
  end;

  if (l = 2) and (h = #13) then {запуск программы "перевёртыши"}
    {begin}
    for i := 1 to n do  {запуск поиска слов, n проходов, больше не надо, т.к. не может быть записей больше чем n}
      PoiskSlov(str[i], out_veck, k);
    {end;}


  {
  ---------------------------
  --  выбор вывода данных  --
  ---------------------------
  }
  t  := 'Меню вывода данных';
  s1 := 'Вывод на экран ';
  s2 := 'Запись в файл';
  Menu(s1, s2, t, l, h);

    {
    if l = 1 then
      writeln(s2, ':')
    else
      writeln(s1, ':');
    }
  if (l = 1) and (h = #13) then {запись в файл}
    write_file(out_veck, k);

  if (l = 2) and (h = #13) then {вывод на экран}
    {
      begin
       Write('слова перевертыши: ');
     }
    for i := 1 to k do
      Write(out_veck[i], ' ');
    {
     writeln();
     writeln('число слов: ', k);
    end;

    end;
     }
  readln;
end.