Sun Microsystems
Termékek
 
Támogatás
 
 

Előző Előző     Tartalom     Tárgymutató     Következő Következő

Változók tartalmának vizsgálata

Előfordulhat, hogy a dátumot nem lehet konvertálni:

Dim A As String

Dim B As Date



A = "teszt"

B = A            ' Hibaüzenet jelenik meg.

A példában a teszt karakterlánc dátumváltozóhoz rendelésének nincs értelme, ezért a Basic-elemző hibaüzenetet jelenít meg. Ugyanez történik, ha megpróbálunk karakterláncot rendelni egy logikai változóhoz:

Dim A As String

Dim B As Boolean



A = "teszt"

B = A            ' Hibaüzenet jelenik meg.

A Basic-elemző ismét hibaüzenetet jelenít meg.

Ezek a hibaüzenetek elkerülhetők, ha a program ellenőrzi értékadás előtt a változókat, hogy a hozzárendelendő változó típusa megegyezik-e a célváltozó típusával. A StarOffice Basic ebből a célból a következő tesztelő függvényeket biztosítja:

  • IsNumeric(érték) - ellenőrzi, hogy az érték szám-e.

  • IsDate(érték) - ellenőrzi, hogy az érték dátum-e.

  • IsArray(érték) - ellenőrzi, hogy az érték tömb-e.

Ezek a függvények különösen akkor hasznosak, ha a felhasználó által beírt értékeket ellenőrizzük. Például ellenőrizhetjük, hogy a felhasználó érvényes számot vagy dátumot írt-e be.

If IsNumeric(BeolvasottErtek) Then

   ErvenyesErtek = BeolvasottErtek

Else

   ErvenyesErtek = 0

   MsgBox "Hibaüzenet"

End If

Az előző példában, ha a BeolvasottErtek változó érvényes numerikus adatot tartalmaz, akkor a program hozzárendeli az értékét az ErvenyesErtek változóhoz. Ha a BeolvasottErtek nem tartalmaz érvényes számot, akkor az ErvenyesErtek értéke 0 lesz, és a program hibaüzenetet ír ki.

Míg a számok, dátumok és tömbök ellenőrzéséhez rendelkezésünkre áll beépített függvény a StarOffice Basic programban, addig a logikai értékekhez nincs ilyen. Viszont ezt megtehetjük az alábbi IsBoolean függvénnyel:

Function IsBoolean(Value As Variant) As Boolean

   On Error Goto Hibakezelo:

   Dim Proba As Boolean



   Proba = Value



   IsBoolean = True

   On Error Goto 0

Exit Sub



Hibakezelo:

   IsBoolean = False

   On Error Goto 0

End Function

Az IsBoolean függvény definiál egy belső Proba nevű logikai segédváltozót, és megpróbálja hozzárendelni a kapott értéket. HA ez sikeres volt, akkor a függvény True (igaz) értéket ad vissza. Ha nem volt sikeres, akkor futásidejű hiba lép fel, amelyet kezel a program, és hibát ad vissza.


Megjegyzés - Ha egy karakterlánc a StarOffice Basic programban nem numerikus értéket tartalmaz, és azt egy számhoz rendeljük, a StarOffice Basic nem jelenít meg hibaüzenetet, hanem az adott változóhoz a 0 értéket rendeli. Ez a VBA-ban másképp van. Ott hiba történik, és a program futása megszakad, ha ilyen hozzárendelést végzünk.


Karakterláncok

Karakterkészletekkel végzett munka

Karakterláncok kezelésénél a StarOffice Basic a Unicode karakterkészletet használja. Az Asc és a Chr függvénnyel megállapítható egy karakter Unicode-értéke és/vagy megállapítható egy Unicode-érték karaktere. A következő kifejezések különböző Unicode-értékeket rendelnek a Kod változóhoz:

Kod = Asc("A")		' Latin A betű (Unicode-érték: 65)

Kod = Asc("--")		' Euró-karakter (Unicode-érték: 8364)

Kod = Asc("??")		' Cirill ?? betű (Unicode-érték: 1083)

Ennek megfelelően a

SajatKarakterlanc = Chr(13)

kifejezés a SajatKarakterlanc változóhoz a 13-as karaktert rendeli, amely a sortörés kódja.

A Chr parancsot gyakran használják Basic-programokban vezérlőkarakterek karakterláncokba történő beszúrásához. A

SajatKarakterlanc = Chr(9) + "Ez egy teszt." + Chr(13)

kifejezésben a szöveget egy tabulátorkarakter (Unicode-érték: 9) előzi meg, és egy sortörés (Unicode-érték: 13) lesz utána.

Hozzáférés a karakterlánc részeihez

A StarOffice Basic négy függvényt biztosít a karakterláncok részeinek kezeléséhez:

  • Left(Karakterlánc, Hossz) - visszaadja a Karakterlánc első Hossz karakterét.

  • Right(Karakterlánc, Hossz) - visszaadja a Karakterlánc utolsó Hossz karakterét.

  • Mid(Karakterlánc, Kezdet, Hossz) - visszaadja a Karakterlánc Hossz karakterét a Kezdet pozíciótól.

  • Len(Karakterlánc) - visszaadja a Karakterlánc karaktereinek számát.

Az előbb említett függvényekre láthatunk példát az alábbiakban:

Dim MyString As String

Dim MyResult As String

Dim MyLen As Integer



MyString = "Ez egy teszt"



MyResult = Left(MyString,5)      ' Az "Ez egy" karakterláncot adja vissza.

MyResult = Right(MyString, 5)    ' A "teszt" karakterláncot adja vissza.

MyResult = Mid(MyString, 4, 5)   ' Az " egy t" karakterláncot adja vissza.

MyLen = Len(MyString)            ' A 21-et adja vissza.

Előző Előző     Tartalom     Tárgymutató     Következő Következő