Важность файлов объясняется тремя причинами. Во-первых, любой процесс может связываться со своим окружением только с помощью файлов. Во-вторых, процессы обычно длятся недолго: программа загружается в память и выполняется, а по окончании выполнения одной программы память поступает в распоряжение другой. Если программа не изменяет ни одного файла во время своей работы, эффект будет таким же, как если бы она вовсе не работала. В-третьих, файлы могут хранить гораздо больше информации, чем основная память машины.
В языке Паскаль файл представляется в виде переменной. Она может существовать как до, так и после выполнения программы и, кроме того, она может быть намного больше, чем сама программа. В силу этих причин, те действия, которые Паскаль-программа может производить над файлами, значительно ограничены, причем при каждом обращении к файлу программе доступна только одна компонента файла. Так как файлы языка Паскаль являются абстрактным обобщением реальных файлов, программа не содержит никакой информации о физической природе файла. Привязка реальных файлов к вашей программе на время ее выполнения является функцией операционной системы. Операционная система делает это, выполняя команды, не являющиеся частью вашей программы.
Отношения между формальными файлами, описанными и употребляемыми в программе, и фактическими файлами, привязываемыми к программе на время ее выполнения операционной системой, похожи на отношения между формальными параметрами процедуры и фактическими параметрами, передаваемыми ей из вызывающей программы при выполнении этой процедуры.
Тип-файл представляет собой последовательность компонент одного типа, расположенных на внешнем устройстве. Компоненты могут быть любого типа, за исключением типа-файла. Число компонент в файле не объявляется и может быть произвольным.
Структурно файл организован как последовательность элементов (компонент), что и показано на рисунке 7.1.
Рисунок 7.1 Последовательный файл
Тип файла определяется в программе с помощью соответствующего определения типов.
type
Ncol =1 .. 80;
card = array [Ncol] of char;
fileCard = file of card;
Сам файл описывается как переменная:
var
stopka : fileCard;
Имя файла также должно включаться в заголовок программы:
program p1 (input, output, stopka);
Стандартные файлы inputи outputв разделе описания переменных упоминать нельзя. Однако в заголовке программы необходимо поместить имя input, если в программе есть обращения к read, eofили eolnбез указания в них имени файла, а имя outputпомещается в заголовок, если в программе есть процедура записи без указания имени файла. В некоторых системах имя outputнужно вставлять в заголовок даже в тех случаях, когда в программе нет, таких обращений к процедуре записи, поскольку в этот файл могут быть переданы сообщения об обнаруженных в ходе работы программы ошибках.
Базовым типом для файла stopkaявляется тип card. Компонентами файла являются переменные базового типа. В каждый момент времени программа имеет доступ только к одной компоненте файла. Компонента файла stopka, к которой разрешен доступ, есть переменная типа card, которая обозначается так:
stopka
Компоненты файла традиционно называются записями этого файла. Слово «запись», относящееся к объектам языка Паскаль, не вносит каких-либо противоречий в терминологию, поскольку в большинстве случаев каждая запись файла является на самом деле переменной комбинированного типа, т. е. записью в смысле языка Паскаль.
Для задания типа-файла следует использовать зарезервированные слова fileи of, после чего указать тип компонент файла.
Пример. Типы-файлы
type
Number = file of Integer, {Тип-файлцелыхчисел}
Symb = file of 'A'..'Z'; {Тип-файлпрописныхлатинскихбукв}
Стандартный тип Textопределяет тип-файл, содержащий символы, объединенные в строки. Следует иметь в виду, что тип Textв Turbo Pascal не эквивалентен типу fileofChar.
Введя файловый тип, можно определить переменные файлового типа:
var F1, F2: Number;
F3: Text;
В Turbo Pascal можно использовать файл без типа, при определении которого не указывается тип компонент. В этом случае работа с файлом осуществляется на физическом уровне в соответствии с внутренним форматом его данных. В принципе в этом случае реальные компоненты файла могут иметь и различный тип.
Пример. Файл без типа .
type
UnTyp = file;
Тип-файл можно определять и непосредственно при введении файловых переменных:
var
F1, F2: file of Integer;
В Паскале имеются три вида файлов: текстовые, типизированные и нетипизированные. Текстовый файл содержит последовательность символов, организованных в строки. Каждая строка заканчивается специальным символом возврата каретки CR#13 и перевода строки LF#10. Заканчивается текстовый файл признаком конца файла. Работу с текстовыми файлами обеспечивает модуль System Турбо Паскаля. Он не требует использования оператора Uses.
Для текстовых файлов в Паскале имеется стандартный файловый тип text. Прежде чем приступить к операциям над текстовыми файлами, необходимо описать переменные типа text:
vаг
in_file : text;
Процедура Аssign связывает имя внешнего файла (того файла, с которым мы будем работать) с файловой переменной in_file:
Assign (in_file, ‘C: \ user \ Petrov \ my_file’);
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.