Číselná hodnota znakov
Každý znak má číselnú hodnotu v ACII tabuľke. Napríklad znak a
má číselnú
hodnotu 97.
Jazyk Basic obsahuje dva funkcie, ktoré zabezpečujú prevod medzi znakom a číselnou hodnotou.
1. príklad: Využitie funkcii pre prevod medzi znakom a číselnou hodnotou.
Sub prevod REM začiatok procedúry znak = InputBox("Zadajte znak") REM vstup od užívateľa cislo = Asc(znak) REM prevod zo znaku do číselnej podoby Print "Číselná hodnota zadaného znaku: "&cislo REM vypísanie na obrazovku cislo = InputBox("Zadajte číselnú hodnotu znaku") REM vstup od užívateľa znak = Chr(cislo) REM prevod z číselného podoby do znaku Print "Zadaná číselná hodnota je znak: "&znak REM vypísanie na obrazovku End Sub REM koniec procedúry
Výsledok:
Rozbor programu:
Funkcia Asc
prevedie znak na číselnú hodnotu,
Funkcia Chr
prevedie číselnú hodnotu na znak.
2. príklad: Ešte raz funkcia Chr
Sub prevod REM začiatok procedúry cislo1 = InputBox("Zadajte prvé číslo") REM prvý vstup od užívateľa cislo2 = InputBox("Zadajte druhé číslo") REM druhý vstup od užívateľa Print "Zadané prvé číslo: " & cislo1 & Chr(09) & "Zadane druhe číslo: "& cislo2 REM experiment s funkciou Chr End Sub REM koniec procedúry
Výsledok:
Rozbor makra:
Makro vypíše na obrazovku najprv prvý textový reťazec, potom funkcia Chr
premení hodnotu 09 na znak,
ktorý sa vykoná. Konkrétne v ASCII tabuľke číslo 09 má hodnotu
klávesa Tab.
Vlastnosti textových reťazcov
Poďme si urobiť makro, ktoré zistí pár informácii o textovom reťazci.
3. príklad: Makro, ktoré zistí niektoré informácie o reťazci
Sub vlastnostiTextovehoRetazca REM začiatok procedúry Text = InputBox("Zadajte text") REM vstup DlzkaRetazca = Len(Text) REM využitie funkcie Len MsgBox "Dlzka retazca je: " & DlzkaRetazca REM výpis PrvyZnak = Left(Text, 1) REM využitie funkcie Left MsgBox "Prvy znak v reťazci z ľava je: "& PrvyZnak PosledneZnaky = Right(Text, 3) REM využitie funkcie Right MsgBox "Posledne tri znaky v reťazci sú: "& PosledneZnaky TretiZnak = Mid(Text, 3, 1) REM využitie funkcie Mid MsgBox "Treti znak v retazci je: " & TretiZnak ciselnaHodnota = Val(Text) REM využitie funkcie Val MsgBox "Ciselna hodnota textu je: " & ciselnaHodnota End Sub REM koniec procedúry
Výsledok:
Ďalej už nechám na vás.
Rozbor makra:
V makre využívame funkcie Left
, Right
,
Mid
a Val
. Funkcia Left vyhľadáva
znaky v reťazci z ľava.
Zoberme si z makra Left(Text, 1)
, čiže prvý parameter označuje
reťazec, v ktorom bude funkcia vyhľadávať znaky a druhý parameter je číslo, ktoré udáva počet znakov,
ktoré funkcia Left
označí.
Funkcia Right
označuje znaky sprava. Význam parametrov funkcie
je rovnaký ako u funkcii Left
.
Prvý parameter vo funkcii Mid
je vstupný reťazec. Druhý
parameter je poloha prvého znaku, odkiaľ má začať funkcia označovať (ale pozor, počítanie je z ľava!). Tretím
parametrom funkcie Mid
je počet znakov, ktoré chceme označiť.
Veľmi zaujímavá je i funkcia Val
. Ona vracia
číselnú hodnotu v texte. Čo je ale záludne na tejto funkcii si ukážeme na príklade:
4. príklad: Priblíženie funkčnosti funkcie Val
Sub funkciaVal REM začiatok procedúry MsgBox Val("Dnes je krásne horúco") REM experimenty s funkciou Val MsgBox Val("25 krásnych rokov spolu") MsgBox Val("30 litrov vody a 15 kilo muky") End Sub REM koniec procedúry
Výsledok:
Rozbor makra:
V prvom riadku máme MsgBox Val("Dnes je krásne horúco")
a výsledok je nula. Funkcia Val začína z ľava a aby vrátila číslo, musia byť prvé znaky číselne.
V druhom riadku máme MsgBox Val("25
krásnych
rokov spolu")
a
výsledkom je číslo 25. V treťom riadku máme MsgBox Val("30 litrov vody a 15
kilo muky")
a zobrazí sa len číslo 30!
Akonáhle, skonči číslo, ďalej funkcia netestuje. V tomto prípade dôjde po
číslovku 0 a keďže ďalším znakom je medzerník, ukončí sa funkcia.