Типизированный и текстовый файл - Turbo Pascal
Формулировка задачи:
Задание:
Средствами текстового редактора создать файл. Каждые 5 строк текстового файла содержат соответственно название издательства, фамилию автора, название книги, величину тиража и пустую строку. Программным образом вывести содержимое этого файла на экран, расположив в каждой строке экрана название издательства, фамилию автора, название книги и величину тиража.
Создать первую процедуру с параметрами, в которой каждые 4 строки текстового файла в виде записи с 4 полями размещаются в типизированный файл (5-7 компонентов). Создать вторую процедуру с параметрами для вывода содержимого типизированного файла на экран.
С клавиатуры добавить и типизированный файл запись (записи), используя метод концевого значения. Определить писателей, книги которых напечатаны наибольшим тиражом. Их фамилии занести в конец текстового файла в отдельные строки. Вывести содержимое текстового файла на экран. Далее содержимое каждых 4 строк, содержащих информацию об одном авторе занести в строковую переменную. В полученной строке поменять местами фамилию и тираж и разместить между всеми словами по 3 пробела. Распечатать исходные и преобразованные строки.
Дополнительных массивов не использовать.
_______________________________________
Первый абзац выполнил, второй не полностью, так как вылетает несовместимость типов (закомментировал звездочками место ошибк). Прошу помочь с ошибкой в коде, а также с третьим абзацем.
Код:
UPD : со вторым абзацем и ошибкой разобрался, но все еще прошу помощи, начиная с добавления.
Решение задачи: «Типизированный и текстовый файл»
textual
Листинг программы
const tName = 'file.txt'; dName = 'file.dat'; type TBook = record Pub, Aut, Tit: String[31]; Cir: Integer; end; TBookFile = file of TBook; procedure txt2dat; var ft: Text; fd: TBookFile; t: TBook; begin Assign(ft,tName); Assign(fd,dName); Reset(ft); Rewrite(fd); while not SeekEof(ft) do with t do begin ReadLn(ft,Pub); ReadLn(ft,Aut); ReadLn(ft,Tit); ReadLn(ft,Cir); ReadLn(ft); Write(fd,t); end; Close(ft); Close(fd); end; procedure ShowFromTxt; var ft: Text; t: TBook; begin Assign(ft,tName); Reset(ft); while not SeekEof(ft) do with t do begin ReadLn(ft,Pub); ReadLn(ft,Aut); ReadLn(ft,Tit); ReadLn(ft,Cir); ReadLn(ft); WriteLn(Pub,' ',Aut,' ',Tit,' ',Cir); end; Close(ft); end;
Объяснение кода листинга программы
- В первой строке кода объявляются две константы: tName и dName. Они представляют собой имена текстовых файлов, которые будут использоваться в программе.
- Затем объявляется тип данных TBook, который представляет собой типизированный файл книг. Он содержит поля для имени автора (Aut), названия книги (Tit), и количества страниц (Cir).
- Далее объявляется тип данных TBookFile, который представляет собой файл, содержащий записи о книгах типа TBook.
- В процедуре txt2dat происходит конвертация текстовых файлов в формат TBookFile. Для этого используется цикл while, который выполняется до тех пор, пока не будет достигнут конец файла. Внутри цикла каждая запись из текстового файла считывается в переменную t, после чего она записывается в файл TBookFile.
- В процедуре ShowFromTxt происходит отображение содержимого файла TBookFile в текстовый файл. Для этого используется цикл while, который выполняется до тех пор, пока не будет достигнут конец файла. Внутри цикла каждая запись из файла TBookFile считывается в переменную t, после чего она записывается в текстовый файл.
- Конец каждой строки записывается в файл с помощью функции WriteLn. Это позволяет выровнять текст по ширине и добавить пробелы между полями.
- После завершения работы с файлами они закрываются с помощью функций Close.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д