![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как получить параметры... [D7, WinXP]
Franzy © (2008-03-27 23:28:00)...с которыми вызывается консольное приложение Delphi?
Пишу мини прогу, которую будут вызывать из другой проги с неким набором параметров (в командной строке). Нужно получать и обрабатывать эти параметры в теле программы. Программа, повторюсь, консольная.
Помню, что раньше я умел это делать, но сейчас уже давно забыл :)
Leonid Troyanovsky (2008-03-29 11:59:00) [1]
> Palladin © (28.03.08 12:17) [12]
> у меня получилось передать не больше 32Кб...
А чего экспериментировать, в msdn сказано
The maximum length of this string is 32,768 characters, including the Unicode terminating null character.
Правда, там почему-то не указано, что размер каждого передаваемого
параметра ограничен MAX_PATH, а не только the module name portion of lpCommandLine.
--
Regards, LVT.
clickmaker (2008-03-28 12:18:00) [2]
> я как то экспериментировал в обед, от делать нечего
как это в обед делать нечего? а обедать? ))
Palladin (2008-03-28 12:17:00) [3]а фз, что там используется, я как то экспериментировал в обед, от делать нечего, у меня получилось передать не больше 32Кб...
WinXP, SP2
на других не пробовал...
Riply (2008-03-28 12:13:00) [4]> [10] Palladin © (28.03.08 12:07)
> это в консоли ограничение, а при CreateProcess - гораздо больше можно передать :)
Нет под рукой Delphi - не посмотреть NtCreateProcess.
Если там UNICODE_STRING используется, то всяко не больше чем MAXWORD div 2 символов :)
Palladin (2008-03-28 12:07:00) [5]
> han_malign © (28.03.08 11:53) [9]
это в консоли ограничение, а при CreateProcess - гораздо больше можно передать :)
han_malign (2008-03-28 11:53:00) [6]
> А остальные пусть допишут остальные...
- угу, их там еще на пару тысяч наберется(если односимвольные и не уникальные), учитывая ограничение длинны коммандной строки в 4К(кажется)...
Kolan (2008-03-28 11:38:00) [7]> А остальные пусть допишут остальные
Это как на парте пишут: «если ты не голбой нарисуй вагон другой».
Семеныч (2008-03-28 10:59:00) [8]> Palladin © (28.03.08 09:54) [6]
> а седьмой и восьмой?
ParamStr(7) - седьмой параметр
ParamStr(8) - восьмой параметр
> а как же все остальные?
А остальные пусть допишут остальные...
Palladin (2008-03-28 09:54:00) [9]а седьмой и восьмой? а как же все остальные?
DrPass (2008-03-28 09:52:00) [10]
> Xandr (28.03.08 08:27) [4]
> ParamStr(0) - путь к программе
> ParamStr(1) - первый параметр
> ParamStr(2) - второй параметр
Надо бы еще уточнить, что
ParamStr(3) - третий параметр
ParamStr(4) - четвертый параметр
ParamStr(5) - пятый параметр
ParamStr(6) - шестой параметр
Xandr (2008-03-28 08:27:00) [11]ParamStr(0) - путь к программе
ParamStr(1) - первый параметр
ParamStr(2) - второй параметр
итд
насколько я помню, параметры разделяются пробелами.
использовать:
var
s:String;
begin
s:=ParamStr(1);
end;
ParamCount - количество параметров, с которыми вызвана прога.
Семеныч (2008-03-28 00:35:00) [12]> Franzy (27.03.08 23:28)
ParamStr, ParamCount.
Консольная или нет - неважно.
Efir (2008-03-28 00:28:00) [13]ParamStr?
Плохиш (2008-03-28 00:00:00) [14]
> Помню, что раньше я умел это делать, но сейчас уже давно
> забыл
Да, да, "не знал, не знал и забыл"
PS. Справку почитай и ещё много полезного узнаешь.