Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
60
Добавлен:
18.05.2015
Размер:
176.13 Кб
Скачать

Лекция 7 (часть 3)

Файлы

ФАЙЛЫ 1. ОПИСАНИЕ ФАЙЛОВ

Под файлом понимают любой набор элементов одного и того же типа Число элементов, называемое длиной файла, не фиксировано. В этом основное отличие файла от массива Файл, не содержащий ни одного элемента, называется пустым: его длина равна нулю.

Любой файл имеет три характерные особенности. Во-первых, у него есть

имя, что дает возможность программе

работать одновременно с несколькими файлами. Во-вторых, он содержит

компоненты одного типа. Типом компонентов может быть любой тип Турбо Паскаля, кроме файлов. Иными

словами, нельзя создать "файл файлов". В-третьих, длина вновь

создаваемого файла никак не оговаривается при его объявлении и ограничивается только емкостью устройств внешней памяти.

Файлы по методу доступа к их

элементам подразделяются на файлы

последовательного и прямого

доступа В стандарте языка Паскаль

определены только файлы

последовательного доступа, в которых каждый элемент становится доступным только после перебора всех предыдущих элементов. В Турбо-

Паскале можно работать и с файлами

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

По отношению к программе файлы могут быть внешними и внутренними.

Внутренними файлами являются такие, которые создаются, используются и существуют только во время работы данной программы. Примерами внутренних файлов могут служить исходные данные в стандартном файле ввода Input или результаты выполнения программы в стандартном файле вывода Output .

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

Внешние файлы должны быть описаны в разделе описаний программы. Описание файлов имеет следующий вид:

type имя_типа=file of базовый_тип; var имя_файла:имя_типа;

или

var имя_файла:file of базовый_тип;

Вкачестве базового типа элементов файла можно использовать любой тип данных (как простой, так и сложный) за исключением типа file.

Пример.

type Mas=arrayCl.. 10] of real; Mno=set of 1. .10; Zap=record

Re, Im: integer end;

var Fl:file of integer; F2: file of real;

F3: file of char;

F4:file of Mas; {Каждый элемент файла - массив}

F5:file of Mno; {Каждый элемент файла- множество}

F6:file of Zap; -{Каждый элемент файла - запись}

Доступ к элементам файла осуществляется через указатель файла (буферная переменная). При чтении

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

Так как, по определению, число элементов файла не задается, то в Турбо-Паскале для нахождения конца файла введена стандартная функция

Eof(var F:file):boolean;

Когда достигнут конец файла, Eof принимает значение True, в противном случае — False.

Замечание. В дальнейшем при описании формата процедур и функций приводится их заголовок, содержащий имя процедуры или функции, перечень формальных параметров с указанием их типа и тип результата (для функций).

Имена файлов

Имя файла - это любое выражение строкового типа, которое строится по правилам определения имен в MS-DOS (операционной системе ПК):

имя содержит до восьми разрешенных символов; разрешенные символы - это прописные и строчные латинские буквы, цифры и символы: ! @ # $ % ^ & ( ) ' ~ - _

имя начинается с любого разрешенного символа;

за именем может следовать расширение - последовательность до трех разрешенных символов; расширение, если оно есть, отделяется от имени точкой.

Перед именем может указываться так называемый путь к файлу:

имя диска и/или имя текущего каталога и имена каталогов вышестоящих уровней.

Имя диска - это один из символов A...Z , после которого ставится двоеточие. Имена А: и В: относятся к дисковым накопителям на гибких дискетах, имена С:, D: и т.д. - к жестким дискам.

За именем диска может указываться имя каталога, содержащего файл. Если имени каталога предшествует обратная косая черта, то путь к файлу начинается из корневого каталога, если черты нет - из текущего каталога, установленного

в системе по умолчанию. За именем каталога может следовать одно или несколько имен каталогов нижнего уровня. Каждому

из них должна предшествовать обратная косая черта. Весь путь к файлу отделяется от имени файла обратной косой чертой.