Непосредственная работа с файлом
При выполнении оператора OPEN открывается файл по указанному каналу, и указатель считывания записи устанавливается на первую запись.
Указатель считывания записи – аппаратная величина, которую мы наблюдать не можем. Указатель считывания записи перемещается от одной записи к другой при выполнении или READ или WRITE, а при форматной обработке информации при выполнении символа слэш (/) оператора FORMAT.
Пример:
FORMAT(/// …)– пропустить 3 записи и начать обработку информации с 4-й строки.
Пример работы с файлом:
…
OPEN(2, FILE=’WYHOD.REZ’, STATUS=’NEW’)
WRITE (2,*) ‘ A=’,A,’ B=’,B
WRITE (2,*)
WRITE (2,*) ‘Результат расчёта’
WRITE (2,*) ‘сумма =’,S
…
Эта информация появится в файле так же, если бы она выводилась на экран. WRITE(2,*) выведет в файле пустую строку.
Предположим, с помощью текстового редактора мы создали файл DAN1.DAT и в него занесли числовую информацию в бесформатном виде.
-1.5,2.7
3.8,6.5,1.7
8.9,-1.65,8.3
2.1,3.8,0.
6.3,4.5
-15.75,-6.9
3.8,-2.5
Файл записан на жесткий диск. Попробуем читать содержимое файла и отметим особенности выполнения операций
.
.
OPEN(3 , FILE = ’DAN1.DAT’ , STATUS = ‘OLD’)
READ(3,*)A1,B1 При чтении файла переменным будут присваиваться значения A1=-1.5 , B1=2.7
READ(3,*)A2,B2 Переменным будут присвоены значение A2 = 3.8, B2=6.5. Число 1.7 из второй записи не прочтется, так как закончился список ввода.
READ(3,*) По этому оператору третья запись будет пропущена без чтения, так как в операторе отсутствует список ввода.
READ(3,*) A4,B4,C4,D4 Здесь список ввода больше, чем количество данных в следующей записи. Поэтому при бесформатном вводе получим A4=2.1 , B4=3.8 , C4=0. , а значение D4 прочтется автоматически из следующей, пятой по счету записи D4=6.3 . Число 4.5 из пятой записи останется непрочитанным.
READ(3,*)F Прочтется число -15.75
После выполнения этого оператора указатель считывания записи устанавливается перед последней строкой данных, если далее последует оператор чтения, то эти данные будут считаны. Если же последует оператор вывода информации по этому каналу, например:
WRITE(3,*)’Результаты расчета S= ’, S
то в файл выведется эта информация, а последняя строка данных (а если бы за ней была и другая информация до конца файла) будет уничтожена.
Дата добавления: 2015-06-10; просмотров: 614;