Томский государственный университет систем управления и радиоэлектроники
Опубликован: 01.11.2012 | Доступ: свободный | Студентов: 651 / 76 | Длительность: 06:01:00
Лекция 5:

Файлы

< Лекция 4 || Лекция 5: 123 || Лекция 6 >
Аннотация: В пятой лекции рассказывается о работе с файлами, их классификации и операторах open, inquire, rewind, backspace, close. Рассматривается асинхронный файловый ввод/вывод и возможности контроля таких операций с помощью программы Intel Inspector XE. Лекция заканчивается обзором стандартных процедур для работы с файлами из модуля ifport.

Вы можете скачать презентацию к данной лекции здесь.

Назначение файлов

Исходные данные

Промежуточные вычисления

Результаты вычислений

Конвертация данных

Обмен данными с другими программами

Внешние и внутренние файлы

Внешний файл - именновання область на внешнем носителе.

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')

< Лекция 4 || Лекция 5: 123 || Лекция 6 >