CSVfox
Leverage Your Data.

±if/else/end

Umożliwia warunki pracy na polach danych CSV

Opis

To polecenie formułuje warunek, czy kolejne polecenia mają być wykonane, czy nie.
Może być stosowane tylko dla poleceń dotyczących pól danych, tzn. tylko dla ±set, ±replace, ±remove, i ±regex.
Każde inne kolejne polecenie powoduje błąd.

Warunek składa się z lewego operandu, operatora porównania i (najczęściej) prawego operandu.

Każdy operand może być pojedynczym [polem] lub {wyrażeniem}.
Przed porównaniem każde wyrażenie i każda wartość pola zostanie rozwiązana dla każdego wiersza, patrz Expressions and their Resolving. Następnie wykonywane jest porównanie z rozwiązanymi wartościami.
W przypadku operacji porównywania numerycznego, operandy muszą być ujęte w nawiasy okrągłe ([Pole]) lub (wyrażenie).

Warunek i polecenie są oddzielone podwójnym delimiterem (domyślny delimiter to "/"). Nie należy ponownie wstawiać prefiksu wejścia/wyjścia("+" lub "-").

Wzór

Jeden warunek i jedno polecenie warunkowe wygląda następująco:

±if{Operand}Operator{Operand}//(Field Command)

Może być również przypadek "else", który oznacza, że te kolejne polecenia zostaną wykonane, jeżeli warunek nie będzie miał zastosowania.
Jeżeli występuje polecenie "else", musi być ono również oddzielone podwójnym delimiterem przed i po

.
±if{Operand}Operator{Operand}//(Field Command)//else//(Other Field Command)

Przykłady użycia

-if[Features]c{Leather}//set[Price]=([Price]+500)
Jeżeli pole "Cechy" (może to być lista cech samochodu) zawiera ciąg "Leather", to pole "Cena" jest zwiększane o 500.
-if([Lokalizacje])>(3)//set[BigCompany]=Yes//else//set[BigCompany]=Nie
Jeżeli w polu "Lokalizacje" (może to być liczba biur) znajduje się liczba większa niż 3, to pole "BigCompany" jest ustawiane na "Tak", w przeciwnym razie na "Nie".

Jeśli potrzebują Państwo więcej ...

Można połączyć więcej niż jeden warunek i więcej niż jedno polecenie.
W tym przypadku każdy warunek lub polecenie musi być ponownie oddzielone podwójnym delimiterem na każdym końcu. Proszę zwrócić uwagę, aby przy łączeniu warunków i/lub poleceń nie było białych znaków wokół podwójnych ograniczników.

±if{Operand1}Operator1{Operand1}//if {Operand2}Operator2{Operand2}//(Field Command)
±if{Operand}Operator{Operand}//(Field Command1)//(Field Command2)//else//(Other Field Command1)//(Other Field Command2)

Możliwe jest również zagnieżdżanie warunków i poleceń.
Odbywa się to poprzez rozpoczęcie nowej grupy warunków if wewnątrz poleceń. Wewnętrzna grupa musi się wtedy z reguły zakończyć przy użyciu "//end//", aby można było kontynuować grupę zewnętrzną

.

Tutaj jest to przedstawione za pomocą kolorów (grupa zewnętrzna: biała, grupa wewnętrzna: żółta).

±if{Operand1}Operator1{Operand1}//Field Command1)//if{Operand2}Operator2{Operand2}//(Field Command2)//end//(Field Command 3)

Można to zrobić również w przypadku "else".
Tutaj jest to ponownie przedstawione za pomocą kolorów (grupa zewnętrzna: biała, grupa wewnętrzna: żółta).

±if{Operand1}Operator1{Operand1}//Field Command1)//else//if{Operand2}Operator2{Operand2}//(Field Command2)//end//(Field Command 3)

Również wewnętrzna grupa warunków/poleceń może mieć przypadek "else"!
Tutaj jest to ponownie przedstawione za pomocą kolorów (grupa zewnętrzna: biała, grupa wewnętrzna: żółta).

±if{Operand1}Operator1{Operand1}//Field Command1)//else//if{Operand2}Operator2{Operand2}//(Field Command2)//else//(Field Command4)//end//(Field Command 4)

Przykłady zastosowania


...
Under construction, coming soon