Przeskocz do zawartości głównej

Rozszerzenie przez znak dolara przy użyciu zmiennej

NA TEJ STRONIE

Rozszerzenie przez znak dolara przy użyciu zmiennej

Gdy w celu zastąpienia tekstu w skrypcie lub w wyrażeniu używana jest zmienna, używana jest następująca składnia:

$(variablename)      

$(variablename) powoduje rozwinięcie do wartości w zmiennej. Jeśli variablename nie istnieje, wówczas wynikiem rozwinięcia będzie pusty ciąg znaków.

W celu rozwinięcia zmiennej numerycznej używana jest następująca składnia:

$(#variablename)      

Takie rozwinięcie zawsze pozwala na uzyskanie prawidłowej reprezentacji separatora dziesiętnego wartości liczbowej zmiennej — jeśli to możliwe, zwracana jest postać w zapisie wykładniczym (w przypadku bardzo dużych/małych liczb). Jeśli variablename nie istnieje lub nie zawiera wartości liczbowej, zostanie rozszerzone do 0.

Example:  

SET DecimalSep=',';

LET X = 7/2;

Rozszerzenie przez znak dolara $(X) zostanie rozwinięte do 3,5, z kolei $(#X) zostanie rozwinięte do 3.5.

Example:  

Set Mypath=C:\MyDocs\Files\;

...

LOAD * from $(MyPath)abc.csv;

Dane zostaną załadowane z C:\MyDocs\Files\abc.csv.

Example:  

Set CurrentYear=1992;

...

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

Wybrane zostaną wiersze zawierające Year=1992.

Example:  

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

W tym przykładzie wszystkie pliki .txt w katalogu są ładowane przy użyciu prefiksu Concatenate. Może to być wymagane, jeśli pola nieco się od siebie różnią, przez co konkatenacja automatyczna nie działa. Zmienna vConcatenate jest początkowo ustawiana jako pusty ciąg znaków, ponieważ w pierwszym ładowaniu nie można użyć prefiksu Concatenate. Jeśli katalog zawiera pliki o nazwach file1.txt, file2.txt i file3.txt, instrukcja LOAD podczas trzech iteracji zostanie rozwinięta do:

LOAD * FROM[.\file1.txt];

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

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

Rozwijanie zmiennych w stanach alternatywnych

Zmienna ma tylko jedną wartość i jest używana we wszystkich stanach alternatywnych. Kiedy rozszerzasz zmienną, wartość jest również taka sama, niezależnie od tego, gdzie została utworzona, i od stanu obiektu.

Jeśli zmienna jest zmienną obliczaną, to znaczy definicja zaczyna się od znaku równości, obliczenia są wykonywane w stanie domyślnym, chyba że określisz stan alternatywny w definicji zmiennej.

Example:  

Jeśli stan ma nazwę MójStan, a zmienna vMojaZm:

vMyvar: =only({MyState} MyField)

Treść definicji zmiennej, z wyraźnym odniesieniem do nazwy alternatywnego stanu, określa, w jakim stanie będzie oceniana zawartość zmiennej.