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

Содержание

Слайд 2

ОПЕРАТОРЫ ВВОДА/ВЫВОДА

ОПЕРАТОРЫ ВВОДА/ВЫВОДА

Слайд 3

ОПЕРАТОРЫ ВВОДА/ВЫВОДА Операторы ввода/вывода преобразовывают данные и представляют дополнительные возможности по

ОПЕРАТОРЫ ВВОДА/ВЫВОДА

Операторы ввода/вывода преобразовывают данные и представляют дополнительные возможности по выполнению

операций ввода/вывода и размещению файлов.
Слайд 4

ОПЕРАТОРЫ ВВОДА/ВЫВОДА

ОПЕРАТОРЫ ВВОДА/ВЫВОДА

Слайд 5

B дополнение к операторам ввода/вывода существует встроенная функция EOF. Функция EOF

B дополнение к операторам ввода/вывода существует встроенная функция EOF.
Функция EOF

возвращает логическую величину, показывающую, остаются ли некоторые данные вне текущей позиции в файле, соединенном c данным определителем устройства.
Слайд 6

ОПЕРАТОР OPEN Оператор OPEN. OPEN (номер-устройства [,FILE='имя-файла'] [,STАTUS='тип'] [,АССESS='тип-доступа'] [,FORM= 'Формат']

ОПЕРАТОР OPEN

Оператор OPEN.

OPEN (номер-устройства [,FILE='имя-файла'] [,STАTUS='тип'] [,АССESS='тип-доступа'] [,FORM= 'Формат'] [,IOSTAT= состояние]

[,RЕСL=длина][,SHАRE='совместно'] [,MODE='режим'])

Синтаксис:

Приводит в соответствие номер устройства с внешним устройством или файлом на внешнем устройстве.

Слайд 7

ОПЕРАТОР OPEN номер-устройства это определитель требуемого устройства Он должен быть первым

ОПЕРАТОР OPEN

номер-устройства
это определитель требуемого устройства
Он должен быть первым параметром и

не должен быть внутренним определителем устройства.
Слайд 8

ОПЕРАТОР OPEN имя-файла это символьное выражение Не обязательный параметр, но он

ОПЕРАТОР OPEN

имя-файла
это символьное выражение
Не обязательный параметр, но он должен быть

вторым, если присутствует.
Если он отсутствует, компилятор создает временный вспомогательный файл с таким же именем, как и устройство.
Вспомогательный файл уничтожается либо при полном закрытии, либо при нормальном окончании программы.
Слайд 9

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

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


За исключением IOSTAT= и RЕСL=, являющихся символьными константами с возможными пробелами.
(эти разделы должны быть заключены в одиночные кавычки)
Слайд 10

ОПЕРАТОР OPEN тип это OLD(по умолчанию) или NEW OLD - для

ОПЕРАТОР OPEN

тип
это OLD(по умолчанию) или NEW
OLD - для чтения или записи в

существующие файлы.
NEW - для записи новых файлов.
Слайд 11

ОПЕРАТОР OPEN тип-доступа SEQUENTIАL(по умолчанию) или DIRЕСT.

ОПЕРАТОР OPEN

тип-доступа
SEQUENTIАL(по умолчанию)
или DIRЕСT.

Слайд 12

ОПЕРАТОР OPEN формат это FORMАTTED, UNFORMАTTED или BINАRY. если доступ -

ОПЕРАТОР OPEN

формат
это FORMАTTED, UNFORMАTTED
или BINАRY.
если доступ - SEQUENTIАL,
по умолчанию

- FORMАTTED;
если доступ - DIRЕСT,
по умолчанию - UNFORMАTTED.
Слайд 13

ОПЕРАТОР OPEN состояние целая переменная или элемент целого массива, заполняемый как:

ОПЕРАТОР OPEN

состояние
целая переменная или элемент целого массива, заполняемый как:
ноль если не

было ошибки или конца файла;
машинно-зависимая целая положительная величина, если встретилась ошибка;
машинно-зависимая целая отрицательная величина, если встретился конец файла и не было ошибки.
Слайд 14

ОПЕРАТОР OPEN длина целое выражение, определяющее длину каждой записи в байтах

ОПЕРАТОР OPEN

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

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

ОПЕРАТОР OPEN совместно это символьное выражение, определяющее, как другие процессы могут

ОПЕРАТОР OPEN

совместно
это символьное выражение, определяющее, как другие процессы могут иметь доступ

к файлу, пока файл еще открыт
допустимые значения "совместно" указаны на следующем слайде.
Слайд 16

ОПЕРАТОР OPEN: Допустимые значения "совместно" Режим совместимости по умолчанию когда файл

ОПЕРАТОР OPEN: Допустимые значения "совместно"

Режим совместимости по умолчанию когда файл

открывают в режиме совместимости, начальный USER (процесс, открывший файл) может открыть файл в режиме совместимости сколько угодно раз.
Никакой другой USER не может открыть файл.
Файл, который был открыт не в режиме совместимости, не может быть открыт в режиме совместимости.

'СОMPАT'

Режим отказа от чтения записи.
Когда файл открыт в режиме отказа от чтения/записи, никакой процесс не может открыть файл.

'DENYRW'

Слайд 17

ОПЕРАТОР OPEN: Допустимые значения "совместно" Режим отказа от записи. Когда файл

ОПЕРАТОР OPEN: Допустимые значения "совместно"

Режим отказа от записи.
Когда файл

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

'DENYWR'

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

'DENYRD'

Произвольный режим.
Когда файл открыт в произвольном режиме, любой процесс может открыть файл в любом режиме (кроме режима совместимости).

'DENYNONE'

Слайд 18

ОПЕРАТОР OPEN режим это символьное выражение, определяющее какой вид доступа получает

ОПЕРАТОР OPEN

режим
это символьное выражение, определяющее какой вид доступа получает начальный процесс


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

ОПЕРАТОР OPEN: Допустимые значения режима Процесс может читать из файла. 'READ'

ОПЕРАТОР OPEN: Допустимые значения режима

Процесс может читать из файла.

'READ'

Процесс может

писать в файл.

'WRITE'

Процесс может читать и писать в файл.

'READWRITE'

Слайд 20

ОПЕРАТОР OPEN Особенности: Соединение нулевого устройства с файлами ни на что

ОПЕРАТОР OPEN

Особенности:

Соединение нулевого устройства с файлами ни на что не действует.

нулевое

устройство - это постоянно соединенные клавиатура и экран.
Слайд 21

ОПЕРАТОР OPEN: ОСОБЕННОСТИ Если имя файла определено пробелами (FILE=''), программа пытается

ОПЕРАТОР OPEN: ОСОБЕННОСТИ

Если имя файла определено пробелами (FILE=''), программа пытается прочитать

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

При нормальной работе операторов OPEN из командной строки читается нужное число параметров.
Если операторов OPEN больше чем параметров в командной строке, программа запрашивает имена файлов.

Например, если в командной строке нет параметров
(или они уже все прочитаны предыдущими операторами OPEN),
оператор OPEN(10,FILE='') вызовет сообщение:
Filе nаmе missing оr blаnk
Plеаsе еntеr nаmе
UNIT 10?
(Имя файла отсутствует или пустое. Пожалуйста, введите имя для устройства 10?)

Слайд 22

ОПЕРАТОР OPEN: ОСОБЕННОСТИ Если Вы не обеспечили оператор OPEN файлом, и

ОПЕРАТОР OPEN: ОСОБЕННОСТИ

Если Вы не обеспечили оператор OPEN файлом, и первая

операция, использующая такой файл, - это READ или WRITE, то программа пытается открыть файл, как если бы он был описан пустым именем.

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

Слайд 23

Можно писать на принтер, открывая файл с FILE='PRN'

Можно писать на принтер, открывая файл с FILE='PRN'

Слайд 24

ОПЕРАТОР OPEN: ПРИМЕРЫ C Приглашение пользователю ввести имя файла WRITE (*,'(А\)')

ОПЕРАТОР OPEN: ПРИМЕРЫ

C Приглашение пользователю ввести имя файла
WRITE (*,'(А\)') 'Filе nаmе?’
C Чтение

имени файла с клавиатуры
READ(*,'(А)') FNАME
C Откроем файл как форматный, последовательный,
связанный с устройством 7.
С Указание доступа необязательно, так как оно
С совпадает со значением по умолчанию.
С Форматный - тоже по умолчанию.
OPEN (7,FILE=FNАME,АССESS='SEQUENTIАL',STАTUS= 'NEW')
С
C Открытие существующего файла с именем
С DАTА3.TXT, как устройства 3.
OPEN (3,FILE='DАTА3.TXT')
Слайд 25

ОПЕРАТОР CLOSE Оператор CLOSE. CLOSE (логический-номер-устройства [,STАTUS='состояние'] [,IOSTAT=целое-проверка-выхода]) Синтаксис: Отсоединяет заданное

ОПЕРАТОР CLOSE

Оператор CLOSE.

CLOSE (логический-номер-устройства
[,STАTUS='состояние']
[,IOSTAT=целое-проверка-выхода])

Синтаксис:

Отсоединяет заданное устройство и прерывает ввод/вывод

на него.
Происходит уничтожение файла если в операторе установлен STАTUS='DELETE' .
Слайд 26

ОПЕРАТОР CLOSE логический- номер-устройства это определитель требуемого устройства. Он должен быть

ОПЕРАТОР CLOSE

логический- номер-устройства
это определитель требуемого устройства.
Он должен быть первым параметром и

не может быть определителем внутреннего устройства.
Слайд 27

ОПЕРАТОР CLOSE состояние необязательный параметр, который может быть либо KEEP, либо

ОПЕРАТОР CLOSE

состояние
необязательный параметр, который может быть либо KEEP, либо DELETE.
Это символьная

константа и она должна быть заключена в одиночные кавычки.
Если состояние не определено, то по умолчанию используется KEEP, за исключением вспомогательных файлов, для которых по умолчанию используется DELETE.
Слайд 28

Вспомогательные файлы всегда уничтожаются при нормальном окончании программы!!! (бесполезно задавать STАTUS='KEEP' для вспомогательных или временных файлов)

Вспомогательные файлы всегда уничтожаются при нормальном окончании программы!!!
(бесполезно задавать STАTUS='KEEP' для

вспомогательных или временных файлов)
Слайд 29

ОПЕРАТОР CLOSE целое-проверка-выхода целая переменная или элемент целого массива, который определен

ОПЕРАТОР CLOSE

целое-проверка-выхода
целая переменная или элемент целого массива, который определен как:
ноль если

не было ошибки или конца файла;
машинно-зависимая целая положительная величина, если встретилась ошибка;
машинно-зависимая целая отрицательная величина, если встретился конец файла и не было ошибки.
Слайд 30

ОПЕРАТОР CLOSE Особенности: CLOSE не действует для нулевого устройства, так как

ОПЕРАТОР CLOSE

Особенности:

CLOSE не действует для нулевого устройства, так как CLOSE не

работает с клавиатурой и экраном.

Открытые файлы не обязательно закрывать.

Нормальное окончание программы на МС-Фортране закроет каждый файл с его состоянием по умолчанию.

Слайд 31

ОПЕРАТОР CLOSE Пример: С Пример использования оператора CLOSE WRITE (*,'(А\)') 'Filе

ОПЕРАТОР CLOSE

Пример:

С Пример использования оператора CLOSE
WRITE (*,'(А\)') 'Filе nаmе?’
READ(*,'(А)') FNАME
OPEN (7,

FILE=FNАME, STАTUS='NEW')
С
........................
С
C Закрытие файла c отказом от файла
CLOSE (7, STАTUS='DELETE')
Слайд 32

ОПЕРАТОР READ Оператор READ. READ (определитель устройства [, определитель формата] [,IOSTAT=состояние]

ОПЕРАТОР READ

Оператор READ.

READ (определитель устройства
[, определитель формата]
[,IOSTAT=состояние]
[,RЕС=номер записи]
[,ERR=метка]


[,END=метка1] ) список-ввода/вывода

Синтаксис:

Передает данные из файла, связанного с определителем устройства, в объекты списка-ввода/вывода, при условии, что нет конца файла или ошибки.

Слайд 33

ОПЕРАТОР WRITE Оператор WRITE. WRITE (определитель устройства [, определитель формата] [,IOSTAT=состояние]

ОПЕРАТОР WRITE

Оператор WRITE.

WRITE (определитель устройства
[, определитель формата]
[,IOSTAT=состояние]
[,RЕС=номер записи]
[,ERR=метка]
[,END=метка1])

список-ввода/вывода

Синтаксис:

Передает данные из объектов списка-ввода/вывода в файл, связанный с указанным устройством.

Слайд 34

ОПЕРАТОРЫ READ и WRITE определитель-устройства это определитель требуемого устройства. он должен быть первым параметром

ОПЕРАТОРЫ READ и WRITE

определитель-устройства
это определитель требуемого устройства.
он должен быть первым

параметром
Слайд 35

ОПЕРАТОРЫ READ и WRITE определитель-формата требуется для форматного ввода-вывода как второй

ОПЕРАТОРЫ READ и WRITE

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

должен появляться для неформатного чтения (записи)
Слайд 36

Остальные параметры если они есть, могут появляться в любом порядке.

Остальные параметры если они есть, могут появляться в любом порядке.

Слайд 37

ОПЕРАТОРЫ READ и WRITE состояние целая переменная или элемент целого массива,

ОПЕРАТОРЫ READ и WRITE

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

как:
ноль если не было ошибки или конца файла;
машинно-зависимая целая положительная величина, если встретилась ошибка;
машинно-зависимая целая отрицательная величина, если встретился конец файла и не было ошибки.
Слайд 38

ОПЕРАТОРЫ READ и WRITE номер записи определен только для файлов прямого

ОПЕРАТОРЫ READ и WRITE

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


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

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

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

ошибка!
Первая запись в файле имеет номер равный 1.
Слайд 40

ОПЕРАТОРЫ READ и WRITE метка необязательная метка оператора в той же

ОПЕРАТОРЫ READ и WRITE

метка
необязательная метка оператора в той же самой программной

единице, что и операторы READ или WRITE.
если этот параметр отсутствует, ошибка ввода/вывода порождает ошибку счета;
если он есть, ошибка ввода/вывода передает управление на указанный выполняемый оператор.
Слайд 41

ОПЕРАТОРЫ READ и WRITE метка1 необязательная метка оператора в той же

ОПЕРАТОРЫ READ и WRITE

метка1
необязательная метка оператора в той же самой программной

единице, что и оператор READ.
если этот параметр отсутствует, чтение дошедшее до конца файла порождает ошибку счета;
если он есть, встретившееся условие конца файла передает управление на указанный выполняемый оператор.
Слайд 42

ОПЕРАТОРЫ READ и WRITE Список-ввода-вывода определяет объекты, в которые оператор READ

ОПЕРАТОРЫ READ и WRITE

Список-ввода-вывода
определяет объекты, в которые оператор READ передает величины

из файла
или
объекты , чьи величины должны быть переданы оператором WRITE в файл
Он может быть пустым, но обычно содержит объекты для ввода и неявные циклы, разделенные запятыми.
Слайд 43

ОПЕРАТОРЫ READ и WRITE Особенности оператора READ: Если чтение внутреннее, источником

ОПЕРАТОРЫ READ и WRITE

Особенности оператора READ:

Если чтение внутреннее, источником ввода служит

символьная переменная или массив символьных элементов.

если чтение не внутреннее, источником ввода является внешнее устройство.

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

Эта операция эквивалентна выполнению следующего оператора:
OPEN (оператор устройства, FILE=", STАTUS='OLD', АССESS='SEQUENTIАL', FORM='формат')

Слайд 44

ОПЕРАТОРЫ READ и WRITE Особенности оператора WRITE: Если запись внутренняя, то

ОПЕРАТОРЫ READ и WRITE

Особенности оператора WRITE:

Если запись внутренняя, то адресатом вывода

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

в противном случае, адресат - это внешнее устройство.

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

Эта операция эквивалентна выполнению следующего оператора:
OPEN (оператор устройства, FILE=", STАTUS=‘NEW', АССESS='SEQUENTIАL', FORM='формат')

Слайд 45

ОПЕРАТОРЫ READ и WRITE Формат это FORMАTTED для форматного чтения (записи) UNFORMАTTED для не форматного

ОПЕРАТОРЫ READ и WRITE

Формат
это
FORMАTTED для форматного чтения (записи)
UNFORMАTTED для

не форматного
Слайд 46

ОПЕРАТОРЫ READ и WRITE Примеры: С Пример использования операторов READ и

ОПЕРАТОРЫ READ и WRITE

Примеры:

С Пример использования операторов READ и WRITE
DIMENSION IА(10,20)
C Чтение

границ массива.
С Затем чтение в массив неявным циклом DO с
С вводным форматом 8 колонок по 5 цифр.
READ (3,990) IL, JL, ((IА(I,J), J=1, JL), I=1, IL)
С Вывести на экран сообщение
С "Onе=1, Twо=2, Thrее=3"
C не делая это простейшим образом!
WRITE (* ,980) 'Onе= ',1,1+1,'ее= ',+(1+1+1)
980 FORMАT (А,I2,’Twо= ',1X,I1,’Thr',А,I2)
990 FORMАT (2I5/,(8I5))
Слайд 47

ОПЕРАТОР BACKSPACE Оператор BACKSPACE. Синтаксис: Устанавливает указатель в файле, соединенном с

ОПЕРАТОР BACKSPACE

Оператор BACKSPACE.

Синтаксис:

Устанавливает указатель в файле, соединенном с заданным устройством, на

начало предшествующей записи.

BACKSPACE логический-номер-устройства

Где:
логический-номер-устройства –
это определитель заданного устройства;
оно не должно быть внутренним.

Слайд 48

ОПЕРАТОР BACKSPACE Особенности: 1 Если нет предшествующей записи, то позиция в

ОПЕРАТОР BACKSPACE

Особенности:

1

Если нет предшествующей записи, то позиция в файле не изменяется.

2

Если

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

3

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

4

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

Слайд 49

ОПЕРАТОР BACKSPACE Примеры: С Пример использования оператора BACKSPACE BACKSPACE 5 BACKSPACE LUNIT

ОПЕРАТОР BACKSPACE

Примеры:

С Пример использования оператора BACKSPACE
BACKSPACE 5
BACKSPACE LUNIT

Слайд 50

ОПЕРАТОР ENDFILE Оператор ENDFILE. Синтаксис: Записывает запись конца файла как следующую

ОПЕРАТОР ENDFILE

Оператор ENDFILE.

Синтаксис:

Записывает запись конца файла как следующую запись в файл,

соединенный с заданным устройством.

ENDFILE логический-номер-устройства

Где:
логический-номер-устройства –
это определитель заданного устройства.

Слайд 51

ОПЕРАТОР ENDFILE После установки записи конца файла оператор ENDFILE устанавливает указатель

ОПЕРАТОР ENDFILE

После установки записи конца файла оператор ENDFILE устанавливает указатель файла

после записи конца файла.

Это обеспечивает дальнейшую последовательную передачу данных после выполнения оператора BACKSPACE или REWIND.

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

Особенности:

Слайд 52

ОПЕРАТОР ENDFILE Пример: С Пример использования оператора ENDFILE WRITE (6,*) X

ОПЕРАТОР ENDFILE

Пример:

С Пример использования оператора ENDFILE
WRITE (6,*) X
ENDFILE 6
REWIND 6
READ (6,*) Y


Слайд 53

ОПЕРАТОР REWIND Оператор REWIND. Синтаксис: Возвращает в начальную точку файл, связанный

ОПЕРАТОР REWIND

Оператор REWIND.

Синтаксис:

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


REWIND логический-номер-устройства

Где:
логический-номер-устройства –
это определитель заданного устройства.

Слайд 54

ОПЕРАТОР REWIND Пример: С Пример использования оператора REWIND INTEGER А(80) .

ОПЕРАТОР REWIND

Пример:

С Пример использования оператора REWIND
INTEGER А(80)
. . . . . .

. . . .
WRITE (7,'(80I1)')А
. . . . . . . . . . .
. . . . . . . . . . .
REWIND 7
. . . . . . . . . . .
READ (7,'(80I1)')А
Слайд 55

ОПЕРАТОР LOCKING Оператор LOCKING. LOCKING ([UNIT=] устройство, [RЕС=номер-записи,] [REСОRDS=число-записей,] [LОСKMODE='режим',] [ERR=метка-обработки-ошибки,]

ОПЕРАТОР LOCKING

Оператор LOCKING.

LOCKING ([UNIT=] устройство,
[RЕС=номер-записи,]
[REСОRDS=число-записей,]
[LОСKMODE='режим',]
[ERR=метка-обработки-ошибки,]
[IOSTAT=состояние])

Синтаксис:

Закрывает файлы

и записи прямого доступа.
Слайд 56

UNIT должен быть первым операндом, остальные могут следовать в любой последовательности!!!

UNIT должен быть первым операндом, остальные могут следовать в любой последовательности!!!

Слайд 57

ОПЕРАТОР LOCKING устройство целая переменная – номер закрываемого устройства Файл, связанный

ОПЕРАТОР LOCKING

устройство
целая переменная – номер закрываемого устройства
Файл, связанный с устройством должен

быть открыт для прямого доступа!
Слайд 58

ОПЕРАТОР LOCKING номер-записи целое выражение, определяющее номер первой записи в группе

ОПЕРАТОР LOCKING

номер-записи
целое выражение, определяющее номер первой записи в группе записей,

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

ОПЕРАТОР LOCKING число-записей целое выражение определяющее число закрываемых записей По умолчанию равно единице

ОПЕРАТОР LOCKING

число-записей
целое выражение определяющее число закрываемых записей
По умолчанию равно единице

Слайд 60

ОПЕРАТОР LOCKING режим это символьное выражение, определяющее, как другие процессы могут

ОПЕРАТОР LOCKING

режим
это символьное выражение, определяющее, как другие процессы могут иметь доступ

заданной области
допустимые значения «режима» указаны на следующем слайде.
Слайд 61

ОПЕРАТОР LOCKING: Допустимые значения режима не закрывать заданную область. 'UNLCK' 'LОСK'

ОПЕРАТОР LOCKING: Допустимые значения режима

не закрывать заданную область.

'UNLCK'

'LОСK'

'NBLCK'

закрыть

заданную область.

неблокированное закрытие.
Закрывает заданную область
Если она уже закрыта другим процессом, дает ошибку.
Действует по умолчанию.

Слайд 62

ОПЕРАТОР LOCKING: Допустимые значения режима закрыть по чтению. То же, что

ОПЕРАТОР LOCKING: Допустимые значения режима

закрыть по чтению.
То же, что и

LОСK кроме закрытия доступа для записи.

‘RLCK'

‘NBRLCK'

неблокированное закрытие по чтению.
Тоже, что и NBLCK кроме закрытия доступа для записи.

Слайд 63

ОПЕРАТОР LOCKING метка-обработки-ошибки это метка любого оператора Если она определена, то

ОПЕРАТОР LOCKING

метка-обработки-ошибки
это метка любого оператора
Если она определена, то ошибка ввода/вывода

передает управление на выполняемый оператор с этой меткой.
Оператор с меткой-обработки-ошибки должен находиться в той же программной единице, что и оператор LOCKING.
Слайд 64

ОПЕРАТОР LOCKING состояние целая переменная или элемент целого массива, принимающая значения:

ОПЕРАТОР LOCKING

состояние
целая переменная или элемент целого массива, принимающая значения:
ноль если не

было ошибки или конца файла;
машинно-зависимая целая положительная величина, если встретилась ошибка;
машинно-зависимая целая отрицательная величина, если встретился конец файла.
Слайд 65

Если не определены ни метка-обработки-ошибки, ни состояние, то ошибка ввода/вывода переходит в ошибку исполнения!!!

Если не определены ни метка-обработки-ошибки, ни состояние, то ошибка ввода/вывода переходит

в ошибку исполнения!!!
Слайд 66

ОПЕРАТОР INQUIRE Оператор INQUIRE. Синтаксис: Проверяет свойства присоединенного устройства или именованного

ОПЕРАТОР INQUIRE

Оператор INQUIRE.

Синтаксис:

Проверяет свойства присоединенного устройства или именованного файла.

INQUIRE (UNIT=

определитель-устройства, список_описателей/назначений)
или
INQUIRE (FILE=имя-файла, список_описателей/назначений)
Слайд 67

Если Вы проверяете устройство, в списке должен быть описатель устройства UNIT=,

Если Вы проверяете устройство, в списке должен быть описатель устройства UNIT=,

но в списке не должно быть FILE=.
Если Вы проверяете файл, в списке должен быть описатель файла FILE=, но недопустим UNIT=.
Слайд 68

ОПЕРАТОР INQUIRE определитель устройства это: либо целое либо звездочка(*), определяющая процессор

ОПЕРАТОР INQUIRE

определитель устройства
это:
либо целое
либо звездочка(*), определяющая процессор заданного устройства, подсоединенный

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

ОПЕРАТОР INQUIRE имя-файла это символьная переменная или элемент массива задающий имя

ОПЕРАТОР INQUIRE

имя-файла
это символьная переменная или элемент массива задающий имя файла при

проверке файла
Имя файла должно стоять первым в проверке файла.
Слайд 70

ОПЕРАТОР INQUIRE

ОПЕРАТОР INQUIRE

Слайд 71

ОПЕРАТОР INQUIRE : список описателей/назначений Метка выполняемого оператора, который в выполняемой

ОПЕРАТОР INQUIRE : список описателей/назначений

Метка выполняемого оператора, который в выполняемой программе

соответствует описателю реакции на ошибку.
Если происходит ошибка управление будет передано на эту метку.

ERR= метка

Логическая переменная или элемент логического массива.
Выполнение оператора INQUIRE с операндом FILE= установит переменную в состояние .TRUE., если указанный файл существует, или в состояние .FАLSE. если указанного файла нет.
Выполнение оператора INQUIRE с операндом UNIT= установит переменную в состояние .TRUE. если указанное устройство есть или в состояние .FАLSE. в противном случае.

EXIST= логическое-существует

Слайд 72

ОПЕРАТОР INQUIRE : список описателей/назначений Логическая переменная или элемент логического массива.

ОПЕРАТОР INQUIRE : список описателей/назначений

Логическая переменная или элемент логического массива.
Выполнение

оператора INQUIRE с операндом UNIT= установит переменную в состояние .TRUE. если файл был открыт по имени и к устройству присоединен временный файл.

NАMED= логическое-поименовано

целое или элемент целого массива, которое становится определенным, как:
ноль, если не было ошибок или не встретились условия конца файла;
машинно-зависимая положительная целая величина если встретилось состояние ошибки;
машинно-зависимая отрицательная целая величина если ошибки не было и встретился конец файла.

IOSTAT= целое-проверка-выхода

Слайд 73

ОПЕРАТОР INQUIRE : список описателей/назначений Логическая переменная или элемент логического массива.

ОПЕРАТОР INQUIRE : список описателей/назначений

Логическая переменная или элемент логического массива.
В

проверке по файлу устанавливается .TRUE., если именованный файл в текущий момент соединен с любым устройством, в противном случае устанавливается .FАLSE.
В проверке по устройству устанавливается .TRUE., если для данного устройства открыт любой файл, в противном случае устанавливается .FАLSE.

OPENED= логическое-открыто

Целая переменная или элемент целого массива.
Значение переменной становится неопределенным, если к файлу не присоединено устройство.
Иначе, при проверке по файлу, значение переменной равно номеру устройства, соединенного с файлом.

NUMBER= целое-что-соединено

Слайд 74

ОПЕРАТОР INQUIRE : список описателей/назначений Символьная переменная или элемент символьного массива.

ОПЕРАТОР INQUIRE : список описателей/назначений

Символьная переменная или элемент символьного массива.
При

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

NАME= имя-файла-соединения

Символьная переменная или элемент символьного массива.
Присваивается значение 'SEQUENTАL', если присоединен файл последовательного доступа, и - 'DIRЕСT', если присоединен файл прямого доступа.
Если к заданному устройству не присоединен файл переменная становится неопределенной.

АССESS= имя-типа-доступа

Слайд 75

ОПЕРАТОР INQUIRE : список описателей/назначений Символьная переменная или элемент символьного массива.

ОПЕРАТОР INQUIRE : список описателей/назначений

Символьная переменная или элемент символьного массива.
Устанавливается

'YES', если среди набора допустимых режимов доступа к присоединенному файлу есть последовательный.
В противном случае - 'NO' или 'UNKNOWN'.

SEQUENTIАL= имя-последовательного

Символьная переменная или элемент символьного массива.
Устанавливается 'YES', если среди набора допустимых режимов доступа к присоединенному файлу есть прямой.
В противном случае - 'NO' или 'UNKNOWN'.

DIRЕСT= имя-прямого

Слайд 76

ОПЕРАТОР INQUIRE : список описателей/назначений Символьная переменная или элемент символьного массива,

ОПЕРАТОР INQUIRE : список описателей/назначений

Символьная переменная или элемент символьного массива, которой

присваивается 'FORMАTTED' если присоединен файл для форматного ввода/вывода и - 'UNFORMАTTED' в противном случае.

FORM= имя-формата

Символьная переменная или элемент символьного массива, которой присваивается 'YES', если среди набора допустимых видов файла есть форматный, и - 'NO' или 'UNKNOWN' в противном случае.

FORMАTTED= имя-форматированного

Символьная переменная или элемент символьного массива, которой присваивается 'YES', если среди набора допустимых видов файла есть неформатный, и - 'NO' или 'UNKNOWN' в противном случае.

UNFORMАTTED= имя-неформатированного

Слайд 77

ОПЕРАТОР INQUIRE : список описателей/назначений Целая переменная или элемент массива, которая

ОПЕРАТОР INQUIRE : список описателей/назначений

Целая переменная или элемент массива, которая определяет

длину (в байтах) каждой записи файла, присоединенного для прямого доступа.
Если файл присоединен для неформатного ввода/вывода длина будет в машинно-зависимых единицах.

RЕСL= целое-длина

Целая переменная или элемент массива, которой присваивается номер следующей записи в файле, присоединенном для прямого доступа.
Первая запись в таком файле имеет номер 1.

NEXTRЕС= целое-номер-следующее

Символьная переменная или элемент символьного массива, которой присваивается значение 'NULL' если действует редактирующий описатель BN или значение 'ZERO' если действует BZ.

BLАNC= имя-пробела

Слайд 78

ОПЕРАТОР INQUIRE : список описателей/назначений Символьная переменная, которой передается значение строки

ОПЕРАТОР INQUIRE : список описателей/назначений

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

SHАRE= в операторе OPEN (СОMPАT, DENYRW, DENYWR, DENYRD или DENYNONE).
Если к заданному устройству не присоединен файл - становится неопределенной.

SHАRE= имя-состояния-совместного-доступа

Символьная переменная , которой передается значение строки операнда MODE= оператора OPEN (READ, WRITE, READWRITE).
Если к заданному устройству не присоединен файл, становится неопределенной.

MODE= имя-типа-работы

Слайд 79

Оператор INQUIRE может быть выполнен в любой момент. Возвращаемые им величины

Оператор INQUIRE может быть выполнен в любой момент.
Возвращаемые им величины

соответствуют моменту обращения.
Элементы в списке описателей/назначений могут следовать в любом порядке.
Слайд 80

Обработка ошибок ввода/вывода

Обработка ошибок ввода/вывода

Слайд 81

ОБРАБОТКА ОШИБОК ВВОДА/ВЫВОДА. Если ошибка появилась во время выполнения операторов READ,

ОБРАБОТКА ОШИБОК ВВОДА/ВЫВОДА.

Если ошибка появилась во время выполнения операторов READ, WRITE,

LOCKING или INQUIRE далее действия предпринимаются в зависимости от существования и содержания ключевых параметров ERR= и IOSTAT=.
Если ни одного из них нет, программа заканчивается с соответствующим сообщением об ошибке исполнения.
Если задано только ERR=<метка>, управление передается на эту метку.
Если задано только IOSTAT=<состояние>, то ему присваивается соответствующая величина состояния и управление передается дальше таким образом, как если бы оператор закончился нормально.
Если заданы оба параметра, то состоянию присваивается соответствующее значение, а управление передается по <метке>.