Запуск Fortran-овского приложения 10-20летней давности

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
MAGRAV
Новичок
Новичок
Аватара пользователя
 
Сообщения: 41
Зарегистрирован: 27.01.2011 (Чт) 11:57

Запуск Fortran-овского приложения 10-20летней давности

Сообщение MAGRAV » 27.01.2011 (Чт) 12:20

Господа помогите запустить Fortran-овское приложения 10-20летней давности посредством VB :!: :?:
Это досовская программа, которая вначале своей работы обращается в текстовый файл хранящий исходные данные. Закончив свою работу она создаёт выходной файл с результатами расчёта. Я пытался запустить этот файл Посредством функции Shell в VB6 и посредством функции Start() в VB NET. В обоих случаях эти подходы позволяли запускать на исполнение програмки созданные в VB, но с фортрановским файлом начинаются проблемы. Он запускается, но не выдаёт файл с результатами расчёта что свидетельствует о том что расчёт не производится. Он какбы открывается и тутже закрывается. В чём может быть причина? В чём неправильность подхода? Возможно ли вообще это осуществить в данном случае?! :roll:
Уходя с аэродрома прихвати деталь для дома.

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Re: Запуск Fortran-овского приложения 10-20летней давности

Сообщение alibek » 27.01.2011 (Чт) 12:28

А почему тут?
Предупреждение.
Lasciate ogni speranza, voi ch'entrate.

Antonariy
Повелитель Internet Explorer
Повелитель Internet Explorer
Аватара пользователя
 
Сообщения: 4824
Зарегистрирован: 28.04.2005 (Чт) 14:33
Откуда: Мимо проходил

Re: Запуск Fortran-овского приложения 10-20летней давности

Сообщение Antonariy » 27.01.2011 (Чт) 12:31

Это же DOS-программа. Ее нужно запустить в консоли и посмотреть, что ей не нравится.
Лучший способ понять что-то самому — объяснить это другому.

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Re: Запуск Fortran-овского приложения 10-20летней давности

Сообщение Хакер » 27.01.2011 (Чт) 12:35

MAGRAV писал(а): запускается, но не выдаёт файл с результатами расчёта что свидетельствует о том что расчёт не производится. Он какбы открывается и тутже закрывается. В чём может быть причина?


В Current Working Directory?
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

Денис
Доктор VB наук
Доктор VB наук
Аватара пользователя
 
Сообщения: 2734
Зарегистрирован: 07.11.2006 (Вт) 13:55
Откуда: Ейск, Краснодарский край

Re: Запуск Fortran-овского приложения 10-20летней давности

Сообщение Денис » 27.01.2011 (Чт) 14:34

А можно код увидеть?
Программирование — богоизбранная дисциплина! Если бог и есть, то вселенную он скомпилировал, не иначе.

MAGRAV
Новичок
Новичок
Аватара пользователя
 
Сообщения: 41
Зарегистрирован: 27.01.2011 (Чт) 11:57

Re: Запуск Fortran-овского приложения 10-20летней давности

Сообщение MAGRAV » 28.01.2011 (Пт) 7:36

В VB6 в общем виде мои действия выглядят так:
Dim hProcess As Long
Dim AppToRun As String 'Адрес исполняемого файла
'Dim mode As VbAppWinStyle 'Характеризует состояние исполняемого приложения
AppToRun = "D:\Работа\Прочее\Профилирование\Rabota\Программа профилирования лопаток\S03244.EXE"
hProcess = Shell(AppToRun, 1) 'Конструкция для запуска приложения

Фортрановский файл запускается, но потом пишет что:
run-time error F6501: READ<in.dat>
-end of file encountered
in.dat - это файл исходных данных.

В VB NET делал по разному основываясь на "рецептах" найденных на этом и других форумах. Вот один из них:
Dim myProcess As Process = _
Process.Start("D:\Работа\Прочее\Профилирование\Rabota\Программа профилирования лопаток\S03244.EXE")
В случае данного приложения я неизменно получаю ответ от среды что:
System.ComponentModel.Win32Exception не обработано
ErrorCode=-2147467259
Message="Параметр задан неверно"
NativeErrorCode=87
Source="System"

В случае с другими приложениями эти подходы были работоспособны.
Думали попробовать сделать это на Си, но боюсь что получу тотже результат. Видимо есть какаято особенность. В фортрановских код лезть конечно не хотелось бы. Его раздобыть можно, но фортрана я не знаю да и времени на это нет.
Уходя с аэродрома прихвати деталь для дома.

iGrok
Артефакт VBStreets
Артефакт VBStreets
 
Сообщения: 4272
Зарегистрирован: 10.05.2007 (Чт) 16:11
Откуда: Сетевое сознание

Re: Запуск Fortran-овского приложения 10-20летней давности

Сообщение iGrok » 28.01.2011 (Пт) 8:31

MAGRAV писал(а):Фортрановский файл запускается, но потом пишет что:
run-time error F6501: READ<in.dat>
-end of file encountered
in.dat - это файл исходных данных.

Ну так написали же, в чём дело.
Хакер писал(а):В Current Working Directory?


Нужно сменить "текущую папку" на ту, в которой находится фортрановское приложение. Как это сделать - в поиск по форуму или гугль.
label:
cli
jmp label

MAGRAV
Новичок
Новичок
Аватара пользователя
 
Сообщения: 41
Зарегистрирован: 27.01.2011 (Чт) 11:57

Re: Запуск Fortran-овского приложения 10-20летней давности

Сообщение MAGRAV » 28.01.2011 (Пт) 14:04

Моё приложение на VB находится в одной папке с Fortran-овской программой. Файл исходных данных in.dat, который необходим для Fortran-овской программы, находится тамже.
Уходя с аэродрома прихвати деталь для дома.

Денис
Доктор VB наук
Доктор VB наук
Аватара пользователя
 
Сообщения: 2734
Зарегистрирован: 07.11.2006 (Вт) 13:55
Откуда: Ейск, Краснодарский край

Re: Запуск Fortran-овского приложения 10-20летней давности

Сообщение Денис » 28.01.2011 (Пт) 14:56

MAGRAV писал(а):Моё приложение на VB находится в одной папке с Fortran-овской программой. Файл исходных данных in.dat, который необходим для Fortran-овской программы, находится тамже.

При этом, ты запускаешь программу прямо из бейсика?? (по клавише F5)?
А ведь при этом, рабочая папка устанавливается папкой, где установлен бейсик.
Нужно проверить, запускается ли стороннее приложение, если запускать скомпилированную программу на бейсике?
Программирование — богоизбранная дисциплина! Если бог и есть, то вселенную он скомпилировал, не иначе.

MAGRAV
Новичок
Новичок
Аватара пользователя
 
Сообщения: 41
Зарегистрирован: 27.01.2011 (Чт) 11:57

Re: Запуск Fortran-овского приложения 10-20летней давности

Сообщение MAGRAV » 31.01.2011 (Пн) 6:32

Благодарю вас Денис за ценный совет! Вы попали прямо в яблочко! :D Просто я изначально делал упор только лишь на VBA программу. Тобиж платформой был Excel. Мне просто так удобнее. Даже както и не придал особого значения тому, что надобы скомпилировать прогу в нужную папку именно на VB. Программа с VBA в Excel оказывается вовсе не замена в подобных случаях. :lol:

Далее другой вопрос.... :roll: Запущенная программа просит 2 раза ввести двойку и нажимать "ентер". Этого я точно не знаю.
Подскажите ктонибудь направление как это воплотить программно?! :?
Уходя с аэродрома прихвати деталь для дома.

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Re: Запуск Fortran-овского приложения 10-20летней давности

Сообщение Хакер » 31.01.2011 (Пн) 7:07

MAGRAV писал(а):Подскажите ктонибудь направление как это воплотить программно?! :?

Если ты и дальше будешь писать так же безграмотно, ты будешь наказан.

При создании процесса с помощью CreateProcess нужно в структуре, описывающей параметры создаваемого процессы, заменить хендл stdin-а хендлом второго конца своего пайпа и писать "2" LF "2" LF в этот пайп.
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.


Вернуться в Visual Basic 1–6

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 85

    TopList