Tartalom
Index 🔎︎

# 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