Результаты обработки программ как данные можно сохранять на магнитных дисках. Это дает возможность использовать эти данные при обработке новых программ, загружая их с дисков в оперативную память.
Для этого создают файлы данных.
Файл – поименованный набор данных, который посылается на периферийное устройство (диск).
По принципу организации файлы подразделяются на:
- файлы с последовательным доступом (данные записываются и считываются в том порядке, в котором они переданы из программы)
- файлы с прямым доступом (данные можно размещать в любом месте, определенном показателем записей, таким же образом можно считывать данные из файла в программу).
Обработка файла состоит из следующих операций:
- открытие файла;
- чтение данных из файла или запись в файл;
- закрытие файла.
Создание дискового файла
Для создания (открытия) файла на магнитном диске используется оператор 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(номер открытого файла) – длина файла в байтах