変数は値を一時的に代入することができます。変数を使用することにより、マクロ内の関数の処理結果を受け渡したり、制御文の条件式を簡潔に記述することができます。
■変数名
変数はマクロファイル内で定義が可能です。
●命名規約
変数は以下の命名規約に従って定義してください。
半角英数文字、およびハイフン(-)、アンダーライン(_)のみ使用できます。
変数名は英字から始まる必要があります。
変数に指定できる文字数は半角1~64文字です。
英字の大文字、小文字は区別されません。
●留意事項
変数の定義には以下の留意事項があります。
同一の有効範囲内に、重複した名前は定義できません。
予約された名前(マクロの制御文や関数名)、WSMGRで定義済みの環境変数名(下記の「●その他の環境変数」を参照)は変数名として使用できません。
■種類
WSMGRで使用できる変数には各種の型と環境変数があります。
●整数型
整数型は範囲が-2147483648~2147483647の整数を代入できる変数です。
●文字列型
文字列型は文字列を代入できる変数です。文字列型の変数には、半角換算で最大4096文字(全角換算で2048文字)の文字列が代入できます。文字列は必ずダブルクォーテーション(")で囲って指定してください。ダブルクォーテーション(")を文字列として指定したい場合は、ダブルクォーテーションを2つ並べて記述してください。この場合、1文字分のダブルクォーテーションは文字列の長さには含まれません。
●論理値型
論理値型は論理値(TRUE、またはFALSE)を代入できる変数です。整数型も代入可能ですが、代入された整数が0の場合はFALSE、0以外の場合はTRUEとして扱います。
●Windows環境変数
Windowsの環境変数が使用できます。使用可能なWindows環境変数はシステムにより異なるため、各システムのマニュアルを参照してください。
●その他の環境変数
WSMGRにより定義済みの以下の環境変数が使用できます。本変数は参照のみ可能で、値の操作はできません。
変数名 | 型 | 説明 |
---|---|---|
WSMGR_ICONNAME | 文字列 | 接続アイコン名 |
WSMGR_TNIPADDR | 文字列 | 端末のIPアドレス |
WSMGR_TNHOSTNAME | 文字列 | 端末のホスト名 |
■変数の有効範囲
変数は制御ブロック(IF/ELSEIF/ELSE/ENDIF、またはWHILE/ENDWHILEで囲まれた部分)内で有効です。同一の制御ブロック内に、同じ変数名を重複して定義することはできませんが、制御ブロックが異なる場合は同じ変数名でも別の変数として扱われます。
制御ブロックが入れ子の階層ブロックになる場合は、ブロックの上位の階層で定義された変数は、下位のブロックから参照することができます。反対に下位のブロックで定義された変数を上位で参照することはできません。
●使用例
IF ( 条件文 ) CrtInt (val, 0) ; 変数「val」を定義します。 WHILE ( 条件文 ) PutValue (val, 10) ; 変数「val」を参照できす。 ENDWHILE CrtInt (val, 0) ; 誤りです。変数「val」はすでに定義されています。 ELSE CrtInt (val, 0) ; 定義可能です。IF文と制御ブロックが異なります。 ENDIF