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

Курс «основы алгоритмизации и программирования»

ЛЕКЦИЯ № 22.

Тема: «создание и преобразование файлов»

1. Понятие файла.

Входная и выходная информация по отношению к программе на языке Паскаль представляется в виде файлов. Например, ввод и вывод данных осуществляется с помощью стандартных файлов, имена которых определяются идентификаторамиInPutиOutPut. Файл в общем случае состоит из нескольких однотипныхкомпонентов (элементов)и представляется файловой переменной. Файл может существовать как до, так и после выполнения программы и занимать память намного больше, чем сама программа. Программу пользователя также можно рассматривать в виде совокупности данных, допускающей представлениефайловой переменной.

Файл – это поименованная область памяти на внешнем носителе информации, предназначенная для хранения информации.

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

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

  • типизированные, которые задаются предложением File of «тип»;

  • текстовые, которые задаются предложением Text;

  • нетипизированные, которые задаются предложением File.

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

1.1. Типизированные файлы.

1.1.1. Определение файлового типа.

Файловый тип определяется в программе с помощью соответствующего описания:

type <имя типа> = file of <тип компонентов>;

где <тип компонентов> – любой базовый тип, кроме файлового.

Переменная файлового типа описывается в разделе определения переменных:

var <идентификатор>:<имя типа>;

Например, определение типов

const max=80;

type line=string[max];

fl=file of line;

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

var list:fl;

Возможно описание файловой переменной непосредственно в разделе определения переменных без определения файлового типа. Однако базовый тип компонентов файла должен быть предварительно определен или же являться стандартным:

const max=80;

type line=string[max];

var list: file of line;

При работе с файлами очень часто в качестве их компонентов используются записи, поэтому данные из примера 3 (лекция 21), предназначенные для хранения результатов сдачи сессии группой студентов, можно представить не в виде массива записей, а как файл записей:

type stud=record

fam:string[15];

b1,b2,b3,b4,b5:2..5;

sb:real

end;

var tbl: file of stud;

student:stud;

Доступ к компонентам файла осуществляется через указатель файла(скрытую переменную, неявно описанную вместе с файловой переменнойtbl). При чтении или записи этот указатель перемещается к следующему компоненту и делает его доступным для обработки. Файловая переменная имеет отличие ото всех других переменных: она не может использоваться в выражениях и операторах присваивания. Для возможности обработки компонента файла должна быть введена переменная того же типа, что и элементы файла (в примере – это переменнаяstudent).

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]