お知らせ

電子会議

ライブラリ

FDelphi サイト全文検索

Delphi FAQ一覧

サンプル蔵



FDelphi FAQ
15番会議室「FAQ編纂委員会」に寄せられた「よくある質問の答え」

[Q]
プログラム実行時のコマンドライン引数は、どうやって調べればいいのですか?

[A]
コマンドラインを調べるために以下の関数が使えます。

ParamCount  ・・・ コマンドライン引数の個数(Word型)
ParamStr(n) ・・・ n番目のコマンドライン文字列(Strings型)

PramStr(0)は、Application.ExeNameと同じ事で、実行プログラムのフルパス
を返します。

あと、CmdLine(PChar型)と言う変数を参照すると、コマンドラインがそのまま
(スペース区切りなども含めて)調べられます。この変数はSystemユニットで
定義されているので、改めて宣言する必要はありません。
[例]
a:\bin\MyApp.Exe /A /B /C
としてプログラムを実行すると、これらのコマンドラインを調べるのには、
以下のような方法があります。

--- ParamCount,ParamStrを使った方法

{ParamCountの数だけ引数を調べる}
if ParamCount > 0 then
  for i := 1 to ParamCount do begin
    if ParamStr(i) = '/A' then {/Aがある時の処理}
    if ParamStr(i) = '/B' then {/Bがある時の処理}
    if ParamStr(i) = '/C' then {/Cがある時の処理}
  end;

※実際には、このように引数がなかった場合の事も考慮して下さい。

--- CmdLineを使った方法

var
  S : String;

{コマンドライン中に指定の文字列が含まれているかどうかを一気に調べる}
S := StrPas(CmdLine);
if Pos('/A',S) > 0 then {/Aがある時の処理}
if Pos('/B',S) > 0 then {/Bがある時の処理}
if Pos('/C',S) > 0 then {/Cがある時の処理}


ここにあるドキュメントは NIFTY SERVEの Delphi Users' Forum FDELPHIに寄せられる質問の中から、よくある質問への回答を FDELPHIのメンバーがまとめたものです。 したがって、これらの回答はボーランド株式会社がサポートする公式のものではなく、掲示されている内容についての問い合わせは受けられない場合があります。

Copyright 1996-1998 Delphi Users' ForumFAQ編纂委員会