Dim utasítás
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