Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 02.05.2013, 13:15   #1
Freemandes
 
Регистрация: 02.05.2013
Сообщений: 8
По умолчанию Подключение файлов в Fortran

Имею в своём распоряжении Fortran90 из старинной Microsoft Developer Studio.

Ну и в качестве обучения пытаюсь считать из текстового файла пару параметров, однако не выходит ничего, не смотря на элементарность операции.

Код:
program p1
real x, y, z
open(1, file='C:\Users\Freeman\Desktop\tex', status='old')
read(1,*) x, y, z
end

Текстовый документ находится на рабочем столе без приписки расширения, в нем записано "3 3 3". При запуске консольного проекта с этим кодом в самой консоли пишет "file not found". Причем если убрать параметр status, то программа создает пустой файл с названием tex.

В чем дело?
Freemandes вне форума Ответить с цитированием
Старый 02.05.2013, 13:32   #2
GreenWizard
мальчик-помогай =)
Форумчанин
 
Регистрация: 16.09.2010
Сообщений: 522
По умолчанию

5 минут поиска и вуаля:
........маленькие идентификаторы для ввода-вывода в Фортране зарезервированы (вроде бы до 10), поэтому 1 и 2 лучше не использовать, а написать, к примеру, OPEN(12,FILE='..........')

попробуй, может и правда затираешь системный поток IO
GreenWizard вне форума Ответить с цитированием
Старый 02.05.2013, 13:44   #3
s-andriano
Старожил
 
Аватар для s-andriano
 
Регистрация: 08.04.2012
Сообщений: 3,229
По умолчанию

В старых версиях Фортрана, действительно, некоторым номерам приписывались конкретные устройства. Правда, если мне не изменяет память, это были устройства 5-7. И уже в компиляторе Фортрана от 2000 года с открытием фавйлов по номерам устройств 1-3 проблем не наблюдается.
Хотя в целом, для надежности, использовать номера устройств вне первого десятка, вероятно, оправданно.
Цитата:
Причем если убрать параметр status, то программа создает пустой файл с названием tex.

В чем дело?
Вы сами себе противоречите: если Ваша программа создает пустой файл, значит, раньше там никакого файла не было, и диагностика "file not found" вполне соответствует реальности.

PS. При открытии файла можно задать и другие квалификаторы, например, error. Бывает полезно как для диагностики, так и в случае, когда неизвестно, существует ли запрашиваемый файл.
s-andriano вне форума Ответить с цитированием
Старый 02.05.2013, 13:45   #4
Freemandes
 
Регистрация: 02.05.2013
Сообщений: 8
По умолчанию

Попробовал, но не помогло. Самое поразительное, что у меня на руках есть не моя программа, в которой тоже самое работает, и надо заметить, что там идентификатор начинается с 9, но повторю, не помогло все равно.
Freemandes вне форума Ответить с цитированием
Старый 02.05.2013, 13:52   #5
Freemandes
 
Регистрация: 02.05.2013
Сообщений: 8
По умолчанию

Цитата:
Вы сами себе противоречите: если Ваша программа создает пустой файл, значит, раньше там никакого файла не было, и диагностика "file not found" вполне соответствует реальности.
Не противоречу. Это лишь доказывает то, что программа не находит файл, хотя файл есть. Она в аккурат создает пустой файл с таким же названием. Причем если в коде я указываю расширение txt и добавляю его к текстовому файлу на столе, то программа создает пустой файл без явного расширения, т.е. название файла пишется без txt, но файл является текстовым. Если я не указываю расширение в коде и не пишу расширение текстовому файлу, то программа создает пустой файл без расширения вообще. При этом пишет не про то, что файл не найден, а "end of file encountered". Очевидно, что это связано с тем, что программа пытается создать файл, который уже есть, но одноименные файлы запрещены.

Попробовал это на двух машинах. Также пробовал в новом Фортране от Интела, тоже не работает, но вместо явной ошибки в консоли пишет какую-то ерунду.

Последний раз редактировалось Freemandes; 02.05.2013 в 14:00.
Freemandes вне форума Ответить с цитированием
Старый 02.05.2013, 14:02   #6
GreenWizard
мальчик-помогай =)
Форумчанин
 
Регистрация: 16.09.2010
Сообщений: 522
По умолчанию

включите отображение расширений.... вообще, у вашего "не текстового" файла иконка "чистый лист" или же "текстовый файл"?
создали "tex", а получили "tex.txt" (скрыто расширение)
создали "tex.txt", а получили "tex.txt.txt" (скрыто второе расширение)
GreenWizard вне форума Ответить с цитированием
Старый 02.05.2013, 14:07   #7
Freemandes
 
Регистрация: 02.05.2013
Сообщений: 8
По умолчанию

Да, похоже расширения конфликтовали. Фортран не хотел открывать текстовый файл без явного указания расширения. После включения отображения расширений всё заработало.

Спасибо!
Freemandes вне форума Ответить с цитированием
Старый 02.05.2013, 16:36   #8
s-andriano
Старожил
 
Аватар для s-andriano
 
Регистрация: 08.04.2012
Сообщений: 3,229
По умолчанию

Цитата:
Сообщение от Freemandes Посмотреть сообщение
Да, похоже расширения конфликтовали. Фортран не хотел открывать текстовый файл без явного указания расширения. После включения отображения расширений всё заработало.

Спасибо!
За Фортраном такого сроду не водилось.
И по поводу:
Цитата:
Она в аккурат создает пустой файл с таким же названием.
- это невозможно.
В общем, и с ОС, и с Фортраном - все в порядке.
Проблема лишь в том, что Вы, не видя глазами адекватного отображения имен файлов, сами что-то напутали.
Потому как "После включения отображения" ни в самой системе, ни тем более в Фортране ничего не изменилось. Изменилось только то, как Проводник показывает Вам файлы.

PS. На мой взгляд, Проводник Windows совершенно не подходит для использования программистом.
Поэтому найдите какую-нибудь альтернативу как ему, так и Блокноту. Иначе постоянно на пустом месте будут возникать проблемы.
s-andriano вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Подключение файлов. Trololo1112 Общие вопросы C/C++ 1 27.11.2012 20:17
Создание FORTRAN dll (Compaq visual fortran) для BorlandDelphi Melfa Помощь студентам 25 13.04.2012 23:49
fortran, подключение модуля capta1n Помощь студентам 2 13.02.2011 17:18