![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Запуск с параметрами. [D5, XP]
Вася © (2007-01-11 12:51:00)Надо указать при запуске своей программе какой порт открывать для работы. Для этого запущу ее с параметрами:
proga.exe /port 2345
прочитаю параметры
If LowerCase(ParamStr(i)) = '/port' then..
А дальше как? Ведь 2345 это уже второй параметр. Как правильно передать "параметр параметра"? Как это делают мастера?
А если нужно передать несколько значений параметров, например:
proga.exe /port 2345 /t 5000 /a /b 3
Можно какой-нибудь пример показывающий как это сделать правильно?
Anatoly Podgoretsky (2007-01-11 13:27:00) [1]> Desdechado (11.01.2007 13:11:07) [7]
Не надо про *nix, там тоже полный интернационал, при том оба случая практически одинаково встречаются, например из zip параметр со значением указывается так
-b path
встречал в других и так
-b:path
-b=path
Ega23 (2007-01-11 13:25:00) [2]
> Можно, но не требуется, а если делать так, то есть более
> общепринятая форма
Я тупо из isql идею передрал.
Джо (2007-01-11 13:17:00) [3]> [7] Desdechado © (11.01.07 13:11)
> Anatoly Podgoretsky © (11.01.07 13:08) [4]
> > Но зачем, параметр 1 это ключ, параметр 2 его значение
> традиционно в *nix так сделано
Я такого избегаю из-за неоднозначностей разбора.
Например: /pdelphi\bin
как трактовать как параметр p со значением delphi\bin или как параметр /pd со значением elphi\bin?
Лучше, ИМХО, использовать разделитель между param/value, например, "=", как в [3].
Desdechado (2007-01-11 13:11:00) [4]Anatoly Podgoretsky © (11.01.07 13:08) [4]
> Но зачем, параметр 1 это ключ, параметр 2 его значение
традиционно в *nix так сделано
Desdechado (2007-01-11 13:10:00) [5]Я обычно делаю именованные параметры без слэшей и минусов.
ТогдаFGAC.exe DIRECTION=EXP USERID=XXX/1@RICOSERVER PARFILE=export.ini FILE=%1 LOG=export.log OWNER=XXX
При желании или лени можно их последовательно загнать в StringList и читать через liParams.Values[ 'DIRECTION' ]
Anatoly Podgoretsky (2007-01-11 13:08:00) [6]> Ega23 (11.01.2007 12:56:02) [2]
Можно, но не требуется, а если делать так, то есть более общепринятая форма
proga.exe /port:2345
Но зачем, параметр 1 это ключ, параметр 2 его значение и так далее
Данный параметр синтактически всегда должен идти парой ключ-значение
Anatoly Podgoretsky (2007-01-11 13:08:00) [7]> Джо (11.01.2007 13:02:03) [3]
Так можно, тогда можно использовать возможности StringList
Джо (2007-01-11 13:02:00) [8]proga /port=123
и так далее.
Anatoly Podgoretsky (2007-01-11 12:56:00) [9]> Вася (11.01.2007 12:51:00) [0]
Теперь читай второй параметр, в соответствии с синтаксисом.
Ega23 (2007-01-11 12:56:00) [10]
proga.exe /p2345 /t5000 /a /b3