obrcopy.PAS

{* Копирование данных в обратном порядке *}

Unit OBRCOPY;
Interface
Implementation
Begin
 writeln('Копирование данных из одного файла в другой, но в обратном порядке.');
End.

Program pas0;

Uses obrcopy.pas; {* Эту строку можно удалить *}
Var {* Объявление переменных *}
  f1  : File Of char;
  f2  : File Of char;
  c   : char;
  arr : Array [1..100] Of char;
  k   : integer;
  i   : integer;
Begin
  assign (f1, 'c:file1.txt'); {* Подключение к файлу 'c:file1.txt' через переменную f1 *}
  reset (f1); {* Чтение из файла через переменную f1 *}
  k := 1;
  While Not eof (f1) Do {* Если в файле ещё есть данные, то продолжаем *}
  Begin
    read (f1, c);
    arr[k] := c;
    write (c : 2);
    k := k + 1
  End;
  assign (f2, 'c:file2.txt'); {* Связывание f2 с файлом 'c:file2.txt' *}
  rewrite (f2); {* Запись в файл через переменную f2 *}
  For i := k - 1 Downto 1 Do
  Begin
    write (f2, arr[i])
  End;
  close (f1); {* Закрытие файла *}
  close (f2); {* Закрытие файла *}
  reset (f2); {* Подготовка переменной f2 для чтения из файла *}
  writeln; {* Пустая строка *}
  While Not eof (f2) Do {* Пока не конец файла *}
  Begin
    read (f2, c);
    write (c : 2)
  End;
  readln
End.