# Expansão de sinal de dólar usando uma variável

Ao utilizar uma variável para a substituição de texto no script ou em uma expressão, é usada a seguinte sintaxe:

$(variablename)

$(variablename) expande para o valor na variável. Se variablename não existir, a expansão resultará em uma string vazia.

Para expansões variáveis numéricas, use a seguinte sintaxe:

$(#variablename)

Ela sempre gera uma representação de ponto decimal válido do valor numérico da variável, possivelmente com notação exponencial (para números muito grandes/pequenos). Se variablename não existir ou não contiver um valor numérico, expandirá para 0.

Exemplo:

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

A expansão de sinal de dólar $(X) expande para 3,5 e $(#X) expande para 3.5.

Exemplo:

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

Os dados serão carregados de C:\MyDocs\Files\abc.csv.

Exemplo:

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

As linhas com Year=1992 serão selecionadas.

Exemplo:

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

Neste exemplo, todos os arquivos .txt no diretório são carregados usando o prefixo Concatenate. Isso pode ser necessário se os campos forem ligeiramente diferentes e, nesse caso, a concatenação automática não funciona. A variável vConcatenate é inicialmente configurada como uma string vazia, pois o prefixo Concatenate não pode ser usado no primeiro carregamento. Se o diretório contiver três arquivos chamados file1.txt, file2.txt e file3.txt, a declaração LOAD durante as três iterações será expandida para:

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

## Expandindo Variáveis em Estados Alternados

A variável tem apenas um valor, e esse é usado em todos os estados alternados. Quando você expande uma variável, o valor também é o mesmo, independente de onde a expansão é feita e do estado do objeto.

Se a variável for uma variável calculada, ou seja, a definição começa com um sinal de igual, o cálculo será feito no estado padrão, a menos que você especifique um estado alternado na definição da variável.

Exemplo:

Se você tem um estado chamado `MyState` e uma variável chamada `vMyVar`:

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

O conteúdo da definição da variável, com uma referência explícita ao nome do estado alternado, determina em que estado o conteúdo da variável será avaliado.