TOption --- パラメタ解析クラス 1. 概要 アプリケーションのパラメタ解析を行うクラス TOption を提供する。 2. パラメタの書式 TOptionクラスが扱うパラメタの種類とその書式を示す。 - フラグオプション - 初期化時の書式 オプション名 - 実行時の書式 [-/]<オプション名>[-] パラメタが指定されていれば真、指定されなければ偽となる。 -debug- などのように後ろに '-' を指定すると否定になり、 偽が設定される。 同じパラメタを2回指定した場合には後から指定したものが有効となる。 - 値オプション - 初期化時の書式 オプション名:[初期値] - 実行時の書式 [-/]<オプション名> 名前に値を指定する。初期化時に初期値を指定可能。 同じパラメタを2回指定した場合には後から指定したものが有効となる。 - マルチ値オプション - 初期化時の書式 オプション名#[初期値] - 実行時の書式 [-/]<オプション名> 名前に値を指定する。初期化時に初期値を指定可能。 同じパラメタを2回指定した場合には値を追加してゆく。 複数の値は内部的に '|' で区切って保持する。 TOptionクラスで扱えないもの。 - --version などの '--' で始まるオプション。 - 必須パラメタの指定。 - -x300 -y400 のようなオプション名と値を分離しない書式。 3. 使い方 Option := TOptions.Create; try if not Option.InitOptions(['a', 'b:', 'c#']) then begin // error end; if not Option.ScanArgs() then begin // error end; ... finally Option.Free end; -------- C:\>app -a -b hello -c xxx -c yyy a bb ccc 4. リファレンス TOptions -------- [構築/破棄] Create Destroy [解析] ScanArgs [個別パラメタの設定/取得] SetCheck IsChecked SetValue AddValue GetValue GetValue GetValueNum SetFreeArgs GetFreeArgsNum GetFreeArgs [デバッグ] Dump ------------------------------------------------------------------------------ constructor Create ---------------- インスタンスを作成する。 destructor Destroy ---------------- インスタンスを破棄する。 function ScanArgs(const astrOptions: array of string): Boolean; ---------------- パラメタを解析する。 astrOptions 受け付けるオプション名並びの配列 個々のオプション書式は後述 procedure SetCheck(const strOption: string; fFlag: Boolean); ---------------- フラグオプションに値を設定する。 strOption オプション名 fFlag 値(True/False) function IsChecked(const strOption: string): Boolean; ---------------- フラグオプションの値を取り出す。 strOption オプション名 procedure SetValue(const strOption: string; const strValue: string); ---------------- 値オプションに値を設定する。 strOption オプション名 strValue 値 procedure AddValue(const strOption: string; const strValue: string); ---------------- マルチ値オプションに値を追加する。 strOption オプション名 strValue 値 function GetValue(const strOption: string): string; overload; ---------------- 値オプションから値を取り出す。 strOption オプション名 function GetValue(const strOption: string; nIndex: Integer): string; overload; ---------------- マルチ値オプションから値を取り出す。 strOption オプション名 nIndex インデックス(0〜) function GetValueNum(const strOption: string): Integer; ---------------- マルチ値オプションに設定されている値の数を取り出す。 strOption オプション名 procedure SetFreeArgs(const strValue: string); ---------------- フリーパラメタに値を追加する。 strValue 値 function GetFreeArgsNum: Integer; ---------------- フリーパラメタの値の数を取り出す。 function GetFreeArgs(nIndex: Integer): string; ---------------- フリーパラメタから値を取り出す。 nIndex インデックス(0〜) procedure Dump ---------------- パラメタ情報をダンプする。 デバッグ用 5. 修正履歴 ver0.01 2000.11.02 新規作成 6. 使用条件、免責 本プログラムはフリーソフトウエアです。 配布は自由に行うことができます。 本プログラムは無保証です。 本プログラムの使用においた生じた如何なる損害についても作者は一切の責任を負 いません。 金子尚史(kanegon) e-mail : wbs01621@mail.wbs.ne.jp WebPage : http://www2.wbs.ne.jp/~kanegon/