Система Ввода/Вывода

Содержание

Слайд 2

Файлы

Файлы

Слайд 3

ФАЙЛЫ. Файл – это последовательность записей. Файлы бывают внешние и внутренние.

ФАЙЛЫ.

Файл – это последовательность записей.
Файлы бывают внешние и внутренние.
Внешний файл –

это либо файл на внешнем устройстве, либо само устройство.
Внутренний файл – это знаковая переменная служащая источником или целью для какой-либо формальной операции ввода/вывода.
Слайд 4

В дальнейшем, внутрение файлы MS-FORTRAN, a так же файлы, доступные для

В дальнейшем, внутрение файлы MS-FORTRAN, a так же файлы, доступные для

операционной системы, мы будем именовать просто "файлы".
Оператор OPEN обеспечивает связь между двумя понятиями файла, в большинстве случаев неопределенность исчезает после открытия файла, когда оба понятия совпадают.
Слайд 5

ЗАПИСИ Основной eдиницeй в файлах MS-FORTRAN является запись. Запись - это

ЗАПИСИ

Основной eдиницeй в файлах MS-FORTRAN является запись.
Запись - это набор

знаков или значений.
Допускаются записи трех видов:
форматные записи
бесформатные записи
записи конца файла
Слайд 6

ЗАПИСИ ФОРМАТНЫЕ ЗАПИСИ Форматные записи - это набор знаков, заканчивающихся системным

ЗАПИСИ

ФОРМАТНЫЕ ЗАПИСИ

Форматные записи - это набор знаков, заканчивающихся системным признаком конца

строки.

Форматные записи интерпретируют согласно c тем, как большинство операционых систем и файлов интерпретируют строку.

Слайд 7

ЗАПИСИ БЕСФОРМАТНЫЕ ЗАПИСИ Бесформатные записи - это набор значений, не преобразуемых

ЗАПИСИ

БЕСФОРМАТНЫЕ ЗАПИСИ

Бесформатные записи - это набор значений, не преобразуемых системой.

Бесформатные файлы

хранятся в виде физических записей.

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

Слайд 8

ЗАПИСИ Запись конца файла После последней записи в файле MS-FORTRAN инициирует

ЗАПИСИ

Запись конца файла

После последней записи в файле MS-FORTRAN инициирует запись конца

файла.

Метод представления конца файла частично зависит от операционной системы.

Слайд 9

УСТРОЙСТВА Устройство является средством обращения к файлам. Устройство определяется в операторе ввода/вывода как внешнее или внутреннее.

УСТРОЙСТВА

Устройство является средством обращения к файлам.
Устройство определяется в операторе ввода/вывода

как внешнее или внутреннее.
Слайд 10

ВНЕШНИЕ УСТРОЙСТВА Спецификацией внешнего устройства является целое выражение или символ *

ВНЕШНИЕ УСТРОЙСТВА

Спецификацией внешнего устройства является целое выражение или символ *

определяет экран

для вывода и клавиатуру для ввода

В большинстве случаев, спецификация внешнего устройства связана c физическим устройством c помощью имени при использовании оператора OPEN.

При такой связи устройства c именем файла, операторам ввода/вывода достаточно номера устройства для обращения к соответствующему внешнему устройству.
Если файл открыт, номера устройства будет связан c конкретным внешним устройством до тех пор, пока не используют операцию CLOSE, или пока не окончится программа.
Eдинственным исключением из этих правил является то, что нулевое устройство связывается c клавиатурой для чтения и экраном для записи, и не требуется явного оператора OPEN.

Слайд 11

Система файлов МС-Фортрана интерпретирует символ *, как нулевое устройство.

Система файлов МС-Фортрана интерпретирует символ *, как нулевое устройство.

Слайд 12

ВНУТРЕННИЕ УСТРОЙСТВА Спецификацией внутреннего устройства является символьная переменная или символьный массив, непосредственно определяющий внутренний файл.

ВНУТРЕННИЕ УСТРОЙСТВА

Спецификацией внутреннего устройства является символьная переменная или символьный массив, непосредственно

определяющий внутренний файл.
Слайд 13

ХАРАКТЕРИСТИКИ ФАЙЛОВ Файлы Фортрана имеют следующие атрибуты: Имя Положение Структуру Метод доступа

ХАРАКТЕРИСТИКИ ФАЙЛОВ

Файлы Фортрана имеют следующие атрибуты:
Имя
Положение
Структуру
Метод доступа

Слайд 14

ХАРАКТЕРИСТИКИ ФАЙЛОВ Имя файла Файл может иметь имя. Имя, если оно

ХАРАКТЕРИСТИКИ ФАЙЛОВ

Имя файла
Файл может иметь имя.
Имя, если оно присутствует, -

это последовательность знаков, используемая операционной системой для распознавания файлов.
Правила именования определяются операционной системой.
Слайд 15

ХАРАКТЕРИСТИКИ ФАЙЛОВ Положение файла Положение файла обычно устанавливается предшествующим положением ввода/вывода.

ХАРАКТЕРИСТИКИ ФАЙЛОВ

Положение файла
Положение файла обычно устанавливается предшествующим положением ввода/вывода.

Файл имеет:
начальную

точку,
конечную точку,
текущую запись,
предыдущую запись,
следующую запись.
Слайд 16

ХАРАКТЕРИСТИКИ ФАЙЛОВ При открытии файла устанавливается его начало. Если следующей операцией

ХАРАКТЕРИСТИКИ ФАЙЛОВ

При открытии файла устанавливается его начало.

Если следующей операцией ввода/вывода являются

WRITE, все старые данные затираются.
Положение файла после последовательного выполнения операций WRITE - конец файла, но не за пределом записи конца файла.

Использование оператора ENDFILE помещает файл за записью конца файла

То же делает и оператор READ, выполняемый в концe файла.
Вы можете определить конец файла, используя выражение END= в операторе READ.

Слайд 17

ХАРАКТЕРИСТИКИ ФАЙЛОВ Структура файлов Внешние файлы могут быть открыты как форматные,

ХАРАКТЕРИСТИКИ ФАЙЛОВ

Структура файлов
Внешние файлы могут быть открыты как форматные, бесформатные или

двоичные файлы.
Bсе внутренние файлы являются форматными.

Форматные — файлы, состоящие только из форматных записей.
Бесформатные — файлы, состоящие только из бесформатных записей.
Двоичные — поледовательность байтов без внутренней структуры.

Слайд 18

ХАРАКТЕРИСТИКИ ФАЙЛОВ Методы доступа Внешние файлы открываются как файлы последовательного либо

ХАРАКТЕРИСТИКИ ФАЙЛОВ

Методы доступа
Внешние файлы открываются как файлы последовательного либо прямого доступа.

Файл

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

Файл, содержащий записи, порядок следования которых определен порядком, в котором они были записаны.
Эти файлы не могут быть прочитаны или записаны c помощью выражения REC=.

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

Файл, записи которого могут быть записаны или прочитаны в любом порядке.
В файлах прямого доступа возможно занесение записей в произвольном порядке (например: 9, 5 и 11) без занесения записей между ними.

Слайд 19

ХАРАКТЕРИСТИКИ ФАЙЛОВ В файлах прямого доступа: Записи имеют одинаковую длину, определяемую

ХАРАКТЕРИСТИКИ ФАЙЛОВ

В файлах прямого доступа:

Записи имеют одинаковую длину, определяемую при

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

Чтение записей из файлов прямого доступа не имеющих записей приводит к ошибке.

Чтение записей из файлов прямого доступа не имеющих записей приводит к

ошибке.
Слайд 21

ОСОБЕННОСТИ ВНУТРЕННИХ ФАЙЛОВ Внутренний файл - это символьная переменная или элемент символьного массива.

ОСОБЕННОСТИ ВНУТРЕННИХ ФАЙЛОВ

Внутренний файл - это символьная переменная или элемент символьного

массива.
Слайд 22

ОСОБЕННОСТИ ВНУТРЕННИХ ФАЙЛОВ Внутренний файл содержит только одну запись, совпадающую по

ОСОБЕННОСТИ ВНУТРЕННИХ ФАЙЛОВ

Внутренний файл содержит только одну запись, совпадающую по длине

c символьной переменной или элементом массива.

если записывается не вся запись, оставшееся место заполняется пробелами

Положение файла всегда в начале файла, до выполнения операторов ввода/вывода.

Внутренние файлы позволяют использовать только форматный, последовательный ввод/вывод.

внутрений файл могут определять только операторы ввода/вывода READ и WRITE.

Слайд 23

ОСОБЕННОСТИ ВНУТРЕННИХ ФАЙЛОВ Внутренние файлы обеспечивают механизм для использования форматных возможностей

ОСОБЕННОСТИ ВНУТРЕННИХ ФАЙЛОВ

Внутренние файлы обеспечивают механизм для использования форматных возможностей системы

ввода/вывода для преобразования значений "в" и "из" представления внешних символов во внутренние структуры памяти
МС-Фортрана.

Так чтение символьных переменных преобразует символьные значения в числовые, логические или символьные значения, а запись символьных переменных позволяет преобразовать значения в их (внешнее) символьное представление.

Слайд 24

Редакционная спецификация обратный слеш (\) не может быть использована во внутренних файлах.

Редакционная спецификация обратный слеш (\) не может быть использована во внутренних

файлах.
Слайд 25

Наиболее широко используемые структуры файлов B MC-Фортране возможно множество комбинаций структур

Наиболее широко используемые структуры файлов

B MC-Фортране возможно множество комбинаций структур файла.
Однако,

для большинства применений достаточно двух:
* - файлы
Именованые, внешние, последовательные, форматные файлы
Слайд 26

ШИРОКО ИСПОЛЬЗУЕМЫЕ СТРУКТУРЫ ФАЙЛОВ * - файлы * - представляет клавиатуру

ШИРОКО ИСПОЛЬЗУЕМЫЕ СТРУКТУРЫ ФАЙЛОВ

* - файлы

* - представляет клавиатуру или экран

Это

последовательные, форматные файлы, они называются нулевыми устройствами.
Слайд 27

Когда происходит чтение c устройства номер ноль, Вы должны ввести всю

Когда происходит чтение c устройства номер ноль, Вы должны ввести всю

строку!
используйте обычные операции для исправления ошибок набора
Слайд 28

ШИРОКО ИСПОЛЬЗУЕМЫЕ СТРУКТУРЫ ФАЙЛОВ Внешние файлы Внешние файлы могут быть связаны

ШИРОКО ИСПОЛЬЗУЕМЫЕ СТРУКТУРЫ ФАЙЛОВ

Внешние файлы

Внешние файлы могут быть связаны c системным

именем одним из следующих методов:

1

Если файл явно открыт, имя может быть приведено в операторе OPEN.

2

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

3

Если файл открыт неявно (операторами READ и WRITE) имя определяется согласно методу, который будет изложен далее в лекции «Операторы ввода/вывода».

4

Если файл явно открыт и имя отсутствует в операторе OPEN, этот файл считается временным или вспомогательным файлом, принимающим имя, заложенное в компиляторе.

Слайд 29

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

широко используемые структуры файлов

Пример программы, использующей для чтения и записи
*-файлы,

a так же именованные, внешние, последовательные форматные файлы.

Скопировать файл содержащий три колонки целых переменных, каждая по 7 колонок шириной, имя которого введено пользователем, в файл c именем OUT.TXT с перестановкой первой и второй колонок.

Задача:

Слайд 30

широко используемые структуры файлов PROGRAM СОLSWP CHARACTER*64 FNAME C Вывод запроса

широко используемые структуры файлов

PROGRAM СОLSWP
CHARACTER*64 FNAME
C Вывод запроса имени файла на

экран
WRITE (*,900)
C Чтение имени файла c клавиатуры
READ(*,910) FNAME
C Используем устройство 3 для ввода;
С подойдет любой номер устройства, кроме 0.
OPEN (3,FILE=FNAME)
C Используем устройство 4 для вывода;
С подойдет любой номер устройства, кроме 0 и 3.
OPEN (4,FILE='OUT.TXT',STATUS='NEW')
C Cчитываем и записываем до конца файла.
100 READ (3,920,END=200) I, J, K
WRITE (4,920) J, I, K
GO TO 100
200 WRITE (*,910) 'DONE'
900 FORMAT ('INPUT FILE NAME'\'имя входного файла'\)
910 FORMAT(A)
920 FORMAT (3I7)
END
Слайд 31

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

Другие структуры файлов

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

применений.
Слайд 32

ДРУГИЕ СТРУКТУРЫ ФАЙЛОВ B обобщенном виде, специальные структуры файлов можно описать

ДРУГИЕ СТРУКТУРЫ ФАЙЛОВ

B обобщенном виде, специальные структуры файлов можно описать так:

1
Если

необходим произвольный доступ ввода/вывода, например, в базе данных, то требуются файлы c прямым доступом.
Слайд 33

ДРУГИЕ СТРУКТУРЫ ФАЙЛОВ 2 Если данные должны быть записаны, a затем

ДРУГИЕ СТРУКТУРЫ ФАЙЛОВ

2
Если данные должны быть записаны, a затем снова считаны,

то бесформатные файлы, возможно, будут более эффективны в отношении скорости, но менее эффективны в отношении пространства на диске.
Слайд 34

Комбинация прямого доступа и бесформатных файлов будет идеальной для создания, эксплуатации

Комбинация прямого доступа и бесформатных файлов будет идеальной для создания, эксплуатации

и доступа к базе данных
МС-Фортрана!
Слайд 35

ДРУГИЕ СТРУКТУРЫ ФАЙЛОВ 3 Если необходимо передать данные без какой-либо интерпретации

ДРУГИЕ СТРУКТУРЫ ФАЙЛОВ

3
Если необходимо передать данные без какой-либо интерпретации в системе,

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

Бесформатный ввод/вывод используется при управлении устройством c однобайтовым, двоичным интерфейсом.

В данном случае форматный ввод/вывод преобразовывал бы некоторые символы, такие как представление ASCII для RETURN, которые не смогли бы передаться в неизмененном виде.

Количество записываемых байтов для целой константы определено метакомандой $STORAGE

Слайд 36

ДРУГИЕ СТРУКТУРЫ ФАЙЛОВ 4 Если требуется передать данные, как описано в

ДРУГИЕ СТРУКТУРЫ ФАЙЛОВ

4
Если требуется передать данные, как описано в пункте 3,

но считываться они будут не фортранной программой, то рекомендуется BINARI формат.

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

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

Слайд 37

Старые и новые файлы Открытый файл MC-Фортрана является либо OLD (старым), либо NEW (новым).

Старые и новые файлы

Открытый файл MC-Фортрана является либо OLD (старым), либо

NEW (новым).
Слайд 38

СТАРЫЕ И НОВЫЕ ФАЙЛЫ Файлы "открытые для чтения" не отличаются от

СТАРЫЕ И НОВЫЕ ФАЙЛЫ

Файлы "открытые для чтения" не отличаются
от "открытых

для записи".

Следовательно, можно открывать старые (уже существующие) файлы и записывать в них заново.

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

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

Запись в последовательный файл уничтожает любые записи после вновь записываемых

Слайд 39

СТАРЫЕ И НОВЫЕ ФАЙЛЫ Когда устройство, подобное клавиатуре или принтеру, открыто,

СТАРЫЕ И НОВЫЕ ФАЙЛЫ

Когда устройство, подобное клавиатуре или принтеру, открыто, как

файл, то обычно не имеет значения, является этот файл
OLD или NEW.

Ho для файлов на диске открытие файла NEW, создает новый файл:
Если у предыдущего файла было такое же имя, то он стирается.
Если новый файл закрыт c помощью STATUS='KEEP', или если программа заканчивается без выполнения над файлом операции CLOSE, то создается постоянный файл c именем, данным, при открытии.

Слайд 40

Совмещение файла Если системы, объединены в одну сеть, то одновременно к

Совмещение файла

Если системы, объединены в одну сеть, то одновременно к одному

файлу может обращаться несколько программ.
Два условия (SHARE и MODE) в операторе OPEN позволяют управлять доступом к файлу.
Эти условия существуют так же в операторе INQUIRE, поэтому можно определить состояние доступа к файлу.