По какой причине после написания текста. Вместо того, чтобы отобразить результат программа прекращает свое действие.
Суть программы: Программа должна выполнить следующие действия: организовать построчное чтение данных из файла, увеличить на 1 код каждого символа строки, записать строку в выходной файл, аналогичным образом выполнить расшифровку зашифрованного файла. Каждое действие оформляется как подпрограмма. Главная программа реализует только диалоговый цикл взаимодействия с пользователем.
program Project21;
{$APPTYPE CONSOLE}
{$R *.res}
uses
System.SysUtils;
var
f1, f2: Text;
N1, N2: string;
ED: byte;
// Расшифровка
function Encode_String(S: string): string;
var
i, L: byte;
begin
L := Length(S);
for i := 1 to L do
S[i] := Chr(Ord(S[i]) + 1);
Encode_String := S; // или Result := S;
end;
//Шифровка
function Decode_String(S: string): string;
var
i, L: byte;
S1: string;
begin
S1 := '';
L := Length(S);
for i := 1 to L do
S1 := S1 + Chr(Ord(S[i]) - 1);
Decode_String := S1;
end;
procedure Encode_File(Nm1, Nm2: string);
var
S: string;
begin
Assign(f1, Nm1);
Reset(f1);
Assign(f2, Nm2);
Rewrite(f2);
repeat
Readln(f1, S);
Writeln(f2, Encode_String(S));
until EoF(f1);
Close(f1);
Close(f2);
end;
procedure Decode_File(Nm1, Nm2: string);
var
S: string;
begin
Assign(f1, Nm1);
Reset(f1);
Assign(f2, Nm2);
Rewrite(f2);
repeat
Readln(f1, S);
Writeln(f2, Decode_String(S));
until EoF(f1);
Close(f1);
Close(f2);
end;
begin
repeat
Writeln('Choose the action: 1 - encode');
Writeln(' 2 - decode');
Writeln(' 0 - quit');
Readln(ED);
case ED of
1:
begin
write('Initial file name (full path): ');
readln(N1);
write('Encoded file name (full path): ');
readln(N2);
end;
2:
begin
write('Encoded file name (full path): ');
readln(N1);
write('Decoded file name (full path): ');
readln(N2);
Decode_File(N1, N2);
end;
end;
Writeln;
until ED = 0;
end.