Вывод содержимого файла в обратном порядке - Turbo Pascal
Формулировка задачи:
Выведите в обратном порядке содержимое всего файла полностью. Для этого считайте файл целиком при помощи метода read().
Примеры
входные данные
Beautiful is better than ugly.
Explicit is better than implicit.
Simple is better than complex.
Complex is better than complicated.
Выходные данные
.detacilpmoc naht retteb si xelpmoC
.xelpmoc naht retteb si elpmiS
.ticilpmi naht retteb si ticilpxE
.ylgu naht retteb si lufituaeB
Как не только поменять строчки местами,но и еще выписать все символы в обратном порядке?Спасибо.
Решение задачи: «Вывод содержимого файла в обратном порядке»
textual
Листинг программы
var f, g: file of byte; c: byte; i, k: longword; begin assign(f, 'c:\input.txt'); reset(f); assign(g, 'c:\output.txt'); rewrite(g); k := filesize(f); repeat dec(k); seek(f, k); read(f, c) until not (c in [10, 13]); for i := k downto 0 do begin seek(f, i); read(f, c); if c in [10, 13] then c := c xor 7; write(g, c) end; write(g, 13); write(g, 10); close(f); close(g) end.
Объяснение кода листинга программы
- В начале кода объявляются переменные: f, g - файлы byte, c - байт, i, k - слова слова LongWord.
- Устанавливается путь к файлу ввода 'c:\input.txt' и файлу вывода 'c:\output.txt'.
- Переменная g переназначается для файла вывода.
- Устанавливается режим записи в файл вывода.
- Переменная k инициализируется размером файла ввода.
- Запускается цикл, который будет выполняться до тех пор, пока размер файла ввода не станет меньше или равен 0.
- В цикле считывается байт из файла ввода, затем проверяется, является ли этот байт одним из символов новой строки (10 или 13). Если это так, то байт заменяется на его XOR 7.
- Считанный байт записывается в файл вывода.
- Проверяется, если ли еще байты в файле ввода (k > 0), то файл ввода сдвигается назад на k позиций, затем снова считывается байт и записывается в файл вывода.
- Когда в файле ввода остается 0 байт, закрываются файлы ввода и вывода.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д