Операторы для работы с файлами

 

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

Для этого создают файлы данных.

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

По принципу организации файлы подразделяются на:

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

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

 

Обработка файла состоит из следующих операций:

- открытие файла;

- чтение данных из файла или запись в файл;

- закрытие файла.

Создание дискового файла

Для создания (открытия) файла на магнитном диске используется оператор OPEN

OPEN п. и. ф. [FOR режим] AS # н.ф. [LEN = n]

где п. и. ф.- полн. имя файла, например ''А:\ REZ’’

режим – режим открытия файла:

OUTPUT последовательный вывод в файл из программы

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

APPEND – последовательная дозапись в конец файла

По умолчании – прямой доступ к файлу (0 / 1)

# н.ф. -номер файла (от 1 до максимально возможного)

n – выражение типа INTEGER, определяющее длину записи (в файле с прямым доступом от 1 до 32 767 байтов, по умолчанию - 128 байтов)

Оператор OPEN открывает (создает) на диске файл данных, открывает для него буфер, определяет режим доступа и связывает с файлом номер (# н.ф), который используется в операторах ввода – вывода.

Например:

Файл последовательного доступа

OPEN ''А:\ REZ’’ FOR OUTPUT AS #1

Здесь оператор открывает на диске А в корневой директории файл под именем REZ и назначает ему № 1 для вывода в него из программы данных в режиме последовательного доступа.

Файл прямого доступа

OPEN ''А:\ ITOG’’ AS #2 LEN=256

Здесь оператор открывает на диске А в корневой директории файл под именем ITOG и назначает ему № 2 для ввода / вывода данных в режиме прямого доступа с длиной записи 256 байт.

Вывод данных в файл

 

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

WRITE # н.ф. , список

# н.ф – номер открытого файла;

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

 

Пример: вывод данных в файл № 1

WRITE # 1, А, С, К

Закрытие дискового файла

 

Для закрытия используется оператор CLOSE

CLOSE [# н.ф. [ , # н.ф ...]]

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

Если номер файла в операторе отсутствует, то оператор закрывает все открытые файлы.

При наличии номера файла оператор закрывает обозначенный файл.

В режиме прямого доступа, кроме оператора CLOSE, открытые файлы закрывают также операторы END, NEW, SYSTEM и RUN.

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

 

OPEN ''А:\ SPISOK’’ FOR OUTPUT AS #1

N = 1

DO WHILE N <= 20

INPUT”Имя”; NAME$

IF NAME$=” “ THEN

CLOSE #1

EXIT DO

END IF

N = N + 1

INPUT”Год рождения”; GR

WRITE # 1, NAME$, GR

LOOP

END

Ввод данных из файла в программу

 

Для ввода данных в программу используется оператор

INPUT # н.ф., список

# н.ф – номер открытого файла;

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

 

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

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

OPEN ''А:\ SPISOK’’ FOR INPUT AS #1

N = 1

DO WHILE N <= 20

INPUT # 1, NAME$, GR

IF GR >= 1982 AND NOT EOF(1) THEN

PRINT NAME$

END IF

N = N + 1

LOOP

CLOSE #1

END

Функции, используемые при работе с файлами

EOF(номер открытого файла) –возвращает ''истину'' (отлична от 0), если достигнут конец файла.

LOC(номер открытого файла) –текущая позиция указателя файла

LOF(номер открытого файла) –длина файла в байтах