zadach309.PAS

{* Задача 309 *}

Unit ZADACH309;
Interface
Implementation
Begin
 writeln('Дан файл, содержащий зашифрованный русский текст. Каждая буква заменяется на следующую за ней (буква я заменяется на а). Получить в новом файле расшифровку данного текста. ');
End.

Program pas13599;

Uses zadach309.pas; {* Эту строку можно удалить *}
Uses crt; {* Вызов внешних функций *}
Var {* Необходимые переменные *}
  s    : char;
  txt  : text;
  txt1 : text;
  i    : integer;
  j    : integer;
Begin
  clrscr; {* Очистка экрана *}
  assign(txt, 'c:txt.txt'); {* Подключение к файлу 'c:txt.txt' через переменную txt *}
  reset(txt); {* Чтение из файла через переменную txt *}
  assign(txt1, 'c:txt1.txt'); {* Подключение к файлу 'c:txt1.txt' через переменную txt1 *}
  rewrite(txt1); {* Подготовка переменной txt1 для записи в файл *}
  While Not(EOF(txt)) Do
  Begin
    read(txt, s);
    If ord(s) In [128..158] Then
      write(txt1, chr(ord(s) + 1));
    If ord(s) = 159 Then
      write(txt1, chr(ord(128)));
    If ord(s) In [160..174] Then
      write(txt1, chr(ord(s) + 1));
    If ord(s) = 175 Then
      write(txt1, chr(ord(224)));
    If ord(s) In [224..238] Then
      write(txt1, chr(ord(s) + 1));
    If ord(s) = 239 Then
      write(txt1, chr(ord(160)));
    If Not(ord(s) In [128..175, 224..239]) Then
      write(txt1, s);
  End;
  close (txt); {* Закрытие файла *}
  close (txt1); {* Закрыть файл txt1 *}
End.