を読むParamStr()
と、各パラメーターの間はスペースで区切られます。ただし、パラメーター名とそのペアの値の間にスペースを受け入れる一方で、等号を受け入れ、=
区切り記号 (パラメーター名のプレフィックスが付いているだけ) または値を受け入れない多くのコマンドライン引数を見てきました。
可能なパラメータ文字列の例を次に示します。
-name value
/name value
-name=value
/name=value
-namevalue
/namevalue
-name -nextname
/name /nextname
-name="value with spaces"
/name="value with spaces"
...等。
私がやりたいことは、両方が関連している 2 つのことです...パラメーター名が存在するかどうかを確認し、パラメーターの値を読み取ります。例えば...
if ParamExists('ParamName') then
SomeString:= ParamValue('ParamName')
else
SomeString:= 'SomeOtherString';
これを行うことができる Delphi の何かがありますか? そうでない場合、どうすればよいですか?これを検索するときに見つけたものはすべて、同じ基本的な例につながります。
for i := 0 to ParamCount do
ShowMessage(ParamStr(i));
また、大文字と小文字を区別する必要があります。OSQL
特に、「-s」が「-S」とは異なる可能性がある場所で使用する類似のコマンドラインツールを探しています。
問題は、区切り記号としてスペースを使用する場合、それが前のパラメーターの一部であることを認識する方法がわからないことです。これは、それらがスペースで分割されるためです。どうすればこれを回避できますか?
これには標準的な用語もあると思いますが、それはコマンドライン引数の一般的なフォーマットです。しかし、単に を使用してそれらを適切に読み取る方法がわかりませんParamStr
。ParamStr
通常の使用目的には及ばないようです。
明確にするために、上記のすべての例を必ずしもサポートする必要はありません。これらは、以前に見た例にすぎません。