Při programování nejen web aplikací je často potřeba znát, jaký typ dat obsahuje proměnná, se kterou se právě chystáme provádět nějaké operace. Při pokusu o provedení operace s datovým typem, který dané funkce nepodporuje, může dojít i k havárii celého programu. V tomto článku si ukážeme, jak se tomuto jevu úspěšně bránit.

Visual Basic Script používá pouze jeden datový typ a to sice typ Variant, který „zastřešuje“ jednotlivé podtypy. Až do vložení hodnoty (na rozdíl od klasického Visual Basicu či C++) do proměnné není známo, jakého podtypu vlastně proměnná bude. V okamžiku, kdy do proměnné vložíte něco jiného, je automaticky měněn podtyp podle toho, co jste do proměnné vložili. Důsledkem této vlastnosti jediného datového typu Variant je to, že musíte jako programátor důsledně kontrolovat to, jaký podtyp je v proměnné právě v okamžiku, kdy chcete s proměnnou provést nějakou operaci.

IsNumeric

Funkce IsNumeric přebírá jako svůj parametr proměnnou u které chceme určit datový typ. Jako výsledek své činnosti vrací True nebo False podle toho zda testovaná proměnná je typu Numeric či nikoliv.

Syntaxe:

IsNumeric(proměnná)

Příklad:

Dim MyVar, MyCheck
MyVar = 53‚Přiřazení hodnoty.
MyCheck = IsNumeric(MyVar)‚Funkce vrací True.
MyVar = „459.95“‚Přiřazení hodnoty..
MyCheck = IsNumeric(MyVar)‚Funkce vrací True.
MyVar = „45 Help“‚Přiřazení hodnoty.
MyCheck = IsNumeric(MyVar)‚Funkce vrací False.

V příkladech jsem vám názorně ukázal jak se funkce IsNumeric chová při testování různých hodnot.

IsArray

Funkce IsArray vrací True v případě, že testovaná proměnná obsahuje pole nebo False v případě, že pole neobsahuje.

Syntaxe:

IsArray(proměnná)

Příklad:

Dim MyVariable
Dim MyArray(3)
MyArray(0) = „Pondělí“
MyArray(1) = „Úterý“
MyArray(2) = „Středa“
MyVariable = IsArray(MyArray) ‚Funkce vrací True.

V tomto příkladu jsem vám předvedl, jak se funkce IsArray chová při testování pole. Pokud bychom testovali něco jiného než pole, tak nám funkce IsArray vrátí false.

IsDate

Funkce IsDate slouží ke zjistění, zda lze hodnotu uloženou v proměnné převést na datum nebo čas.

Syntaxe:

IsDate(proměnná)

Příklad:

Dim MyDate, YourDate, NoDate, MyCheck
MyDate = „October 19, 1962“
YourDate = #10/19/62#
NoDate = „Hello“
MyCheck = IsDate(MyDate) ‚Funkce vrací True.
MyCheck = IsDate(YourDate) ‚Funkce vrací True.
MyCheck = IsDate(NoDate) ‚Funkce vrací False.

V tomto příkladu jsou tři různé proměnné naplněny hodnotami. ProměnnáMyDate obsahuje řetězec převeditelný na datum a proměnná YourDate obsahuje přímo datum. Protikladem je proměnná NoDate, která obsahuje řetězec, jenž se nedá interpretovat jako datum. Výsledek testování pomocí funkce IsDate je uveden v kometářích uvnitř příkladu.

IsObject

Funkce vrací true v případě, že proměnná obsahuje odkaz na platný objekt vytvořený pomocí server.createobject nebo pomocí createobject.

Syntaxe:

IsObject(proměnná)

Příklad:

Dim MyInt, MyCheck, MyObject
Set MyObject = server.CreateObject(„ADODB.Connection“)
MyInt = 12
MyCheck = IsObject(MyObject)‚Funkce vrací True.
MyCheck = IsObject(MyInt)‚Funkce vrací False.

V příkladu jsou provedeny testy dvou proměnných, ale pouze v jedné je uveden odkaz na objekt. Hodnoty, které jsou výsledkem testování, jsou uvedeny v komentářích uvnitř příkladu.

IsNull

Funkce IsNull vrací True v případě, že proměnná neobsahuje Null nebo platná data.

Syntaxe:

IsNull(proměnná)

Příklad:

Dim MyVar, MyCheck
MyCheck = IsNull(MyVar) ‚Funkce vrací False.
MyVar = Null ‚Přiřazení Null.
MyCheck = IsNull(MyVar) ‚Funkce vrací True.
MyVar = Empty ‚Přiřazení Empty.
MyCheck = IsNull(MyVar) ‚Funkce vrací False.

IsEmpty

Funkce IsEmpty vrací True v případě, že proměnná byla inicializována (byla do ní vložena nějaká hodnota).

Syntaxe:

IsEmpty(proměnná)

Příklad:

Dim MyVar, MyCheck
MyCheck = IsEmpty(MyVar) ‚Funkce vrací True.
MyVar = Null ‚Přiřazení Null.
MyCheck = IsEmpty(MyVar) ‚Funkce vrací False.
MyVar = Empty ‚Přiřazení Empty.
MyCheck = IsEmpty(MyVar) ‚Funkce vrací True.

Pozor na záměnu Null a Empty. Pokud do proměnné vložíte Null proměnná je inicializována a funkce IsEmty vrací False. Rovněž je třeba si uvědomit, že řetězec nulové délky není totéž co Null. Null znamená to, že v proměnné jsou neplatná data, řetězec o nulové délce naopak platná data obsahuje.

Abych dokončil výčet funkcí musím se zmínit o funkcích VarType a TypeName, které poskytují naprosto vyčerpávající informace o obsahu proměnné, ale o tom až někdy příště.

Starší komentáře ke článku

Pokud máte zájem o starší komentáře k tomuto článku, naleznete je zde.

Žádný příspěvek v diskuzi

Odpovědět