Funkce používané při vyhodnocování výrazů
Z K.A.P.
Obsah
Matematické
Abs, Int, Mod, Rand, Round
Řetězcové
Char, Code, DelAll, DelLeft, DelRight, EnumStr, Find, Left, Length (Len), Lower, Mid, PadL, Pos, PosUp, Proper, Repeat, Replace, Right, SetCenter, SetLeft, SetRight, Str, StrCarka, StrCena, StrCislo, StrDate, StrFlags, String, StrW, Trim, Upper, Using, Value (Val), WinFmt
Logické
- False, If, IsNumber, True, MaskAnd, MaskOr
Zpracování datumu
- Date, DateValue (DV), Day, Month, Now, Weekday, Year, FormatDate
Matematické funkce používané při zadávání výrazů
abs(x) | vrací absolutní hodnotu čísla x |
int(x) | vrací celou část čísla x |
mod(x,y) | vrací zbytek po dělení celého čísla x celým číslem y |
rand | vrací náhodné číslo z intervalu 0 až 1 |
round(x,n) | vrací číslo x zaokrouhlené na n desetinných míst; n může být z intervalu -9 až 9 |
Řetězcové funkce používané při zadávání výrazů
char(x) | převede číslo na znak dle kódu ASCII (x:0 až 255) |
code(ret) | převede první znak řetězce ret na číslo dle kódu ASCII |
DelAll(ret) | vymaže všechny mezery řetězce ret |
DelLeft(ret) | vymaže všechny mezery zleva |
DelRight(ret) | vymaže všechny mezery zprava |
EnumStr(ret,n) | vrací n-tou část řetězce ret; n je počítáno od 0;jednotlivé části řetězce ret musí být odděleny znakem/např. "první/druhý/třetí/čtvrtý" |
find(ret1,ret2,n) | hledá výskyt řetězce ret1 v řetězci ret2, hledání začíná od pozice n; vrací vyhledanou pozici nebo 0, pokud se řetězec ret1 nevyskytuje v řetězci ret2 |
getVar(prom) | vrací hodnotu proměnné prom, která byla předtím uložena pomocí funkce SetVar; funkce může vrátit buď řetězec nebo číslo v závislosti na tom, jaká hodnota byla uložena pomocí SetVar |
left(ret,n) | vrací prvních n znaků řetězce ret (zleva) |
length(ret) | vrací délku řetězce ret (počet znaků); funkce je identická s funkcí len |
lower(ret) | převede velká písmena v řetězci ret na malá (pouze u písmen anglické abecedy) |
mid(ret,poz,n) | vrací část řetězce ret od pozice poz o délce n znaků |
PadL(ret, n, z) | doplní řetězec ret znakem z zleva na délku n znaků |
pos(ret1,ret2) | vrací pozici řetězce ret1 v řetězci ret2, nebo 0, pokud se řetězec ret1 v řetězci ret2 nevyskytuje |
PosUp(ret1,ret2) | vrací pozici řetězce ret1 v řetězci ret2 bez ohledu na malá a velká písmena, nebo 0, pokud se řetězec ret1 v řetězci ret2 nevyskytuje |
proper(ret) | upraví řetězec ret tak, aby každé samostatné slovo začínalo velkým písmenem (vhodné pro úpravu jmen) |
repeat(ret,n) | vrací n krát zopakovaný řetězec ret |
replace(ret1,poz,n,ret2) | nahradí část řetězce ret1 od pozice poz o délce n řetězcem ret2 |
right(ret,n) | vrací posledních n znaků řetězce ret (zprava) |
setCenter(ret,n) | doplní řetězec ret mezerami zleva a zprava, tak aby výsledný řetězec byl dlouhý n znaků a původní řetězec byl uprostřed |
setLeft(ret,n) | odstraní z řetězce ret mezery zleva a doplní řetězec mezerami zprava tak, aby výsledný řetězec byl dlouhý n znaků |
setRight(ret,n) | odstraní z řetězce ret mezery zprava a doplní řetězec mezerami zleva tak, aby výsledný řetězec byl dlouhý n znaků |
setVar(prom, x) | uloží hodnotu x proměnné prom do seznamu proměnných (x může být číslo nebo řetězec). Funkce vždy vrací jako hodnotu prázdný řetězec |
str(x,n,d) | převede číslo x na řetězec s d desetin. místy v n znacích |
strCarka(ret) | doplní řetězec ret (o řetězci se předpokládá, že obsahuje textové vyjádření celého nebo desetinného čísla) oddělovacími znaky tak, aby byly odděleny tisíce, milióny, atd. |
strCena(x,n) | převede číslo x na řetězec znaků tak, že výsledný řetězec obsahuje textové vyjádření čísla; číslo je doplněno mezerami zleva tak, aby výsledná délka řetězce byla n znaků. Číslo je zobrazeno nejméně na 2 desetinná místa |
strCislo(x,n) | převede číslo x na řetězec znaků tak, že výsledný řetězec obsahuje textové vyjádření čísla; číslo je doplněno mezerami zleva tak, aby výsledná délka řetězce byla n znaků. Číslo je zobrazeno s maximálně 6 desetinnými místy |
string(x,n) | převede číslo x na řetězec znaků tak, že výsledný řetězec obsahuje textové vyjádření čísla s n desetinnými místy |
StrFlags(P,ret,n) | vrací řetězec znaků délky n, který vznikne maskováním jednotlivých znaků řetězce ret odpovídajícími bity čísla P (vhodné pro zobrazování příznaků) |
StrW(n) | převede číslo od 0 do 65535 do dvoubytové interní podoby |
trim(ret) | odstraní z řetězce ret nadbytečné mezery |
upper(ret) | převede řetězec ret na velká písmena (včetně znaků s diakritickými znaky) |
using(ret,n) | doplní řetězec mezerami zprava tak, aby výsledný řetězec byl dlouhý n znaků |
value(ret) | převede řetězec ret na číslo; pokud se při převodu vyskytne chyba, pak je vrácena 0; funkce je identická s funkcí val |
WinFmt(ret) | naformátuje číslo uložené v řetězci ret tak, aby bylo zpracovatelné standardními programy Windows (odstraní mezery, nahradí desetinnou tečku čárkou) |
Funkce pro zpracování datumu
Parametr dat je číslo představující datum; lze ho získat funkcemi date, datevalue a now
strDate(dat) | převede datum na řetězec znaků (do tvaru DD/MM/RR) |
date(dd,mm,rrrr) | převede datum, měsíc a rok na číslo představující toto datum |
DateValue(ret) | převede řetězec tvaru DD/MM/RR na číslo představující datum; místo funkce DateValue je možné alternativně použít stejně pracující funkci DV() |
day(dat) | z čísla představujícího datum zjistí pořadové číslo dne v měsíci |
FormatDate(dat, format) | formátuje datum dle řetězce format; údaj format může obsahovat d pro den, dd pro den s případnou nulou na začátku, m pro měsíc, mm pro měsíc s případnou nulou na začátku, yy pro poslední 2 číslice z roku, yyyy pro čtyřmístné označení roku (např. „dd.mm.yyyy“). Údaj dat může být buď řetězec znaků ve formátu „den/měsíc/rok“ nebo hodnota vrácená funkcí DateValue. |
month(dat) | zjistí číslo měsíce |
now | vrací aktuální datum |
weekday(dat) | vrací pořadové číslo dne v týdnu dle anglického kalendáře (0..neděle, 1..pondělí, ...) |
year(dat) | zjistí rok z datumu dat |
Logické funkce používané při zadávání výrazů
false | vrací hodnotu 0 |
if(podm,x,y) | pokud je splněna podmínka podm (není rovna 0), pak je vrácena hodnota x, jinak je vrácena hodnota y; výrazy x a y mohou být číselného i řetězcového typu, ale typ musí v obou případech být stejný |
isNumber(p) | vrací 1 pokud je p číselného typu, jinak vrací 0 |
true | vrací hodnotu 1 |
MaskAnd(x,y) | vrací bitovou konjunkci dvou celých čísel |
MaskOr(x,y) | vrací bitovou disjunkci dvou celých čísel |