Funkce používané při vyhodnocování výrazů
Z K.A.P.
Verze z 21. 11. 2008, 09:22, kterou vytvořil Greplová Alena (diskuse | příspěvky) (→Řetězcové funkce používané při zadávání výrazů)
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 |