for flooders
:: Главная :: Решения :: Статьи :: Сайт М. Дроздова :: Файловый архив :: Книга по VFP 9 :: Русский Help Online :: OFF-LINE Форум
   Лисоводы   всех   стран,  объединяйтесь !!!  

Список Форумов  :: Visual Foxpro, Foxpro for DOS
  

Как возвратить параметр из программы VFP?
ZenTigra
Автор

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

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

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

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

Re: Как возвратить параметр из программы VFP?
akvvohinc

Сообщений: 3186
Откуда: Москва
Дата: 20.01.21 10:49:29
См. Help по команде DO <program>.



Исправлено: akvvohinc, 20.01.21 10:49
Ratings: 0 negative/0 positive

Re: Как возвратить параметр из программы VFP?
Simple777

Сообщений: 29961
Дата: 20.01.21 11:31:40
Если речь про возврат параметра (как это сформулировал ТС), да. А если речь идёт о внешнем автономном приложении? Сможет ли закончившее работу по команде QUIT приложение вернуть значение параметров?
Ratings: 0 negative/0 positive

Re: Как возвратить параметр из программы VFP?
ZenTigra
Автор

Сообщений: 476
Дата: 20.01.21 11:41:20
Да, это внешний файл скомпилированный в exe
Ratings: 0 negative/0 positive

Re: Как возвратить параметр из программы VFP?
akvvohinc

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

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



Исправлено: akvvohinc, 20.01.21 12:14
Ratings: 0 negative/0 positive

Re: Как возвратить параметр из программы VFP?
Sawradym

Сообщений: 2080
Откуда: Винница
Дата: 20.01.21 12:38:39
ZenTigra
Да, это внешний файл скомпилированный в exe

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

Re: Как возвратить параметр из программы VFP?
akvvohinc

Сообщений: 3186
Откуда: Москва
Дата: 20.01.21 12:45:27
Цитата:
А почему не app?
Никакой принципиальной разницы между app и exe для цели передачи/возврата параметра нет.
Ratings: 0 negative/0 positive

Re: Как возвратить параметр из программы VFP?
pasha_usue

Сообщений: 3486
Откуда: Е-бург
Дата: 20.01.21 13:58:18
DECLARE ExitProcess in Win32API INTEGER ExitCode

fox.wikis.com



Исправлено: pasha_usue, 20.01.21 14:00
Ratings: 0 negative/0 positive

Re: Как возвратить параметр из программы VFP?
Simple777

Сообщений: 29961
Дата: 20.01.21 14:50:47
Код возврата - это понятно.

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

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



Исправлено: Simple777, 20.01.21 14:58
Ratings: 0 negative/0 positive

Re: Как возвратить параметр из программы VFP?
akvvohinc

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

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

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

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

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



Исправлено: akvvohinc, 20.01.21 15:17
Ratings: 0 negative/0 positive

Re: Как возвратить параметр из программы VFP?
Simple777

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

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

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

Re: Как возвратить параметр из программы VFP?
akvvohinc

Сообщений: 3186
Откуда: Москва
Дата: 20.01.21 16:19:57
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

Сообщений: 2080
Откуда: Винница
Дата: 20.01.21 16:43:23
А как буду жить два Read Events в одной фокс-сессии?
Ratings: 0 negative/0 positive

Re: Как возвратить параметр из программы VFP?
akvvohinc

Сообщений: 3186
Откуда: Москва
Дата: 20.01.21 17:06:28
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

Сообщений: 1761
Дата: 20.01.21 17:26:43
А зачем нужны два Read Events в одной фокс-сессии?
Ratings: 0 negative/0 positive

Re: Как возвратить параметр из программы VFP?
akvvohinc

Сообщений: 3186
Откуда: Москва
Дата: 20.01.21 18:38:49
lulgu
А зачем нужны два Read Events в одной фокс-сессии?

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

Re: Как возвратить параметр из программы VFP?
lulgu

Сообщений: 1761
Дата: 20.01.21 18:59:46
Получается, они нужны потому что были.

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



Исправлено: lulgu, 20.01.21 19:07
Ratings: 0 negative/0 positive

Re: Как возвратить параметр из программы VFP?
akvvohinc

Сообщений: 3186
Откуда: Москва
Дата: 20.01.21 19:12:52
lulgu
Получается, они нужны потому что были.

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

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

Re: Как возвратить параметр из программы VFP?
akvvohinc

Сообщений: 3186
Откуда: Москва
Дата: 20.01.21 19:17:26
lulgu
Насчет корректировок - понятно, для старперов их старые коды почти что святое.

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

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

Re: Как возвратить параметр из программы VFP?
Simple777

Сообщений: 29961
Дата: 20.01.21 19:28:25
akvvohinc
Может, там и команды такой нет.

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

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



Исправлено: Simple777, 20.01.21 19:28
Ratings: 0 negative/0 positive



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

On-line: 10 (Гостей: 10)


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