Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Запуск с параметрами. [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


Наверх

Титульная страница Поиск, карта сайта Написать письмо