
В текстовом редакторе создать файл, содержащий данные, указанные в вашем варианте. Поля записей записывать с новой строки.
Объявить файловую переменную указанного типа.
Объявить тип данных «запись». Поля записи выбрать по своему усмотрению и согласно своему варианту.
Объявить массив записей.
Написать процедуру чтения данных из файла в массив записей.
Написать процедуру поиска в массиве по заданному ключу или условию (согласно варианту).
Выполнить запись в новый текстовый файл (предварительно его нужно объявить и инициализировать) или добавление в уже существующий файл найденной информации.
Просмотреть содержимое выходных текстовых файлов.
Оформить отчет.
Содержание отчета.
Текст программы с комментариями.
Результаты тестирования программы.
Контрольные вопросы
8.1. Виды файлов в Паскале.
8.2. Способы доступа к файлам.
8.3. Что выведет программа, если перед выводом содержимого на экран файл открыть оператором Rewrite?
8.4. Операции, определенные над текстовыми файлами.
Приложение работа с файлами Файлы на магнитном диске
Данные, размещаемые программой в памяти компьютера, недолговечны; когда питание выключат, они исчезнут, если еще раньше их не сотрет следующая программа. Для сохранения информации всерьез и надолго ее записывают на магнитный диск.
Единицей хранения информации в библиотеке служит книга, единицей хранения информации на диске служит файл. Он имеет имя и занимает на диске область, размер которой зависит от объема файла. В файлах хранят документы, программы, изображения, — одним словом, все, что можно записать при помощи чисел или символов.
Различают два вида файлов: последовательного и произвольного доступа. Последовательные файлы состоят из элементов различной длины, между которыми стоят разделители. Чтобы найти элемент последовательного файла, надо просмотреть все, что ему предшествует.
Файлы произвольного доступа состоят из однотипных элементов, как массивы. Найти любой элемент можно по его
порядковому номеру.
В Паскале последовательные файлы называют текстовыми, а файлы произвольного доступа — типизированными.
Программа может обрабатывать существующий файл или создать новый файл. В любом случае работа с файлом складывается из трёх пунктов:
1) открытие файла;
2) чтение или запись;
3) закрытие файла.
Текстовые файлы
Текстовые файлы хранят информацию в виде последовательности символов. Символы составляют строки произвольной длины. В конце каждой строки находятся два особых символа: #13 #10, которые отделяют строку от следующей. Текстовые файлы широко распространены, их способен создавать любой экранный редактор. В программе на Паскале текстовый файл представляет файловая временная типа TEXT. Ее описывают предложением
VAR имя: TEXT
Файловой переменной назначают имя файла при помощи оператора
assign (файловая переменная, имя файла),
где имя файла — строка, содержащая дисковое имя файла.
Больше нигде в программе не появится имя файла, всюду его заменит файловая переменная.
Теперь файл необходимо открыть. Текстовый файл можно открыть:
для чтения — оператором
reset (файловая переменная);
для записи — оператором rewrite (файловая переменная);
для пополнения — оператором
append (файловая переменная).
В файл, открытый для записи или пополнения, можно только писать, из файла, открытого для чтения, можно только читать. Если необходимо прочесть из файла, открытого для записи, его сначала надо закрыть оператором
close (файловая переменная),
а затем снова открыть уже для чтения.
Чтение из текстового файла
Чтение из файла выполняется хорошо знакомым нам оператором READ. Если перед списком ввода в операторе READ стоит файловая л временная, он вводит данные не с клавиатуры, а из файла. Например,
var ft:text;
a,b,c: integer;
…
read (a,b,c); {ввод с клавиатуры}
read (f,a,b,c); {ввод из файла}
Текстовый файл для оператора READ такой же источник символов, как и клавиатура, только эти символы следуют друг за другом не во времени, а в пространстве файла. Во времени можно перемещаться лишь в одну сторону, по файлу — тоже. Движение допускается последовательное, от начала к концу, поэтому текстовые файлы называют последовательными.
Чтобы уяснить, что прочтет из файла тот или иной оператор READ, введем понятие указателя файла. Фактически указатель — это номер очередного символа файла, но лучше вообразить его в виде стрелки, направленной в определенную точку файла.
Сразу после открытия стрелка указывает на первый символ файла. Чтение очередной порции данных всегда выполняется, начиная с символа, на который показывает стрелка. После чтения стрелка автоматически передвигается вперед на длину прочитанного участка. Так продолжается, пока стрелка не достигнет конца файла. Дальнейшие попытки чтения вызовут сообщение об сшибке.
Как узнать, можно ли еще читать из файла? Для этого в Паскале есть логическая функция
EOF (файловая переменная)
Она возвращает true, если достигнут конец файла, и false в противном случае. Название функции сокращает слова «End Of File» — конец файла.
Дополнительный оператор чтения READLN вводит все, предусмотренное списком ввода, и продвигает указатель до начала следующей строки.