_Check

(    StrIn  : String;
     Mode   : Byte;
 dim StrErr : String) : Byte

Provádí kontrolu vstupního řetězce StrIn. Parametr Mode definuje, o jakou kontrolu půjde. Jestliže kontrola dopadně dobře, vrací funkce TRUE. Jinak vrací FALSE a textový řetězec popisující chybu StrErr .

Číslo Konstanta Popis
0 chkICO

Kontroluje IČO

  • Je-li počet znaků 8
  • Jsou-li všechny znaky čísla
  • Porovnání výsledků s modulo 11
1 chkDIC

Kontroluje DIČ

  • Je-li počet znaků 10 až 14 (včetně)
  • Jsou-li všechny znaky od 2 pozice čísla
2 chkPSC

Kontroluje PSČ

  • Je-li počet znaků 6
  • Jsou-li první 3 a poslední 2 znaky číselné
3 chkUcet

Kontroluje bankovní účet

  • Provádí se kontrola podle standardů SIS
4 chkKS

Kontroluje KS

  • Je-li počet znaků 1 až 10 (včetně)
  • Jsou-li všechny znaky čísla
5 chkSS

Kontroluje SS

  • Nepřesahuje-li délka 10 znaků (může být 0)
  • Jsou-li všechny znaky čísla nebo existuje povolený řetězec
  • Povolené řetězce (nezáleží na velikosti):
    • MMRR
    • MMRRRR
    • RRMM
    • RRRRMM
    • RR
    • RRRR
    • MM
    • ICO
    • RC
6 chkVS

Kontroluje VS

  • Jako u chkSS
7 chkRC

Kontroluje rodné číslo

  • Provádí se kontrola podle standardů SIS
8 chkKBnk

Kontroluje kód banky

  • Je-li počet znaků 4 až 7 (včetně)
9 chkRC1

Kontroluje rodné číslo - důslednější kontrola, lze používat 'xxxx' za lomítkem, rodné číslo nesmí být prázdné. Kontrola se provádí podle standardů SIS.

Ať už kontrola dopadne dobře či nikoliv, lze z  dynamických globálních proměnných přečíst jestli se jedná o muže či ženu a datum narození:

  • Pohlaví = '#$_JeMuz'
  • Datum narození = '#$_DatNar'

Datum narození je v případě neexistujícího datumu nulový

 

10 chkEMail Kontroluje správnost jednoho nebo více eMailu. V případě více eMailů, musí být odděleny středníkem! Kontrola probíhá podle regulárního výrazu:
^[-!#$%&\'*+\./0-9=?A-Z^_`a-z{|}~]+@[-!#$%&\'*+\/0-9=?A-Z^_`a-z{|}~]+\.[-!#$%&\'*+\./0-9=?A-Z^_`a-z{|}~]+$
Prázdný eMail je chybou! Kontrolu jednoho eMailu lze vykonat i pomocí funkce _RegEx.

Podívejte se na: Systémové funkce

Příklady:

dim S : String;
if _Check("16191986", chkICO, S) then
    ...
endif
{ Test eMailu u všech aktivních zaměstnanců }
procedure Kontrola_Podle_Check
    dim strErr : String;
    dim strRC : String;
    dim nCnt : Longint;
	
    nCnt := 0;
    _StartDB(dbtO);
    repeat
        strRC := O[55];
        if(strRC <> "")then
            if(_Check(strRC, chkEmail, strErr) = false)then
                Trace(O[oJmeno], " '", strRC , "'");
            endif
        else
            Trace(O[oJmeno], " 'prázdný'");
        endif		
        printup(nCnt, " ", O[oJmeno]);
        _Inc(nCnt);
    until _StepRec(dbtO, true) = false;
endproc