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

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

$(variablename)

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

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

$(#variablename)

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

`SET 
 DecimalSep=',';` `LET 
 X = 7/2;`

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

`Set Mypath=C:\MyDocs\Files\;` ` ...  ` `LOAD * from $(MyPath)abc.csv;`

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

`Set CurrentYear=1992;` ` ...  ` `SQL SELECT * FROM table1 WHERE
 Year=$(CurrentYear);`

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

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

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

`LOAD * FROM[.\file1.txt];` `Concatenate LOAD * FROM[.\file2.txt];` `Concatenate LOAD * FROM[.\file3.txt];`

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

変数には値が 1 つだけあり、すべての代替ステートで使用されます。変数を拡張する場合は値も同様で、作成された場所とオブジェクトのステートとは無関係です。

変数が計算変数である場合、つまり定義が等号で始まる場合、変数定義で代替ステートを指定する場合を除き、計算は既定のステートで作成されます。

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

```
vMyvar: =only({MyState} MyField)
```

代替ステート名を明示的に参照する変数定義のコンテンツは、変数コンテンツが評価されるステートを決定します。