Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 29.05.2009, 08:32   #1
BaronTreep
Форумчанин
 
Регистрация: 29.05.2009
Сообщений: 320
По умолчанию Параметры коммандной строки

В Си я пишу так

main(int argc, int argv[])
{
/* И имею в argv параметры комм. строки из которой было вызвано приложение */
}

Вопрос: как в консольном приложении в DELPHI получить коммандную строку? Спасибо.
BaronTreep вне форума Ответить с цитированием
Старый 29.05.2009, 08:48   #2
Andrei
Форумчанин
 
Регистрация: 20.06.2007
Сообщений: 270
По умолчанию

FindCmdLineSwitch функция

Определяет, содержит ли коммандная строка свичи. Основывается на первом символе строки. Для Windows (по умолчанию) в качестве свичей заданы символы "/" и "-".


ParamCount функция

Возвращает количество параметров, прошедших в коммандной строке.



ParamStr функция

Возврщает параметр с укзанным номером из коммандной строки.
В Windows ParamStr(0) возвращает путь и имя файла исполняемой программы (например, C:\TEST\MYPROG.EXE)


А пользоваться ими примерно так:

Код:
procedure TForm1.FormCreate(Sender: TObject);
begin
   //загружаю в мемо файл, переданный в качестве первого параметра
   if ParamCount>0 then Memo1.Lines.LoadFromFile(ParamStr(1));
end;
-Кукушка, кукушка! Накукуй мне сто лет!
-А накукуй тебе столько?

(с) Библия. Вольный перевод с древнееврейского.
Andrei вне форума Ответить с цитированием
Старый 29.05.2009, 09:16   #3
BaronTreep
Форумчанин
 
Регистрация: 29.05.2009
Сообщений: 320
По умолчанию

ОК. Все эти функции нашел в SysUtils.pas и System.pas. Они работают через GetCommandLine. Для любителей низкоуровнего, вот как её достать:

function GetCommandLine: PChar; stdcall;
external kernel name 'GetCommandLineA';

Здесь kernel это виндоузный kernel32.dll.
BaronTreep вне форума Ответить с цитированием
Старый 29.05.2009, 16:31   #4
Crivel
Delphi\C++
Форумчанин
 
Аватар для Crivel
 
Регистрация: 18.06.2008
Сообщений: 277
По умолчанию

Я использую ParamStr. В скобках указывайте номер параметра, например:
Код:
ParamStr(1);
Crivel вне форума Ответить с цитированием
Старый 30.05.2009, 21:27   #5
BaronTreep
Форумчанин
 
Регистрация: 29.05.2009
Сообщений: 320
По умолчанию

А почему антивири при вызове из коммандной строки у меня пищат, что тут криминального? Кто-нибудь знает?
BaronTreep вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Параметры диаграммы maxic Microsoft Office Excel 0 19.04.2009 07:18
Параметры danielsteiner Общие вопросы C/C++ 1 12.04.2009 20:47
Параметры из командной строки ProGg Паскаль, Turbo Pascal, PascalABC.NET 5 13.02.2009 00:17
параметры main neo-n Общие вопросы C/C++ 1 04.12.2008 08:33
С# - параметры функции ameli Общие вопросы .NET 4 02.06.2008 16:40