Файл. Текстовый файл. Запись в файл. Чтение из файла. Типизированные файлы

Страницы работы

Содержание работы

1  Файл

Важность файлов объясняется тремя причинами. Во-первых, любой процесс может связываться со своим окружением только с помощью файлов. Во-вторых, процессы обычно длятся недолго: программа загружается в память и выполняется, а по окончании выполнения одной программы память поступает в распоряжение другой. Если программа не изменяет ни одного файла во время своей работы, эффект будет таким же, как если бы она вовсе не работала. В-третьих, файлы могут хранить гораздо больше информации, чем основная память машины.

В языке Паскаль файл представляется в виде переменной. Она может существовать как до, так и после выполнения программы и, кроме того, она может быть намного больше, чем сама программа. В силу этих причин, те действия, которые Паскаль-программа может производить над файлами, значительно ограничены, причем при каждом обращении к файлу программе доступна только одна компонента файла. Так как файлы языка Паскаль являются абстрактным обобщением реальных файлов, программа не содержит никакой информации о физической природе файла. Привязка реальных файлов к вашей программе на время ее выполнения является функцией операционной системы. Операционная система делает это, выполняя команды, не являющиеся частью вашей программы.

Отношения между формальными файлами, описанными и употребляемыми в программе, и фактическими файлами, привязываемыми к программе на время ее выполнения операционной системой, похожи на отношения между формальными параметрами процедуры и фактическими параметрами, передаваемыми ей из вызывающей программы при выполнении этой процедуры.

Тип-файл представляет собой последовательность компонент одного типа, расположенных на внешнем устройстве. Компоненты могут быть любого типа, за исключением типа-файла. Число компонент в файле не объявляется и может быть произвольным.

Структурно файл организован как последовательность элементов (компонент), что и показано на рисунке 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);

1.1  Текстовый файл.

Стандартные файлы 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’);

Похожие материалы

Информация о работе