Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
современный фортран , Бортеньев.pdf
Скачиваний:
242
Добавлен:
26.03.2015
Размер:
2.34 Mб
Скачать

10. Файлы Фортрана

 

Данные записи

 

CR

 

 

 

 

<

-------------------------- Длина записи ---------------------------

>

1

 

Рис. 10.5. Запись CR-потока

 

 

Пример:

integer recl

open(3, file = 'a.txt', recordtype = 'stream_cr')

!Заносим в файл 3 записи; он открыт как текстовой (форматный) файл

!В случае вывода под управлением списка оператор WRITE вставляет

!в начало каждой записи пробел

write(3, *) 123, 555

! Длина записи 24 байта (см. разд. 9.9.2.2)

write(3, *) 'Next record'

! Длина записи 13 байт

write(3, *) 1.4e-6

! Длина записи 16 байт

backspace(3)

! Возврат на одну запись

read(3, '(Q)') recl

! Читаем число байт в третьей записи

print *, recl

! 16

end

 

Результат (состав файла a.txt):

123 555 Next record 1.4000000E-06

10.6.7. LF-потоки

Записи LF-потока имеют переменную длину и завершаются символами возврата каретки и новой строки, которые автоматически проставляются при добавлении записи и удаляются при чтении. Эти символы позволяют определить длину текущей записи. Поскольку LF-потоки завершаются символами CHAR(13) и CHAR(10), в вводимых записях эти символы должны отсутствовать. LF-потоки - это стандартные текстовые файлы. Структура записи LF-потока представлена на рис. 10.6.

 

Данные записи

 

CR

LF

<--------------------------

Длина записи ---------------------------

>

1

1

 

 

 

 

 

Рис. 10.6. Запись LF-потока

Пример:

integer recl

open(4, file = 'a.txt', recordtype = 'stream_lf')

! Заносим в файл 3 записи; он открыт как текстовой (форматный) файл

write(4, '(2i5)') 123, 555

! Длина записи 10 байт

write(4, '(a30)') 'Next record'

! Длина записи 30 байт

335