Файлы
Вы можете скачать презентацию к данной лекции здесь.
Назначение файлов
Исходные данные
Промежуточные вычисления
Результаты вычислений
Конвертация данных
Обмен данными с другими программами
Внешние и внутренние файлы
Внешний файл - именновання область на внешнем носителе.
C:\docum.inf
D:\DATA\results.txt
E:\geometry.dat
Внутренний файл – символьная строка или массив.
character(100) buffer
characrer(1000) temp(10)
Файловые записи
Запись – единица обмена данными между программой и внешней памятью.
Расположены в файле последовательно.
Форматные записи внутреннее → внешнее представление
Неформатные записи внутреннее представление
Запись конец файла последняя запись в файле.
Форматные файлы
Содержат форматные записи.
Каждая запись оканчивается управляющими символами (возврат каретки, перевод строки).
Возможность "ручного" редактирования.
Скорость обработки файлов низкая.
Больший объём файлов.
Внешние и внутренние файлы.
Неформатные файлы
Содержат неформатные записи.
Отсутствует возможность "ручного" редактирования.
Скорость обработки файлов высокая.
Меньший объём файлов.
Внешние файлы.
Двоичные файлы
Содержат данные в двоичном представлении.
Длина записи равна 1 байту.
Отсутствует возможность "ручного" редактирования.
Эффективны для хранения больших объёмов данных (хранение промежуточных вычислений).
Внешние файлы.
Последовательный доступ
Доступ к данным по порядку
Записи переменной длины
Добавление новой записи - в конец файла
Прямой доступ
Доступ к данным произвольный
Записи одинаковой длины
Внешний файл может быть прямого и последовательного доступа
Внутренний файл только последовательного доступа
Оператор Open
open (unit = u , &
file = name , &
err = label , &
iostat= i-var , &
...)
Создает устройство ввода/вывода с номером u и подсоединяет к нему внешний файл name.
open (unit = 1, file = "data.txt")
open (unit = 2, file = "D:\DOCUM\price.inf")
Параметры оператора Open
uint - номер устройства
file – имя файла
err - метка на оператор обработки ошибки
iostat – номер ошибки (0 – отсутствие).
... – один или несколько спецификаторов ( ≈ 40 )
ACCESS | ENCODING | RECORDSIZE |
ACTION | FORM | RECORDTYPE |
ASSOCIATEVARIABLE | IOFOCUS | ROUND |
ASYNCHRONOUS | MAXREC | SHARE |
BLANK | MODE | SHARED |
BLOCKSIZE | NAME | SIGN |
BUFFERCOUNT | NEWUNIT | STATUS |
BUFFERED | NOSHARED | TITLE |
CARRIAGECONTROL | ORGANIZATION | TYPE |
CONVERT | PAD | USEROPEN |
DECIMAL | POSITION | |
DEFAULTFILE | READONLY | |
DELIM | RECL | |
DISPOSE |
Примеры оператора Open
! двоичный файл open(1,file = "backup.bin",form = 'binary') ! добавление записей в конец файла open(2,file = "history.txt",access = 'append') ! только для чтения open(3,file = "data.txt", action = 'read') ! файл должен существовать open(4,file = "geometry.dat", status = 'old') ! асинхронный ввод/вывод open(5,file = "tornado.dat", asynchronous = 'yes') ! файл доступен другим приложениям open(6,file = "base.dat", share = 'denynone') ! файл недоступен другим приложениям open(7,file = "base2.dat", share = 'denyrw')