Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Ввод и вывод данных из текстового файла




Некоторые правила ввода.

Запись файла – это строка символов, завершаемая символом новой строки. Файл состоит из записей и завершается специальной записью «конец файла».

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

Ввод под управлением списка выполняется по следующим правилам:

· поля записи могут разделяться запятой и пробелами;

· если между полями записи присутствует слеш (/), то ввод прекращается;

· каждый оператор ввода (если не задана соответствующая опция) выполняет ввод с начала новой записи;

· если число элементов списка ввода больше числа полей записи, то для ввода недостающих значений оператор ввода перейдет к следующей записи;

· для ввода значения логической переменной достаточно набрать T (в случае.TRUE.) или F (в случае.FALSE.).

В соответствии с перечисленными правилами, оператору ввода

read *,x,y,z

может соответствовать одна запись

1.1, 2.2, 3.3

 

 

Вместе с тем, конструкции ввода вида

read *,x read *,y read *,z

соответствует три записи

1.1

2.2

3.3

При создании, например, в первой строке большего числа полей ввода, чем это необходимо

1.1 4.4 5.5 6.6 7.7

2.2

3.3

поля с символами 4.4 5.5 6.6 7.7 будут в последнем примере ввода проигнорированы («лишние» данные прочитаны не будут). По результатам ввода будем соответственно иметь: x=1.1, y=2.2, z=3.3.

Т.е. для каждого оператора READ следует набирать числа с новой строки данных (даже если на предыдущей строке не все числа прочитаны).

Ошибки ввода возникают в следующих ситуациях:

· число элементов списка ввода больше числа доступных для чтения полей записи (то есть выполняется попытка чтения записи «конец файла» или вслед за этой записью);

· размещенные на читаемом поле символы не могут быть преобразованы в тип соответствующего элемента списка ввода.

Так, если, например, имеем оператор ввода

read *,k

то соответствующая ошибка ввода последует при задании, в частности,

k=2

правильный ввод:

Пусть необходимо определить вещественные переменные x,y,z, задав им при вводе значения 1.2, 3.4 и 5.6. Создадим файл inpdata.dat, например, на логическом диске D: в папке SAMPLE (заметим, что если файл расположен в том же месте, откуда выполняется запуск программы, то достаточно указать лишь имя файла и расширение (если есть), причем для файла исходных данных часто выбирают расширение dat) и занесем в него строку:

1.2 3.4 5.6

 

Программа ввода из файла:

real x,y,z! ниже всюду 10 - номер устройства ввода-вывода open(10,file=’d:\sample\inpdata.dat’) read(10,*)x,y,z! Ввод из файла inpdata.dat print *,’x=’,x,’ y=’,y,’ z=’,z! Вывод на экран close(10) end

Оператор OPEN создает в программе устройство ввода-вывода и соединяет его с файлом inpdata.dat. В операторе READ вместо первой звездочки используется номер устройства (файловая переменная), что обеспечивает ввод данных из файла, который с этим устройством связан. Номер устройства может быть константой или переменной целого типа. В последнем случае переменная должна предварительно получить нужное значение (любым допустимым в Фортране способом). Правила ввода из текстового файла и с клавиатуры совпадают.

Пример программы вывода данных в файл имеет вид:

real x,y,z! ниже всюду 11 - номер устройства ввода-вывода open(11,file=’d:\sample\results.dat’) x=1.1; y=2.2; z=3.3 write(11,*)’x=’,x,’ y=’,y,’ z=’,z! Вывод в файл results.dat close(11) end

Количество файлов, которое может быть открыто, определяется настройкой операционной системы. Обычно их оказывается достаточно. Ненужные ранее открытые файлы рекомендуется закрывать, т.е., отключать от программы. Это делается с помощью оператора CLOSE вида CLOSE(номер устройства), причем номер устройства должен соответствовать одному из открытых файлов. Если понадобится, файл можно открыть снова.




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


Дата добавления: 2014-01-07; Просмотров: 474; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.009 сек.