Znakové funkce a příkazy
<expC1>
$ <expC2>
Vrací
.T., jestliže první zadaný řetězec je obsažen v druhém řetězci
ALLTRIM(<expC>)
Vrací
řetězec bez počátečních a koncových mezer.
?
"abc"==ALLTRIM(" abc ")
ASC(<expC>)
Vrací
ASCII kód znaku.
Vrací
ASCII kód odpovídající prvnímu znaku řetězce <expC>.
AT(<expC1>,
<expC2> [, <expN>])
Hledá
výskyt podřetězce v jiném řetězci. Pokud je <expC1> podřetězcem v
<expC2>, vrací pozici znaku (číslování od jedničky) v <expC2>,
kde nalezený podřetězec začíná. Implicitně se hledá první výskyt podřetězce,
zadá-li se však nepovinný parametr, pak <expN>-tý výskyt. Není-li
podřetězec nalezen, vrací funkce nulu.
?
AT("AA","abcAAdeAAfAAgh",2)
ATC(<expC1>,
<expC2> [, <expN>])
Hledá
výskyt podřetězce v jiném řetězci bez rozlišování malých a velkých písmen.
Pokud je <expC1> podřetězcem v <expC2>, vrací pozici znaku (číslování
od jedničky) v <expC2>, kde nalezený podřetězec začíná. Implicitně
se hledá první výskyt podřetězce, zadá-li se však nepovinný parametr,
pak <expN>-tý výskyt. Není-li podřetězec nalezen, vrací funkce nulu.
?
ATC("xx","123XX45xx6XX78",2)
CHR(<expN>)
Vrací
znak, jehož číselný ASCII kód odpovídá hodnotě výrazu. Hodnota
<expN> může být 0 až 255.
CHRTRAN(<expC1>,
<expC2>, <expC3>)
Překládá
znaky zadaného řetězce pomocí překladové tabulky. Postupně každý znak z
řetězce <expC1> hledá v řetězci <expC2>. Nenalezne-li se
tam, zůstane nepřeložen, pokud ano, je nahrazen znakem z řetězce
<expC3> z pozice odpovídající nalezenému znaku v řetězci
<expC2>. Je-li řetězec <expC3> kratší než <expC2>, pak se
"přebytečné" znaky z <expC2> překládají jako prázdný řetězec.
Funkce vrací přeložený vstupní řetězec.
?
CHRTRAN('abcdef', 'ace', '135')
DIFFERENCE(<expC1>,
<expC2>)
Určuje
míru zvukové podobnosti dvou řetězců. Srovnává zvukovou podobnost dvou řetězců.
Vrací číslo v rozmezí 0 (zásadní rozdíl) až 4 (téměř shodné).
EVALUATE(<expC>)
Vyhodnotí
výraz a vrátí výsledek jako hodnotu odpovídajícího typu. Může být
vhodné namísto makrosubstituce.
?
EVALUATE("5*4") , EVALUATE("DATE()={21/03/91}")
ISALPHA(<expC>)
Vrací
.T., jestliže první znak řetězce je písmeno.
ISLOWER(<expC>)
Vrací
.T., jestliže první znak řetězce je malé písmeno.
ISUPPER(<expC>)
Vrací
.T., jestliže první znak řetězce je velké písmeno.
LEFT(<expC>,
<expN>)
Vrací
podřetězec zleva. Vrací prvních <expN> znaků z řetězce
<expC>. Je-li hodnota <expN> nula, vrací prázdný řetězec, je-li
větší než počet znaků <expC>, vrací celý vstupní řetězec.
LEN(<expC>)
Vrací
číslo udávající počet znaků v řetězci.
LIKE(<expC1>,
<expC2>)
Srovnává
dva znakové řetězce. První ze zadaných řetězců <expC1> může
obsahovat "divoké znaky" "?" a "*" v duchu běžných
konvencí. Funkce vrací .T., zjistí-li shodu masky <expC1> s řetězcem
<expC2>.
?
LIKE("??\*\s*", "c:\master\subdir")
LOWER(<expC>)
Převede
všechna písmena v zadaném řetězci na malá písmena.
LTRIM(<expC>)
Vrací
řetězec bez počátečních mezer.
OCCURS(<expC1>,
<expC2>)
Vrací
počet výskytů podřetězce v řetězci. Zjišťuje počet výskytů podřetězce
<expC1> v řetězci <expC2>.
?
OCCURS("AB", "abABabABabABA")
PADC(<expr>,
<expN> [, <expC>])
PADL(<expr>,
<expN> [, <expC>])
PADR(<expr>,
<expN> [, <expC>])
Rozšiřuje
výraz doplněním o specifikované znaky. PADL doplňuje znaky před výraz
<expr>, PADR za výraz, PADC výraz centruje a doplní z obou stran.
<expr> může být typu C, N, D, ale funkce vrací vždy znakový řetězec.
Hodnota <expN> zadává délku vraceného řetězce. V <expC> zadáváme
znak nebo skupinu znaků, které se budou doplňovat. Není-li <expC> zadáno,
doplňují se mezery.
PROPER(<expC>)
Upraví
slova v řetězci na vlastní jména. V zadaném řetězci každé slovo upraví
tak, že případné první písmeno slova převede na velké a další písmena
převede na malá. Oddělovače slov jsou mezery.
?
PROPER("jan amos komensky")
RAT(<expC1>,
<expC2> [, <expN>])
Hledá
výskyt podřetězce v jiném řetězci zprava. Pokud je <expC1> podřetězcem
v <expC2>, vrací pozici znaku (číslování od jedničky zleva) v
<expC2>, kde nalezený podřetězec začíná. Podřetězec se hledá od
pravého konce <expC2> směrem doleva. Implicitně se hledá první výskyt,
zadá-li se však nepovinný parametr, pak <expN>-tý výskyt. Není-li
podřetězec nalezen, vrací funkce nulu.
?
RAT("AA", "abcAAdeAAfAAgh", 2)
REPLICATE(<expC>,<expN>)
Vrací
řetězec znaků vygenerovaný opakováním zadaného řetězce. Řetězec
<expC> je opakován <expN> krát.
podtrhnuti
= REPLICATE("-",50)
RIGHT(<expC>,
<expN>)
Vrací
podřetězec zprava. Z řetězce <expC> vrací posledních <expN>
znaků. Je-li hodnota <expN> menší nebo rovna nule, vrací prázdný řetězec,
je-li větší než délka <expC>, vrací celý vstupní řetězec.
RTRIM(<expC>)
Odstraní
z řetězce koncové mezery.
SOUNDEX(<expC>)
Vrací
zvukovou reprezentaci řetězce znaků. Vrací čtveřici znaků, v níž je zakódována
zvuková reprezentace výrazu <expC>.
SPACE(<expN>)
Vrací
znakový řetězec sestavený ze zadaného počtu mezer.
STRTRAN(<expC1>,
<expC2> [, <expC3>] [, <expN1>] [, <expN2>])
Nahrazuje
výskyty podřetězce v řetězci jiným podřetězcem.
<expC1>
vstupní řetězec.
<expC2>
hledaný podřetězec.
<expC3>
podřetězec, kterým se má <expC2> nahrazovat.
<expN1>
pořadové číslo výskytu podřetězce <expC3>, od kterého má začít
nahrazování. Implicitně první výskyt.
<expN2>
počet opakování náhrad při výskytu dalších podřetězců <expC2>.
Implicitně jedno nahrazení.
?
STRTRAN("CENY JSOU V Kcs","Kcs","DM")
STUFF(<expC1>,
<expN1>, <expN2>, <expC2>)
Nahradí
podřetězec jiným nebo vloží podřetězec od zadané pozice.
<expC1>
vstupní řetězec.
<expN1>
pozice ve vstupním řetězci, od které má začít úprava.
<expN2>
počet znaků, které mají být nahrazeny. Je-li zde nula, pak se od pozice
<expN1> vkládá.
<expC2>
vkládaný řetězec, je-li zadán jako prázdný, funkce provede pouze odstranění
<expN2> znaků.
?
STUFF("abcabc", 4, 0, "-")
SUBSTR(<expC>,
<expN1> [, <expN2>])
Vrací
podřetězec zadané délky od zadané pozice. Z řetězce <expC> vybere
podřetězec počínaje pozicí <expN1>. Délku podřetězce určuje
hodnota <expN2>, implicitně až do konce řetězce.
?
SUBSTR("//texty",3)
Vrací
kontrolní součet zadaného řetězce.
TRANSFORM(<expr>,<expC>)
Formátuje
znakový řetězec pro výstup. Výraz <expr> se připraví pro výstup
naformátováním podle editačních symbolů jako ve frázi PICTURE příkazu
SAY. Editační symboly zadáme v <expC>.
TRANSFORM("abcd",
"!!XX")
TRIM(<expC>)
Odstraní
z řetězce koncové mezery.
TYPE(<expC>)
Vrací
typ výrazu jako jeden znak. Do <expC> zadáváme výraz libovolného typu
uzavřený v omezovačích. Funkce vrací jeden ze znaků C, N (i pro typ F), D,
L, M, U (nedefinovatelný typ výrazu, zejména není-li výraz syntakticky správný).
?
TYPE("dbsoub->pracoviste")
UPPER(<expC>)
Nahradí
všechna písmena v řetězci velkými písmeny.