Začínáme s ASP: Syntaxe VBScriptu

Dnes si řekneme více o jazyku VBScript a ukážeme si základy práce s různými typy proměnných.
Dnes si řekneme více o jazyku VBScript. VBScript je zjednodušený Visual Basic, resp. Visual Basic for Application (VBA) jak jej například známe z MS Accessu, Excelu atd.

V několika následujících bodech si přiblížíme nejdůležitější syntaxi VB, resp. rozdíly mezi VB a VBA

  • Řetězce se uvozují do uvozovek, nikoliv apostrofy
  • Datum se uvozuje mezi mřížky (#)
  • Na konci řádků se nepíší středníky, jak je tomu u PHP
  • Podobně jako PHP se nedeklaruje typ u proměnných, jsou vždy typu Variant. Záleží tedy na hodnotě, kterou poprvé hodnotě přiřadíme. Deklarace není obecně ve VBScriptu povinná, ale my ji budeme v našich skriptech pro přehlednost používat.
  • VBS není case-sensitive, tedy proměnné pokus a pOKus jsou totožné
  • Visual Basic Script neobsahuje operátor like
  • Přístup ke kolekcím není podporován znakem vykřičník (!), ale používá se zde pouze tečková konvence (.)
  • Nepodporuje příkazy spojené s GoTo a dále With … end
V našem výkladu začneme tím nejzákladnějším, a sice proměnnými:

Proměnné

Proměnná je název, který odkazuje na místo v paměti, pod nímž se ukládá hodnota. Z proměnné můžeme číst nebo do ní zapisovat. Pokud ji nedeklarujeme, má nulovou hodnotu. Malý příklad vše ozřejmí:

<HTML>
<HEAD><TITLE>Serial ASP na Zive.cz 3-1 (skalarni promenne)</TITLE></HEAD>
<BODY>
  <%
      Dim Text1, Text2
      Text1 = "Promenne jsou"
      Text2 = "opravdu promenlive,"     
      response.write (Text1)
      response.write (" ")
      response.write (Text2)
      response.write ("<BR>nebo take prazdne")
      Text2 = ""     
      response.write (Text2)

%>
</BODY>
</HTML>

V tomto jednoduchém příkladu jsme definovali pomocí příkazu Dim (dimension) dvě proměnné Text1 a Text2 a přiřadili jim hodnoty. V dalším kroku jsme vše vypsali na obrazovku a poté proměnnou Text1 vynulovali. Všimněte si, prosím, že do response.write můžeme psát HTML tagy.

Několik poznámek k názvu proměnné:

  • Musí začínat znakem, nikoliv číslicí
  • Nesmí obsahovat mezeru, jako náhradu můžeme použít znak podtržítko (_)
  • Nesmí být delší než 255 znaků
  • Musí být v definovaném bloku unikátní (viz dále)
Dotkli jsme se pojmu procedura – je to součást skriptu, která vykonává dílčí kód. Procedura je vhodná vždy, pokud víme, že se daný kód bude vykonávat častěji. Proměnné definované v proceduře jsou přístupné pouze v rámci této procedury. Na globální proměnné však můžeme přistupovat z kterékoliv části skriptu.

Pokud budeme potřebovat za běhu skriptu změnit maximální velikost pole, můžeme použít příkaz ReDim. Příkazem ReDim Preserve Den(100) změníme dynamicky velikost proměnné Den na 100. Klíčové slovo Preserve se používá v případě, že chceme zachovat obsah proměnné. Během skriptu můžeme délku vektoru proměnných měnit kolikrát chceme, ale musíme dát pozor při snižování délky, kdy logicky přijdeme o část obsahu, o kterou vektor zmenšujeme.

Při deklaraci proměnné můžeme volitelně použít klauzuli Public - veřejná proměnná. Takto definovaná proměnná bude přístupná ve všech procedurách a ve všech skriptech. Případně můžeme použít klauzuli Private, která nám definuje, že proměnná bude přístupná pouze na dané úrovni skriptu, kde byla deklarovaná. Public a Private pro nás budou aktuální, až budeme používat include soubory, tedy knihovny s funkcemi a procedurami.

Kromě skalárních proměnných podporuje VBS také proměnné vektorové. V tomto případě je deklarace obligatorní. Uvedeme si opět krátký příklad:

<HTML>
<HEAD><TITLE>Serial ASP na Zive.cz 3-2 (vektorova promenna)</TITLE></HEAD>
<BODY>
  <%
      Dim Den(7)
      Den(1) = "pondeli"
      Den(2) = "utery"
      Den(3) = "streda"
      Den(4) = "ctvrtek"
      Den(5) = "patek"
      Den(6) = "sobota"
      Den(7) = "nedele"

      response.write ("Sesty den v tydnu je <B>")
      response.write (den(6))
      response.write ("</B>")
  %>
</BODY>
</HTML>

Přestože VBS nemá deklarace typu proměnných, uvedeme si nejdůležitější typy, se kterými se můžeme setkat.

Typ proměnné Popis Délka proměnné Příklad
Integer Celé číslo -2(15 ... +215 –1 -21
Long Dlouhé reálné číslo -231 ... +231 –1 2,4784
Single Reálné číslo s jednoduchou přesností -/+1,4*1045 ...

-/+ 3,4*1038

-254454515,44
Double Reálné číslo s dvojitou přesností -/+1,7*10308 ...

-/+ 4,9*10324

dtto
Date datum 1.1.100 – 31.12.9999 #01.11.2001#
String Řetězec (text) max 241 znaků "ahoj"
Boolean Pravda/nepravda True nebo false True
Byte bajt 0- 28 255
Variant cokoliv - -
Array Pole - Den(1)
-/+ znamená že totéž platí jak pro záporná, tak pro kladná čísla

Nyní pár tipů:

Výpis jednotlivé proměnné nemusíme vykonávat pomocí response.write, ale můžeme použít zkrácený výpis. To využijeme především v případě, kdy vkládáme více ASP tagů v HTML kódu. Krátký příklad:

<HTML>
<HEAD><TITLE>Serial ASP na Zive.cz 3-3 (zjednoduseny vypis promenne)</TITLE></HEAD>
<BODY>
  <%
    Dim Popis
    Popis = "Active server pages"
  %>
ASP znamena <B><%=Popis%></B>
</BODY>
</HTML>

V předchozích skriptech jsme používali response.write pouze pro vypsání jedné proměnné nebo řetězce. VBscript však umožňuje efektivnější výpis. Následující příkaz vykoná tři poslední řádky druhého příkladu:

Response.write ("Sesty den v tydnu je <B>" & Den(6) & "</B>")

Místo operátoru & bychom mohli také teoretiky použít operátor plus (+), ale proměnná Den obsahuje text. Operátor & je určen pro textové operace, zatímco plus je operátor numerický. V tomto případě bude fungovat i plus, ale zvykněme si prosím na dodržování jistých programátorských konvencí, jejichž ctěním můžeme dosáhnout profesionality.

O operátorech si řekneme něco více v další části.

Konstanty

Často se nám může v ASP stát, že budeme používat jakousi proměnnou, která se nebude během skriptu měnit. Může to být například chybová hláška. Pro takovýto případ disponuje VBS konstantami. Jedná se vlastně stále o proměnnou, kterou ovšem nedefinujeme a nepřiřazujeme jí hodnotu ve dvou krocích, ale vše se děje již při deklaraci. Deklarace proměnné se provádí příkazem Const. Například chceme-li definovat konstantu obsahující chybovou hlášku o neúspěšném přihlášení, použijeme

Const Login = "<CENTER><B>Chyba při přihlášení</B><br>Zadejte prosím heslo znovu</CENTER>"

S konstantou pracujeme jako s proměnnou, ale nesmíme jí přiřadit hodnotu. Podobně jako u proměnné můžeme použít klauzule Private nebo Public.

Diskuze (2) Další článek: Tiskneme digitální fotografie - termosublimační tisk

Témata článku: , , , , , , , , , , , , , ,