:: Visual Foxpro, Foxpro for DOS
Как возвратить параметр из программы VFP?
ZenTigra
Автор

Сообщений: 514
Дата регистрации: 03.12.2004
Нужно чтобы программа написанная на VFP (v.9) запустила другую программу, также написанную на VFoxPro, и ждала окончания ее работы.
Вторая программа должна возвратить некий строковый параметр вызывающей программе (отчитаться о выполненной работе).

Внедрить выполняемый код в первую программу не предлагать...

Возможно ли такое? Или придется мне городить передачу параметров через файл.

PS.Простите за такой ламерский вопрос, никогда такого не делал, а прошерстив форум, ничего не нашел...
Ratings: 0 negative/0 positive
Re: Как возвратить параметр из программы VFP?
akvvohinc

Сообщений: 4212
Откуда: Москва
Дата регистрации: 11.11.2008
См. Help по команде DO <program>.



Исправлено 1 раз(а). Последнее : akvvohinc, 20.01.21 10:49
Ratings: 0 negative/0 positive
Re: Как возвратить параметр из программы VFP?
Simple777

Сообщений: 33855
Дата регистрации: 05.11.2006
Если речь про возврат параметра (как это сформулировал ТС), да. А если речь идёт о внешнем автономном приложении? Сможет ли закончившее работу по команде QUIT приложение вернуть значение параметров?
Ratings: 0 negative/0 positive
Re: Как возвратить параметр из программы VFP?
ZenTigra
Автор

Сообщений: 514
Дата регистрации: 03.12.2004
Да, это внешний файл скомпилированный в exe
Ratings: 0 negative/0 positive
Re: Как возвратить параметр из программы VFP?
akvvohinc

Сообщений: 4212
Откуда: Москва
Дата регистрации: 11.11.2008
Simple777
Сможет ли закончившее работу по команде QUIT приложение вернуть значение параметров?
Какой же может быть QUIT?
QUIT завершает не программу - это выход из Фокса в ОС.
Вызываемая программа пусть завершается с помощью RETURN.
(если это важно, то можно сделать разный выход в зависимости от того, как была запущена программа - напрямую или вызовом из другой Фокс-программы)

ZenTigra
Да, это внешний файл скомпилированный в exe
См. Help по команде DO <program>.



Исправлено 1 раз(а). Последнее : akvvohinc, 20.01.21 12:14
Ratings: 0 negative/0 positive
Re: Как возвратить параметр из программы VFP?
Sawradym

Сообщений: 2244
Откуда: Винница
Дата регистрации: 15.05.2007
ZenTigra
Да, это внешний файл скомпилированный в exe

А почему не app?
Эта программа самодостаточна сама по себе или имеет смысл только в наборе с вызывающей?
Ratings: 0 negative/0 positive
Re: Как возвратить параметр из программы VFP?
akvvohinc

Сообщений: 4212
Откуда: Москва
Дата регистрации: 11.11.2008
Цитата:
А почему не app?
Никакой принципиальной разницы между app и exe для цели передачи/возврата параметра нет.
Ratings: 0 negative/0 positive
Re: Как возвратить параметр из программы VFP?
pasha_usue

Сообщений: 3649
Откуда: Е-бург
Дата регистрации: 06.10.2006
DECLARE ExitProcess in Win32API INTEGER ExitCode

fox.wikis.com



Исправлено 1 раз(а). Последнее : pasha_usue, 20.01.21 14:00
Ratings: 0 negative/0 positive
Re: Как возвратить параметр из программы VFP?
Simple777

Сообщений: 33855
Дата регистрации: 05.11.2006
Код возврата - это понятно.

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

И есть уточняющий вопрос. Если имеется автономное exe-приложение (способное принимать параметры в строке запуска) , написанное на VFP, разве оно может завершиться как-то иначе (при штатной работе) по сравнению с тем, что происходит при завершении по команде QUIT?



Исправлено 7 раз(а). Последнее : Simple777, 20.01.21 14:58
Ratings: 0 negative/0 positive
Re: Как возвратить параметр из программы VFP?
akvvohinc

Сообщений: 4212
Откуда: Москва
Дата регистрации: 11.11.2008
Цитата:
И есть уточняющий вопрос. Если имеется автономное exe-приложение (способное принимать параметры в строке запуска) , написанное на VFP, разве оно может завершиться как-то иначе (при штатной работе) по сравнению с тем, что происходит при завершении по команде QUIT?

Программа отлично завершится и без QUIT.

QUIT завершит сеанс VFP, то есть завершится вся цепочка программ Фокса и управление перейдет ОС (а это не то, что нужно ТС).

RETURN завершит текущую программу и управление передастся в вызывающую прогу, которая и обработает параметры.

var = 1
DO prog2.exe WITH parm1,var,parm3
? var && выведет значение, установленное 2-у параметру в программе prog2.



Исправлено 2 раз(а). Последнее : akvvohinc, 20.01.21 15:17
Ratings: 0 negative/0 positive
Re: Как возвратить параметр из программы VFP?
Simple777

Сообщений: 33855
Дата регистрации: 05.11.2006
akvvohinc
Программа отлично завершится и без QUIT.
QUIT завершит сеанс VFP, то есть завершится вся цепочка программ Фокса и управление перейдет ОС (а это не то, что нужно ТС).

Хотелось бы уточнить такой момент. Если запускается автономное exe-приложение (написанное на VFP), то разве такое приложение может как-то повлиять на вызвавшую программу? Разве автономное приложение - это не отдельный, независимый процесс Windows?

И еще вопрос. Если exe-приложение полностью "не зачищает себя", то разве такое завершение можно считать корректным, не оставляющим следов после себя?
Ratings: 0 negative/0 positive
Re: Как возвратить параметр из программы VFP?
akvvohinc

Сообщений: 4212
Откуда: Москва
Дата регистрации: 11.11.2008
Simple777
Если запускается автономное exe-приложение (написанное на VFP), то разве такое приложение может как-то повлиять на вызвавшую программу?

Если программа (EXE), написанная на Фоксе, будет вызвана из другой Фокс-программы командой DO, то после выполнения QUIT в вызываемой программе будут завершены обе.

Почему так?
"Теорию" вопроса не изучал, но Help говорит, что Quit завершает именно Фокс-сессию, а не Фокс-программу, а значит, вызов одной Фокс-программы (пусть даже в виде EXE) из другой - это одна и та же Фокс-сессия.

В этом можно убедиться и просто вызывая Фокс-EXE из командного окна - RETURN вернет тебя в Command-окно, а QUIT выкинет из Фокса вообще.

Simple777
И еще вопрос. Если exe-приложение полностью "не зачищает себя", то разве такое завершение можно считать корректным, не оставляющим следов после себя?

Не знаю, что ты называешь "зачищает себя".
Только от тебя зависит сделать так, чтобы то, что Фокс выполняет по команде Quit автоматически (не считая собственно завершения Фокс-сессии), выполнялось и при завершении проги по RETURN.
Ratings: 0 negative/0 positive
Re: Как возвратить параметр из программы VFP?
Sawradym

Сообщений: 2244
Откуда: Винница
Дата регистрации: 15.05.2007
А как буду жить два Read Events в одной фокс-сессии?
Ratings: 0 negative/0 positive
Re: Как возвратить параметр из программы VFP?
akvvohinc

Сообщений: 4212
Откуда: Москва
Дата регистрации: 11.11.2008
Sawradym
А как буду жить два Read Events в одной фокс-сессии?

Думаю так, как написано в Help:
Note that only one READ EVENTS can be active at a time. If a READ EVENTS is in effect, any subsequent READ EVENTS commands have no effect.
Ratings: 0 negative/0 positive
Re: Как возвратить параметр из программы VFP?
lulgu

Сообщений: 1838
Дата регистрации: 30.11.2016
А зачем нужны два Read Events в одной фокс-сессии?
Ratings: 0 negative/0 positive
Re: Как возвратить параметр из программы VFP?
akvvohinc

Сообщений: 4212
Откуда: Москва
Дата регистрации: 11.11.2008
lulgu
А зачем нужны два Read Events в одной фокс-сессии?

Тут дело в другом - были две независимые проги, каждая, допустим, со своим READ EVENTS, а теперь появилось желание вызывать из одной другую с минимальными корректировками.
(а лучше вообще без них )
Ratings: 0 negative/0 positive
Re: Как возвратить параметр из программы VFP?
lulgu

Сообщений: 1838
Дата регистрации: 30.11.2016
Получается, они нужны потому что были.

ЗЫ. Насчет корректировок - понятно, для старперов их старые коды почти что святое.



Исправлено 1 раз(а). Последнее : lulgu, 20.01.21 19:07
Ratings: 0 negative/0 positive
Re: Как возвратить параметр из программы VFP?
akvvohinc

Сообщений: 4212
Откуда: Москва
Дата регистрации: 11.11.2008
lulgu
Получается, они нужны потому что были.

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

Но если вызов проги через DO по каким-то причинам не устраивает или невозможен - пользуемся другими способами решения.
Ratings: 0 negative/0 positive
Re: Как возвратить параметр из программы VFP?
akvvohinc

Сообщений: 4212
Откуда: Москва
Дата регистрации: 11.11.2008
lulgu
Насчет корректировок - понятно, для старперов их старые коды почти что святое.

Сделать READ EVENTS условным - такое пережить можно.

А вообще, никто пока не знает, что за прогу предстоит вызывать ТС. Может, там и команды такой нет.
Ratings: 0 negative/0 positive
Re: Как возвратить параметр из программы VFP?
Simple777

Сообщений: 33855
Дата регистрации: 05.11.2006
akvvohinc
Может, там и команды такой нет.

Скорее всего, что нет там READ EVENTS

Но "вызывает интерес ввобще такой разрез" - могут ли быть еще какие-то влияния вызванного приложения на исходную программу (кроме команды QUIT, закрывающей FOX-сессию)? В том смысле, что негативные (те, которые не были ожидаемы) влияния возможны в принципе?



Исправлено 1 раз(а). Последнее : Simple777, 20.01.21 19:28
Ratings: 0 negative/0 positive


Извините, только зарегистрированные пользователи могут оставлять сообщения в этом форуме.

On-line: 20 lili  (Гостей: 19)

© 2000-2024 Fox Club 
Яндекс.Метрика