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

Задание файлового типа или файловой переменной

Обработка файлов данных в Паскале

 

Турбо Паскаль поддерживает три типа файлов:

- типизированные, записи которых имеют жесткую структуру, чаще всего типа record.

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

- текстовые, состоящие из символов и строковых структур.

Каждому файлу ставится в соответствие переменная файлового типа, которая описывается в разделе описания переменных Паскаль - программы. Использование переменных файловых типов

предполагает интерпретацию файла как потенциально бесконечного списка значений одного и того же (базового) типа.

Обычно файлы в Паскале допускают последовательный доступ. После каждого очередного обращения к файлу он готов выдать или принять очередной по счету

компонент.

Однако для типизированных файлов и файлов без типа с по-

мощью процедуры Seek можно установить режим произвольного доступа.

При этом нумерация компонент файла начинается с нуля.

Для всех трех типов файлов существуют следующие общие правила.

 

а) Описание файловой переменной для типизированного файла в программе имеет вид:

VAR

<имя переменной>: FILE OF <имя базового типа>;

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

Например,

VAR

my_file : FILE OF INTEGER;

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

При описании файловых переменных можно использовать файловый тип, объявляемый в программе.

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

TYPE

<имя файлового типа>=FILE OF <тип элементов файла>;

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

type

f=ARRAY[1..100] OF INTEGER;

ff=FILE OF f;

объявляет файловый тип FF, базовый тип которого является массивом

целых чисел длиной 100 элементов, а объявление

VAR

file1, file2 : ff;

определяет переменные file1 и file2 в качестве файлов, связанных с наборами данных массивного типа, указанного выше.

 

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

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

Представителем текстового файла в Паскаль - программе является

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

VAR

<имя переменной>:TEXT;

Например

VAR

Text_Inf: TEXT;

 

в) Для нетипизированных файлов тип компонент не устанавливается. Соответствующие переменные описываются с помощью служебного слова FILE (без OF).

VAR

<имя переменной>: FILE;

 

Например

VAR

Data: FILE;

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

 

Для этого используется процедура

ASSIGN(f,name_f),

где файловая переменная f и физический файл с именем name_f должны быть предварительно описаны в разделе переменных

 

VAR

f:FILE_TIP, name_f:STRING;

К этому больше не возвращаемся.