@leo1232

По какой причине после написания текста. Вместо того, чтобы отобразить результат программа прекращает свое действие?

По какой причине после написания текста. Вместо того, чтобы отобразить результат программа прекращает свое действие.
Суть программы: Программа должна выполнить следующие действия: организовать построчное чтение данных из файла, увеличить на 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.
  • Вопрос задан
  • 61 просмотр
Пригласить эксперта
Ответы на вопрос 1
HemulGM
@HemulGM
Delphi Developer, сис. админ
Потому что у тебя не вызывается "шифрование"
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы