Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / FoxPro, Visual FoxPro Новый топик    Ответить
 Передача пареметра в программу  [new]
w3d
Member

Откуда: Сургут
Сообщений: 681
Как можно передать в программу параметр (имя файла).
Т.е. чтобы запускать "prog.exe filename" ?
31 янв 08, 09:08    [5224681]     Ответить | Цитировать Сообщить модератору
 Re: Передача пареметра в программу  [new]
Galyamov Rinat
Member

Откуда:
Сообщений: 658


"w3d" <nospam@sql.ru> сообщил/сообщила в новостях следующее:
news:5224681@sql.ru...
> Автор: w3d
> Как можно передать в программу параметр (имя файла).
> Т.е. чтобы запускать "prog.exe filename" ?


Так и передаешь. В главной программе пишешь lparam lcNameFile и после
смотришь что получил на входе.


Posted via ActualForum NNTP Server 1.4

31 янв 08, 09:10    [5224686]     Ответить | Цитировать Сообщить модератору
 Re: Передача пареметра в программу  [new]
w3d
Member

Откуда: Сургут
Сообщений: 681
Тогда получается, что при отсутствии имени файла, lcNameFile = .F. , а если имя файла есть - то lcNameFile строка.
Как лучше сделать проверку на присутствие/отсутствие параметра? И соответственно выполнять разный код.
31 янв 08, 10:34    [5225235]     Ответить | Цитировать Сообщить модератору
 Re: Передача пареметра в программу  [new]
Galyamov Rinat
Member

Откуда:
Сообщений: 658


"w3d" <nospam@sql.ru> сообщил/сообщила в новостях следующее:
news:5225235@sql.ru...
> Автор: w3d
> Тогда получается, что при отсутствии имени файла, lcNameFile = .F. ,
> а если имя файла есть - то lcNameFile строка.
> Как лучше сделать проверку на присутствие/отсутствие параметра? И
> соответственно выполнять разный код.


?empty(lcNameFile)
?vartype(lcNameFile)
?type('lcNameFile')


Posted via ActualForum NNTP Server 1.4

31 янв 08, 10:40    [5225282]     Ответить | Цитировать Сообщить модератору
 Re: Передача пареметра в программу  [new]
Sergey Sizov.
Guest
?Parameters()
?PCount()
31 янв 08, 10:43    [5225320]     Ответить | Цитировать Сообщить модератору
 Re: Передача пареметра в программу  [new]
w3d
Member

Откуда: Сургут
Сообщений: 681
Спасибо!
31 янв 08, 11:04    [5225554]     Ответить | Цитировать Сообщить модератору
 Re: Передача пареметра в программу  [new]
Рома Б.
Member

Откуда: Нижний Новгород
Сообщений: 72
Маленькое замечание:

Если до вызова PARAMETERS () стоит вызов какой-либо функции, процедуры, то PARAMETERS () возвратит некорректное значение. Производители рекомендуют пользоваться PCOUNT () - там всё чисто.
31 янв 08, 11:18    [5225692]     Ответить | Цитировать Сообщить модератору
 Re: Передача пареметра в программу  [new]
ВладимирМ
Member

Откуда: г. Москва
Сообщений: 7864
Передача параметров в EXE

Для справки:

Parameters() возвращает количество переданных параметров в последней вызванной процедуре или функции. И это не обязательно будет текущая процедура. Просто последняя по времени.

Pcount() возвращает количество параметров переданных именно в текущую процедуру или функцию.
31 янв 08, 11:40    [5225905]     Ответить | Цитировать Сообщить модератору
 Re: Передача пареметра в программу  [new]
-=LeonId=-
Member

Откуда:
Сообщений: 5
А почему не получается аналогично передать параметр в FXP?
К примеру пишу 1.PRG:
LPARAMETERS lcPath
? PCOUNT()
? lcPath
компилирую и запускаю: "1.FXP path"
выводит:
0
.F.
Спасибо.
2 сен 08, 12:48    [6136572]     Ответить | Цитировать Сообщить модератору
 Re: Передача пареметра в программу  [new]
Sergey Sizov.
Guest
-=LeonId=-

компилирую и запускаю: "1.FXP path"

И что это за запуск такой? Почему не
do 1 with path
?
2 сен 08, 12:50    [6136591]     Ответить | Цитировать Сообщить модератору
 Re: Передача пареметра в программу  [new]
-=LeonId=-
Member

Откуда:
Сообщений: 5
А если я намерен потом вызывать FXP из JS скрипта.
2 сен 08, 12:53    [6136629]     Ответить | Цитировать Сообщить модератору
 Re: Передача пареметра в программу  [new]
Sergey Sizov.
Guest
-=LeonId=-
А если я намерен потом вызывать FXP из JS скрипта.

Каким образом? И его там будет не фокс исполнять?
2 сен 08, 12:56    [6136646]     Ответить | Цитировать Сообщить модератору
 Re: Передача пареметра в программу  [new]
-=LeonId=-
Member

Откуда:
Сообщений: 5
Опишу подробнее.
Идея в том, что JS скрипт вызывает скомпилированный FXP файл. С этим проблем нет. В коде скрипта выполняется строка, аналогичная как и при вызове FXP и командной строки: "1.FXP". Проблема в том, что не получается передать параметр из командной строки (например "1.FXP path"). При выводе видно, что параметров 0.
2 сен 08, 13:13    [6136755]     Ответить | Цитировать Сообщить модератору
 Re: Передача пареметра в программу  [new]
Sergey Sizov.
Guest
-=LeonId=-
Опишу подробнее.
Идея в том, что JS скрипт вызывает скомпилированный FXP файл.

Вот это как раз очень интересует. КАК? Строку вызова в студию.
С этим проблем нет. В коде скрипта выполняется строка, аналогичная как и при вызове FXP и командной строки: "1.FXP".

И вот это тоже очень интересно. КАК? О какой командной строке идет речь?
Или Вам положена Нобелевская премия или что-то не так.
2 сен 08, 13:18    [6136783]     Ответить | Цитировать Сообщить модератору
 Re: Передача пареметра в программу  [new]
-=LeonId=-
Member

Откуда:
Сообщений: 5

Вот это как раз очень интересует. КАК? Строку вызова в студию.

1.FXP
Вот и вся строка, если конечно я в директории, где находится 1.FXP. Или же полностью "E:\Script\1.FXP".

И вот это тоже очень интересно. КАК? О какой командной строке идет речь?
Или Вам положена Нобелевская премия или что-то не так.

Речь идет о стандартной командной строке в винде. Если посмотреть в свойства FXP файла, то видно, что за ним закреплено приложение MS VFP. Т.е. винда понимает, с пом. чего его выполнять. При попытке выполнить FXP программу загружается среда FoxPro и выполняет программу. А чего тут такого космического???
2 сен 08, 13:34    [6136882]     Ответить | Цитировать Сообщить модератору
 Re: Передача пареметра в программу  [new]
Sergey Sizov.
Guest
-=LeonId=-

Вот это как раз очень интересует. КАК? Строку вызова в студию.

1.FXP
Вот и вся строка, если конечно я в директории, где находится 1.FXP. Или же полностью "E:\Script\1.FXP".

И вот это тоже очень интересно. КАК? О какой командной строке идет речь?
Или Вам положена Нобелевская премия или что-то не так.

Речь идет о стандартной командной строке в винде. Если посмотреть в свойства FXP файла, то видно, что за ним закреплено приложение MS VFP. Т.е. винда понимает, с пом. чего его выполнять. При попытке выполнить FXP программу загружается среда FoxPro и выполняет программу. А чего тут такого космического???

Ну, вот все и прояснилось. Да, действительно, премией тут не пахнет.
Закрепленность расширения файла за приложением не гарантирует реализации полного функционала вызова такого же файла в самом приложении. То есть такой вызов на выполнение производится без передачи параметров. Такой вызов для фокса не относится к стандартным.
Варианты решениея:
1. Заменить в реестре строку запуска фокса =для файла такого типа, добавив туда параметры.
2. Нарисовать на фоксе ехе-файл, получающий параметры и запускающий с ними скрипты.
2 сен 08, 13:57    [6137047]     Ответить | Цитировать Сообщить модератору
 Re: Передача пареметра в программу  [new]
Dima T
Member

Откуда:
Сообщений: 15271
-=LeonId=-
При попытке выполнить FXP программу загружается среда FoxPro и выполняет программу. А чего тут такого космического???

Мдя...

Создай проект, вставь туда свой 1.FXP, точнее 1.PRG, откомпилируй в EXE и EXE запускай c параметрами.
2 сен 08, 14:08    [6137112]     Ответить | Цитировать Сообщить модератору
 Re: Передача пареметра в программу  [new]
-=LeonId=-
Member

Откуда:
Сообщений: 5
Sergey Sizov.

Варианты решениея:
1. Заменить в реестре строку запуска фокса =для файла такого типа, добавив туда параметры.
2. Нарисовать на фоксе ехе-файл, получающий параметры и запускающий с ними скрипты.

Ок. Спасибо.
2 сен 08, 14:10    [6137131]     Ответить | Цитировать Сообщить модератору
Все форумы / FoxPro, Visual FoxPro Ответить