メイン コンテンツをスキップする

変数を使用したドル記号展開

このページ上

変数を使用したドル記号展開

スクリプトや数式でのテキスト置換に変数を使用する場合は、次の構文が使用されます。

$(variablename)      

$(variablename) により、変数内の値に展開されます。variablename が存在しない場合は、空の文字列に展開されます。

数値の変数展開では、次の構文が使用されます。

$(#variablename)      

これは、常に変数の数値の有効な少数点値を生成します。非常に大きいまたは小さい数値の場合は、指数表記が使用されることもあります。variablename が存在しない場合、または数値が含まれていない場合は、0 に展開されます。

Example:  

SET DecimalSep=',';

LET X = 7/2;

ドル記号展開 $(X)3,5 に展開され、$(#X)3.5 に展開されます。

Example:  

Set Mypath=C:\MyDocs\Files\;

...

LOAD * from $(MyPath)abc.csv;

データは C:\MyDocs\Files\abc.csv からロードされます。

Example:  

Set CurrentYear=1992;

...

SQL SELECT * FROM table1 WHERE Year=$(CurrentYear);

Year=1992 の行が選択されます。

Example:  

Set vConcatenate = ; For each vFile in FileList('.\*.txt') Data: $(vConcatenate) LOAD * FROM [$(vFile)]; Set vConcatenate = Concatenate ; Next vFile

この例では、ディレクトリ内のすべての .txt ファイルが Concatenate プレフィックスによりロードされます。これは、項目がわずかに異なる際に必要となることがあります。この場合、自動連結は機能しません。vConcatenate 変数は最初、空の文字列に設定されます。これは、最初のロードでは、Concatenate プレフィックスを使用できないためです。ディレクトリに file1.txtfile2.txtfile3.txt という名前の 3 つのファイルが含まれている場合、LOAD ステートメントは 3 回の反復中、以下に展開されます。

LOAD * FROM[.\file1.txt];

Concatenate LOAD * FROM[.\file2.txt];

Concatenate LOAD * FROM[.\file3.txt];

並列ステートの変数の展開

変数には 1 つの値のみが含まれ、この値がすべての代替ステートで使用されます。変数を展開しても、この値は変わりません。変数が作成された場所やオブジェクトのステートは、この値に影響しません。

変数が計算による変数の場合、つまり定義が等号で始まる場合、変数の定義で代替ステートを指定しない限り、計算は既定のステートで実行されます。

Example:  

MyStateという名前のステートおよびvMyVarという名前の変数がある場合:

vMyvar: =only({MyState} MyField)

変数の定義で代替ステート名への参照が明示されているので、変数のコンテンツを評価するステートがこの参照により決定されます。