Dim Statement
Egy változót vagy egy tömböt deklarál.
Ha a változĂłk vesszĹ‘vel vannak elválasztva (pĂ©ldául DIM sPar1, sPar2, sPar3 AS STRING), akkor csak Variant változĂłk adhatĂłk meg. Minden változĂłhoz kĂĽlön definĂciĂłs sort használjon.
Dim sPar1 As String
Dim sPar2 As String
Dim sPar3 As String
A Dim deklarálja a szubrutinokon belĂĽl a lokális változĂłkat. A globális változĂłk a PUBLIC vagy a PRIVATE utasĂtással deklarálhatĂłk.
Szintaxis:
[ReDim]Dim VáltozĂł [(kezdĂ©s To befejezĂ©s)] [As TĂpus][, VáltozĂł2 [(kezdĂ©s To befejezĂ©s)] [As TĂpus][,...]]
Paraméterek:
Változónév: Bármilyen változó- vagy tömbnév.
Kezdés, Befejezés: Numerikus értékek vagy konstansok, amelyek meghatározzák az elemszámot (ElemekSzáma=(befejezés-kezdés)+1 ), valamint az indextartományt.
A KezdĂ©s Ă©s a BefejezĂ©s numerikus kifejezĂ©s is lehet abban az esetben, ha a ReDim utasĂtást eljárási szintjĂ©n alkalmazzuk.
TĂpus: KulcsszĂł, amely egy változĂł adattĂpusát határozza meg.
KulcsszĂł: VáltozĂłtĂpus
Bool (logikai): Boolean (logikai) változó (True (igaz), False (hamis))
Currency (pénznem): Currency (pénznem) változó (pénznem 4 tizedeshellyel)
Date (dátum): Date (dátum) változó
Double (dupla pontosságú): Dupla pontosságú lebegőpontos változó (1.79769313486232 x 10E308 - 4.94065645841247 x 10E-324)
Integer (egész szám): Integer (egész szám) változó (-32768 - 32767)
Long (hosszú egész): Long integer (hosszú egész szám) (-2147483648 - 2147483647)
Objektum: Object (objektum) változĂł (MegjegyzĂ©s: ezt a változĂłt vĂ©gĂĽl csak a Set utasĂtással lehet definiálni!)
Single (egyszeres pontosságú): Egyszeres pontosságú lebegőpontos változó (3.402823 x 10E38 - 1.401298 x 10E-45).
String (karakterlánc): String (karakterlánc) változó, amely maximum 64000 ASCII-karaktert tartalmazhat.
[Variant]: Variant változĂłtĂpus (összes tĂpust tartalmazza, Ă©s a definĂciĂł határozza meg). Ha egy kulcsszĂł nincs megadva, akkor a változĂłk automatikusan Variant tĂpuskĂ©nt vannak megadva, hacsak nem a DefBooltĂłl a DefVarig terjedĹ‘ utasĂtásokat használja.
A LibreOffice Basicben nem kell explicit mĂłdon deklarálni a változĂłkat. A tömböt használat elĹ‘tt mindig deklarálni kell. Egy változĂłt a Dim utasĂtással deklarálhat, több deklaráciĂłt vesszĹ‘vel kell elválasztani. VáltozĂłtĂpus deklarálásához a nĂ©v után adja meg a tĂpusdeklaráciĂłs karaktert, vagy használja a megfelelĹ‘ kulcsszĂłt.
A LibreOffice Basic az egy- vagy többdimenziĂłs tömböket támogatja, amelyeket egy adott változĂłtĂpus definiál. A tömböket akkor Ă©rdemes használni, ha a program szerkeszteni kĂvánt listákat vagy táblázatokat tartalmaz. A tömbök elĹ‘nye, hogy az egyedi elemeket az indexekkel megcĂmezheti, amelyek numerikus kifejezĂ©sek vagy változĂłk lehetnek.
A tömbök a Dim utasĂtással vannak deklarálva. Az indextartományt kĂ©t mĂłdszerrel adhatja meg:
DIM text(20) as String ' 21 elem, 0-tól 20-ig számozva
DIM text(5 to 25) as String ' 21 elem, 5-től 25-ig számozva
DIM text(-15 to 5) as String ' 21 elem (a nullával együtt)
' -15-től 5-ig számozva
Kétdimenziós adatmező
DIM text(20,2) as String ' 63 elem, 1. szint: 0-20, 2. szint: 0-20, 3. szint: 0-20.
A tömbtĂpusokat dinamikuskĂ©nt deklarálhatja, ha a ReDim utasĂtás megadja a dimenziĂł számát a tömböt tartalmazĂł szubrutinban vagy a fĂĽggvĂ©nyben. A tömbdimenziĂłt általában csak egyszer lehet megadni, Ă©s nem lehet mĂłdosĂtani. Egy szubrutinon belĂĽl a tömböt ReDimmel deklarálhatja. A dimenziĂłkat csak numerikus kifejezĂ©sekkel definiálhatja. Ez biztosĂtja, hogy a mezĹ‘k csak olyan nagyok legyenek, amennyire szĂĽksĂ©ges.
PĂ©lda:
Sub ExampleDim1
Dim sVar As String
Dim iVar As Integer
sVar = "Office"
End Sub
Sub ExampleDim2
' Kétdimenziós adatmező
Dim stext(20,2) As String
Const sDim As String = " DimenziĂł:"
For i = 0 To 20
For ii = 0 To 2
stext(i,ii) = str(i) & sDim & str(ii)
Next ii
Next i
For i = 0 To 20
For ii = 0 To 2
MsgBox stext(i,ii)
Next ii
Next i
End Sub