Программирование на языке Turbo Pascal

ТЕМА №8: ФАЙЛЫ. ТИПИЗИРОВАННЫЕ ФАЙЛЫ. ТЕКСТОВЫЕ ФАЙЛЫ.


ПРОГРАММНО -  ДИДАКТИЧЕСКОЕ ОБЕСПЕЧЕНИЕ: ЭВМ типа IBM. ТР5.

ЦЕЛИ И ЗАДАЧИ: Дать представление о файлах и средствах их обработки с помощью ТР5. Приобретение навыков составления программ с использованием файлов различного типа

ТРЕБОВАНИЯ К ЗНАНИЯМ И УМЕНИЯМ:

Учащиеся должны знать:

-          Что такое файл;

-          Какие бывают файлы;

-          Что такое файловая переменная;

-          Как описываются типизированные файлы;

-          Процедуры и функции работы с файлами;

-          Процедуры и функции работы с типизированными  и текстовыми файлами;

-          Как описываются текстовые файлы.

Учащиеся должны уметь:

-          Правильно описывать типизированные и текстовые файлы;



-          Правильно пользоваться файловой переменной;

-          Составлять программы с использованием типизированных  и текстовых файлов;

-          Составлять простейшие программы с использованием процедур и функций работы с типизированными  и текстовыми файлами.

ПЛАН-СОДЕРЖАНИЕ УРОКА

Основные понятия

Мы все время рассматривали задачи, в которых данные поступают с клавиатуры, а результаты выводятся на экран. Ни исходные данные, ни результаты не сохраняются. А если данных слишком много? Как записать их на диск? Для этого необходимо исходные данные и результаты оформить в виде файлов, которые хранятся на диске.

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


Файл может быть компонентом другой структуры, но не должен входить в другой файл.

Отличие файла от массива: размещение на внешнем носителе, длина файла не задается, место элемента не определяется индексом.

Файлы бывают:

-          типизированные

-          нетипизированные

-          текстовые

Файл объявляется в разделе описания переменных с указанием типа элементов файла.

Например:

Var F1: file of integer; F2: file of char; F3: text; F4: file;

Типизированными файлами называются файлы,  в описании которых присутствует указание типа. Типизированные файлы – это файлы с прямым доступом к компонентам (записям).

Нетипизированный файл – это просто последовательность байтов, без конкретизации структуры.

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

Описание файлов:

Тип файла

Описание файла

Типизированный

Var F1: file of integer;

F2: file of char;

Нетипизированный

Var F3: file;

Текстовый

Var F: text;

Файл на техническом носителе определяется полным именем (<путь>\<собственно имя>.<расширение>). Для обозначения файла и работе с ним в программе используется файловая переменная.

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

Особенности файловой переменной:

1.      Ей нельзя присваивать какие-либо значения

2.      Она не может участвовать в логических операциях



3.      Она не может входить в математические выражения

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

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

Процедура

Назначение

Замечание

Assign(f, ‘name’)

Связывает файловую переменную с конкретным файлом (привязывает переменную к  имени файла). Ставится перед первым использованием файловой переменной.

Можно  имя файла ’name’ задавать через строковую перемен­ную (S): Assign(f, S)

Reset(f)

Открывает существующий файл и устанав­ливает указатель на начало записи.

Для любых файлов

Rewrite(f)

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

Для любых файлов

Close(f)

Закрывает открытый файл

Для любых файлов

Erase(f)

Стирает предварительно закрытый файл

Для любых файлов

Rename(f, f1)

Переименовывает файл f в файл f1. Файл f должен быть предварительно закрыт

Для любых файлов

EOF(f)

Получение сведений о конце файла True, если указатель указывает на метку конца файла, иначе - False

Логическая функция.

Read(f,v1,…vn)

Считывает записи из файла f в переменные v1, …vn

Для типизированных и нетипизированных  фай­­лов

Write(f,v1,…vn)

Записывает в файл f значения переменных v1,…vn

Для типизированных и нетипизированных  фай­­лов

Readln(f,v1,…vn)

Считывает записи из файла f в переменные v1, …vn

в типизированных фай­лах недопус­ти­мо

Writeln(f,v1,…vn)

Записывает в файл f значения переменных v1,…vn

в типизированных фай­лах недопусти­мо

N:=filesize(F);

Определение количества записей в файле

Функция

Eoln(f)

True,  если указатель на метке конца строки, иначе - False

Логическая функция. Для текс­товых фай­лов

Append(f)

Открывает файл и устанавливает указатель на метку конца файла

Применяется для до­­бавления записей

N:=filepos(f)

Выдает номер записи, на которую указывает указатель записи. Первая запись имеет номер 0.

Функция

seek(f,n)

Устанавливает указатель на запись с номером n

truncate(f)

Отсекает все записи, находящиеся после указателя и в этой позиции записывает метку конца файла.

Пимеры программ:

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

var f: filt of integer;

assign(f, ‘file’); … rewrite(f); …write(f, v1,v2,…, vn); clos(f);

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

var f: filt of integer;

assign(f, ‘file’); … reset(f); … read(f, v1,v2,…, vn); clos(f);


Содержание раздела