powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Передача параметров в .exe
22 сообщений из 22, страница 1 из 1
Передача параметров в .exe
    #33759684
Фотография Alex_Ustinov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Как правильно передать параметры в .exe файл?
на
Код: plaintext
run.exe 'par1' 'par2'
выдается ошибка "необходимо задать дополнительные параметры".
Может синтаксис неправильный? (Через слэш??)
Один нюанс: par1 - фраза с пробелами.
При передаче параметра
Код: plaintext
run.exe /n 'компания "ВИД"'

в exe-шник приходит "'компания",""ВИД"'"
НЕ знаю, может вопрос ближе к MSDOS...
Может, кто-нибудь уже сталкивался с такой арифметикой? Чем заменить пробелы?
...
Рейтинг: 0 / 0
Передача параметров в .exe
    #33759717
AleksMed
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
run.exe /n "компания ""ВИД"""
...
Рейтинг: 0 / 0
Передача параметров в .exe
    #33759809
Фотография Alex_Ustinov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
не катит
Код: plaintext
run.exe /n "компания ""ВИД"""
на входе "компания ","ВИД"
...
Рейтинг: 0 / 0
Передача параметров в .exe
    #33760021
Фотография FM32YO aka KID
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
START.PRG

PARAMETERS Par1, Par2, Pa3

а после компиляции:

Start.exe 'Параметр 1', 'Параметр ', 'Параметр 3'

вроде так - навскидку
...
Рейтинг: 0 / 0
Передача параметров в .exe
    #33760136
Фотография Alex_Ustinov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да, так. Только есть в одном параметре фраза с кавычками, вот беда.
Никак не проходит параметр. Если без кавычек, то все просто
Код: plaintext
run /n run.exe "Папа купил курево"
а если
Код: plaintext
run /n run.exe "Папа купил пачку "Беломорканал""
?
...
Рейтинг: 0 / 0
Передача параметров в .exe
    #33760180
Фотография Владимир СА
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alex_UstinovДа, так. Только есть в одном параметре фраза с кавычками, вот беда.
Никак не проходит параметр. Если без кавычек, то все просто
Код: plaintext
run /n run.exe "Папа купил курево"
а если
Код: plaintext
run /n run.exe "Папа купил пачку "Беломорканал""
?А если попробовать одинарные кавычки:
Код: plaintext
run /n run.exe "Папа купил пачку 'Беломорканал'"
...
Рейтинг: 0 / 0
Передача параметров в .exe
    #33760183
Проходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
О-хо-хо... Уж сколько раз твердили миру...

Код: plaintext
run /n run.exe 'Папа купил пачку "Беломорканал"'
...
Рейтинг: 0 / 0
Передача параметров в .exe
    #33760194
AleksMed
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
проходящийО-хо-хо... Уж сколько раз твердили миру...

Код: plaintext
run /n run.exe 'Папа купил пачку "Беломорканал"'

Прочти первый пост
...
Рейтинг: 0 / 0
Передача параметров в .exe
    #33760318
Проходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Мда-с, стормозил. Теперь по существу: передавать в командную строку двойные кавычки нельзя ни под каким соусом. Там это ограничитель текстовых строк. Заменить на что угодно другое.
...
Рейтинг: 0 / 0
Передача параметров в .exe
    #33760614
Фотография Alex_Ustinov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Не может такого быть...
Для формы все работает!.. В форму могу передать любой параметр:
Код: plaintext
do form frmuser.scx with [Папа купил "Беломор"], 'Он работатет на "КамАЗе"'
А для откомпилированного файла думай как хочешь
Нее, для меня это фоксовый ГЛЮК...(Здесь играть так, а здесь, блин, жирные пятна, без бемолей и диезов...)
...
Рейтинг: 0 / 0
Передача параметров в .exe
    #33760645
AleksMed
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alex_UstinovНе может такого быть...
Для формы все работает!.. В форму могу передать любой параметр:
Код: plaintext
do form frmuser.scx with [Папа купил "Беломор"], 'Он работатет на "КамАЗе"'
А для откомпилированного файла думай как хочешь
Нее, для меня это фоксовый ГЛЮК...(Здесь играть так, а здесь, блин, жирные пятна, без бемолей и диезов...)
Кстати, а так [Папа купил "Беломор"] не пробовал передавать?
...
Рейтинг: 0 / 0
Передача параметров в .exe
    #33760696
Проходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Для формы все работает!..

Форма и командная строка операционной системы - две очеь большие разницы! Передача параметров форме происходит внутри фокса, а командная строка операционной системы к фоксу не имеет никакого отношения и была придумана задолго до появления фокса и не расчитана на такие изыски. Вы еще поудивляейтесь почему это в командной строке фоксовы команды и операторы не работают...
...
Рейтинг: 0 / 0
Передача параметров в .exe
    #33760722
Фотография Alex_Ustinov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
[Папа купил "Беломор"] в форму передается "[Папа", "купил", "Беломор","]"
Так я пробовал, после этого удивился и задал вопрос на форуме...
...
Рейтинг: 0 / 0
Передача параметров в .exe
    #33760801
Фотография ВладимирМ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Запихни нужную строку в текстовый файл и в качестве параметра передавай имя с полным путем доступа к этому файлу. В FoxPro анализируй содержимое полученного файла.

Можно использовать настроечные ini-файлы.
...
Рейтинг: 0 / 0
Передача параметров в .exe
    #33760865
Фотография Alex_Ustinov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ты аккуратно понтуйся, проходишь и проходи... Тебе задерживаться нельзя, а то нос вспухнет, мальчик. На "воплосики" надо отвечать "ответиками"
Если ты тупорылый, то не надо считать такими других. Ловит (для тебя проходящий, "принимает") параметры не операцонка (для тебя проходящий, "операционная система"), а Фокс (для тебя проходящий, "среда FoxPro") и ошибку не выдает ни то ни другое. То что Фокс - с "юювнецом" - это надо понять и воспринять.
...
Рейтинг: 0 / 0
Передача параметров в .exe
    #33760903
Фотография Alex_Ustinov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Извиняюсь, последний топик к телу без лица (проходящий)

Хочу передать оракловую строку соединения. Так там сидит пароль - внешние файлы , ini-шники исклю-ся. Кавычки убирать не хотелось бы, а ПРИДЕТСЯ.
...
Рейтинг: 0 / 0
Передача параметров в .exe
    #33760930
Проходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ловит (для тебя проходящий, "принимает") параметры не операцонка (для тебя проходящий, "операционная система"), а Фокс (для тебя проходящий, "среда FoxPro") и ошибку не выдает ни то ни другое.

В фоксе команда RUN передает все, что идет после нее в командную строку операционной системы и никаким образом не анализирует. То есть в командную строку операционнойсистемы передается это:
Код: plaintext
run.exe Папа купил пачку "Беломорканал"
Вопрос, действительно, ближе к MSDOS и его синтаксису.
Точка. Учите матчасть. Девочка.
...
Рейтинг: 0 / 0
Передача параметров в .exe
    #33761459
Фотография ВладимирМ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Поскольку кавычки передать не получится, то их надо чем-то заменить.

1) Заменить кавычки на спец.сиволы, например

run.exe "Папа купил пачку _Беломорканал_"

А уже в коде FoxPro делаешь обратную замену

2) Передай 2 параметра примерно так:

run.exe "Папа купил пачку Беломорканал" "17,29"

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

Здесь преимущество в том, что нет спец.символов. Никаких. Даже пробелов.

3) Если речь идет о строке соединения, то ее структура известна. Количество параметров конечно. Вот и передавай не саму строку, а ее параметры. Собственно сборку строки соединения делай уже внутри EXE.

Можно в качестве первых параметров передать тип соединения. В смысле, к какому серверу и каким способом подключаемся (MS SQL или Oracle, ODBC или ADO). Далее по этому параметру выбрать тип собираемой строки соединения.
...
Рейтинг: 0 / 0
Передача параметров в .exe
    #33762116
Фотография Alex_Ustinov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
проходящий Ловит (для тебя проходящий, "принимает") параметры не операцонка (для тебя проходящий, "операционная система"), а Фокс (для тебя проходящий, "среда FoxPro") и ошибку не выдает ни то ни другое.

В фоксе команда RUN передает все, что идет после нее в командную строку операционной системы и никаким образом не анализирует. То есть в командную строку операционнойсистемы передается это:
Код: plaintext
run.exe Папа купил пачку "Беломорканал"
Вопрос, действительно, ближе к MSDOS и его синтаксису.
Точка. Учите матчасть. Девочка.
Молодец, так в Хэлпе и написано:
Код: plaintext
1.
2.
RUN|!  Executes external operating commands or programs.
без /N окно ДОС-сессии останется открытым

Я же написал вроде бы понятно, :
неважно откуда ты вызываешь командную строку, я сам проверял не из Фокса, а из Far'a. Но запускается опять приложение, написанное на ФОКСЕ, вот оно-то активизирует рантайм Фокса который и обрабатывает переданные параметры, а не MSDOS. И ошибки, если таковые имеются, выдаются в среде VFP, а не в сессии MSDOS. Поиграйся с VFPVersionNumber.exe, там много параметров для запуска.
Осваивай Help. Мат часть лучше не трогай, начни с азов.
Не забивай эфир, следи за своим базаром. Здесь все-таки люди неглупые собираются. Сообщай только по делу, воду лить не надо. Не знаешь - проходи мимо.
----------------------------------------------------
To ВладимирМ:
Да,так и сделал. Заменил кавычки при передаче параметра, на входе обработал
Для Оракла нет смысла дробить на параметры можно передать сразу всю строку соединения(в ней через ; все параметры), ее же использовать в SQLCONNECT(). Так что все нормально, кавычки в параметре сбили с толку.
Всем спасибо
...
Рейтинг: 0 / 0
Передача параметров в .exe
    #33762269
Sergey Sizov.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Я же написал вроде бы понятно, :
неважно откуда ты вызываешь командную строку, я сам проверял не из Фокса, а из Far'a.

Правильно, неважно. Но не важно и что ты из нее вызываешь. Важно то, что все это происходит через командную строку операционной системы.
[/quot] Но запускается опять приложение, написанное на ФОКСЕ, вот оно-то активизирует рантайм Фокса который и обрабатывает переданные параметры, а не MSDOS.

Но перед этим их все-таки обрабатывает интерпретатор командной строки операционносистемы и именно там происходит деление строки на название вызываемой программы и параметры.
[quot] И ошибки, если таковые имеются, выдаются в среде VFP, а не в сессии MSDOS.

Правильно, ибо параметры приходят из командной строки операционной системы поделенные не так как ожидала вызываемая программа.
Поиграйся с VFPVersionNumber.exe, там много параметров для запуска.
Осваивай Help. Мат часть лучше не трогай, начни с азов.
Не забивай эфир, следи за своим базаром. Здесь все-таки люди неглупые собираются.

А вот тут еще можно поспорить кому чего лучше делать или не делать и кто кого может поучить.

В качестве упражнения на знание матчасти предлагаю написать простенькую программулю на любом распостраненном языке, которая бы выдавала на экран список переданных ей в командной строке параметров, и посмотреть, что она будет выдавать в случае передачи ей параметров, содержащих двойные кавычки. И как уже указывалось - фокс здесь вообще никаким боком не лежит.
...
Рейтинг: 0 / 0
Передача параметров в .exe
    #33764264
Фотография Alex_Ustinov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторА вот тут еще можно поспорить кому чего лучше делать или не делать и кто кого может поучить.

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

Повторяю:
Код: plaintext
1.
2.
3.
Поиграйся с VFPVersionNumber.exe, там много параметров для запуска.
Осваивай Help. Мат часть лучше не трогай, начни с азов.
Не забивай эфир, следи за своим базаром. Здесь все-таки люди неглупые собираются.
"D:\Program Files\Microsoft Visual FoxPro 9\vfp9.exe" -c"D:\Program Files\Microsoft Visual FoxPro 9\_Beta\config.fpw"
Модераторам наверное пора закрывать тему.
...
Рейтинг: 0 / 0
Передача параметров в .exe
    #33766962
Igor Korolyov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Hi Alex!

DECLARE INTEGER GetCommandLine IN WIN32API
? SYS(2600, GetCommandLine(), 1000)
? STRCONV(SYS(2600, GetCommandLine(), 1000), 15)

изучай, думай - это чистый АПИ - вряд-ли фокс мог тут что-то сам изменить...

P.S. не использую STRING в качестве типа возвращаемого значения функции,
т.к. тогда обрезает всё что находится после первого CHR(0).

Posted via ActualForum NNTP Server 1.3
...
Рейтинг: 0 / 0
22 сообщений из 22, страница 1 из 1
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Передача параметров в .exe
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]