Module
Contents
Index 🔎︎

# 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