Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ответы программирование.doc
Скачиваний:
81
Добавлен:
18.03.2015
Размер:
1.19 Mб
Скачать

Работа с файлами на языке программирования pascal. Типы файлов, команды для работы с файлами, типизированные, нетипизированные и текстовые файлы

 

Файл – совокупность данных, записанная во внешней памяти под некотором именем.

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

{loadposition adsense2}

Причины использования

- оптимизация ввода большого количества данных

- файл данных может быть подготовлен другой программой

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

Характерные особенности файлов

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

- состоит из компонентов одного типа (любого, кроме файлового)

- длина создаваемого файла при объявлении не указывается

Типы файлов:

По способу доступа

- последовательного

- прямого

По типу (логической структуре)

- текстовые

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

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

Файл имеет

- логическое имя (из раздела var)

- физическое имя (на диске)

Команды

Assign (логическое имя, ‘ физическое имя ‘) установления соответсвия между логическим и физическим именами

Rewrite (логическое имя) – открытие файла для записи, перезапись

Reset (логическое имя) – открытие файла для чтения

Write (логическое имя, переменная которую записуют) – запись информации в файл

{loadposition adsense1}

Read (логическое имя, переменная которую записуют) – чтение информации из файла

Eof (логическое имя) – анализ признака конца файла. ( whilenoteof (f) do <оператор> - работа с файлом до последнего элемента)

Close (логическое имя) – закрытие файла

Rename (логическое имя, 'физическое имя') – переименование файла

Erase (логическое имя) – удаление файла.

Объявление файла

Var f:file of <тип>;

F:text; (текстовый файл)

 

 

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

Это файлы строго определенного типа. Обычно состоят из записей.

Объявление

Typefilerec=record

End;

Var

F:file of filerec;

Для определения размера:

Sizeof (filerec)

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

Процедура seek (var f ; numrec : longint) устанавливает текущую длину переменной f на запись с номером numrec.

Для данных файлов существуют следующие операции:

Truncate (varf) – уничтожает все компоненты файла f, начиная с места текущего положения файлового показателя

Filepoz (varf):longint – возвращает для файла f текущую файловую позицию в виде значения типа longint;

Filesize (varf):longint – возвращает размер файла.

Seek (f, filesize (f)); - команда помещения позиции курсора в конец файла.

 

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

Объявление

Varuntypedfile:file;

Нетепизированный файл является файлом прямого доступа

Открытие

Rewrite (untypedfile, <длина записи>);

Или

Reset (untypedfile, <длина записи>);

Команды

Blockread (varf:file; varbuf; count:word); - процедура считывает из файла F некоторое число блоков в память, начиная с 1-го байта переменной buf. Параметр buf – любая переменная, используемая для извлечения информации из файла. Параметр count – задает число считывающих блоков

Blockwrite (varf:file; varbuf; count:word); - процедура записи в файл, переменные одинаковые с предыдущей командой.

 

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

Данные файлы можно редактировать и просматривать с помощью обычного текстового редактора

Eoln (<имя файла>) – проверка, есть ли символы в строке.

Описание

Var <список имен переменных>:text;

Команды считывания информации:

Read (<имя файла>, <список параметров>);

Readln (<имя файла> , <список параметров>);

Создание строки:

Write (<имя файла>,<список выражений>);

Writeln (<имя файла>,<список выражений>);

Для дописывания в файл данных выполнить (вместо rewrite)

Append (<имя файла>);

Смысл последовательного доступа заключается в том, что в каждый

момент времени доступна лишь одна компонента из всей последователь-

ности. Для того, чтобы обратиться (получить доступ) к компоненте с

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

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