Второй способ дополнения файла информацией

Существует функция EOF(n)состояния файла. Если открыт канал оператором OPEN:

OPEN (UNITE=3, FILE=’…)

и мы производим чтение оператором READ:

READ (3,*) …

то в обычном режиме функция EOF(3) имеет значение .FALSE. . В том случае, если из файла прочитана последняя запись, функция EOF(3) принимает значение .TRUE..

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

По сравнению с предыдущим способом не требуется делать возврат назад на одну строку и восстанавливать последнею запись.

 

Задача:

В файле ZONA находятся записи. В каждой записи три числа A, B, C. Подсчитать количество записей в файле, дополнить его аналогичной информацией. Пополнение файла информацией остановить при вводе слова “конец”.

 

OPEN (4,FILE=’ZONA’, STATUS=’OLD’)

KZ=0

IF(EOF(4)) GO TO 4

READ (4,*) A,B,C

KZ=KZ+1

GO TO 2

4 WRITE (6,*)’В файле было записей’,KZ

7 WRITE (6,*)’Введите новые значения A, B, C’

8 READ (5,*,ERR=12) A,B,C

WRITE (4,*) A,B,C

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

KZ=KZ+1

Повторяем ввод данных с клавиатуры и выводим их в файл

GOTO 8

При вводе текста вместо числа наступит сбойная ситуация и управление будет передано на метку 12.

12 WRITE (6,*)’Всего записей’,KZ

CLOSE(4)

PAUSE

STOP

END

При вводе любого текстового символа произойдёт сбой по чтению, и программа будет снята с выполнения. Чтобы программа не снялась с выполнения в операторе READ необходимо предусматривать обработку сбойной ситуации. Что мы и сделали в строке READ(5,*,ERR=12) A,B,C. В противном случае текст (“всего записей”,KZ) не будет выведен никогда.


 








Дата добавления: 2015-06-10; просмотров: 742;


Поиск по сайту:

При помощи поиска вы сможете найти нужную вам информацию.

Поделитесь с друзьями:

Если вам перенёс пользу информационный материал, или помог в учебе – поделитесь этим сайтом с друзьями и знакомыми.
helpiks.org - Хелпикс.Орг - 2014-2024 год. Материал сайта представляется для ознакомительного и учебного использования. | Поддержка
Генерация страницы за: 0.005 сек.