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

Задача

Требуется скопировать данные из одного файла в другой, но в обратном порядке.

Решение

 

Алгоритм решения задачи: 

Возможно, есть более простое решение, но в данном случае был использован массив.

Сначала данные считываются из исходного файла и заносятся в массив.

Количество элементов в массиве равно значению переменной k.

Из массива символы «читаются» в обратном порядке и последовательно записываются во второй файл.

Массив не потребуется, если узнать, как в Паскале считывать данные, начиная с конца файла (задом наперед).

Программа на языке Паскаль: 

 

var
    f1, f2: file of char;
    c: char;
    arr: array [1..100] of char;
    k, i: integer;
 
begin
    assign (f1, 'c:\file1.txt');
    reset (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');
    rewrite (f2);
 
    for i := k-1 downto 1 do begin
        write (f2, arr[i])
    end;
 
    close (f1);
    close (f2);
 
    reset (f2);
 
    writeln;
    while not eof (f2) do begin
        read (f2, c);
        write (c:2)
    end;
 
readln
end.

 

Тема

Файлы

Уровень

Комбинированные задачи

Теги

Комментарии

Добавить комментарий