Przepraszam za tamten temat
Mógłby ktos sprawdzic czy procedura menu jest dobra albo jeszcze podtuningowac to menu
program cezar1;
{$APPTYPE CONSOLE}
uses
SysUtils,classes;
type
chars=set of char;
const
ileliter = 26;
function readfrontfile(filename:string):tstringlist;
var list:tstringlist;
plik:text;
line:string;
begin
list:=tstringlist.create;
assign(plik,filename);
reset(plik);
while not EOF(plik) do
begin
readln(plik,line);
list.add(line);
end;
close(plik);
result:=list;
end;
procedure print(source:tstringlist);
var i:integer;
begin
for i:=0 to source.count -1 do
writeln(source[i]);
end;
procedure writetofile(filename:string; source:tstringlist);
var plik:text;
i:integer;
begin
assign(plik,filename);
rewrite(plik);
for i:=0 to source.count -1 do
writeln(plik,source[i]);
close(plik);
end;
function isalpha(znak:char):boolean;
var litery:chars;
begin
litery := ['A'..'Z'];
if upcase(znak) in litery then isalpha := true
else isalpha:=false
end;
function kodujznak(znak:char;klucz:integer):char;
var wynik:char;
begin
klucz:=klucz mod ileliter;
if isalpha(znak) then
begin
wynik:=chr(ord(znak)+klucz);
if not isalpha(wynik) then wynik:=chr(ord(wynik)-ileliter);
end
else wynik:= znak;
kodujznak:=wynik;
end;
function kodujstring(linia:string;klucz:integer):string;
var wynik:string;
i:integer;
begin
wynik:='';
for i := 1 to length(linia) do
wynik:=wynik+kodujznak(linia[i],klucz);
kodujstring:=wynik;
end;
function cezar(source:tstringlist; klucz:integer):tstringlist;
var wynik:tstringlist;
i:integer;
begin
wynik:=tstringlist.create;
for i := 0 to source.count -1 do
wynik.add(kodujstring(source[i],klucz));
cezar:=wynik;
end;
procedure menu;
begin
writeln('1- Wyswietl niezakodowany plik');
writeln('2- Wyswietl zakodowany');
writeln('3- Zapis do pliku');
writeln('4- Zakoncz program');
end;
procedure cezarmenu;
var zakod,list:tstringlist;
begin
list:=tstringlist.create;
zakod:= tstringlist.create;
list:=readfrontfile('1.txt');
zakod:=cezar(list,3);
writeln('zapisano plik');
end;
var i,wybor:integer;
list,zakod:tstringlist;
begin
menu;
repeat
readln(wybor);
if wybor>4 then
writeln('niepoprawna opcja ');
case wybor of
1 : print(list);
2 : print(zakod);
3 : cezarmenu;
end;
until wybor=4;
writetofile('zakodowane.txt',zakod);
end.