Instructie Dim

Module
Inhoud
Index 🔎︎

# Dim-instructie

Declareert een variabele of een matrix.

Als de variabelen zijn gescheiden door een komma (bijv. DIM sPar1, sPar2, sPar3 AS STRING), kunnen alleen Variant-variabelen worden gedefinieerd. Een eigen definitieregel moet worden gebruikt voor iedere variabele.

    Dim sPar1 As String

    Dim sPar2 As String

    Dim sPar3 As String

Dim wordt gebruikt om lokale variabelen binnen Subs te declareren. Globale variabelen buiten Subs worden gedeclareerd met de PUBLIC- of PRIVATE-instructie.

## Syntaxis:

    [ReDim]Dim VarNaam [(Start To Einde)] [As VarType][, VarNaam2 [(Start To Einde)] [As VarType][,...]]

## Parameters:

VarNaam: Elke variabele of matrix-naam.

Start, Einde: Numerieke waarden of constanten die het aantal elementen (AantalElementen=(einde-start)+1) en het indexbereik definiëren.

Start en Einde kunnen numerieke expressies zijn als ReDim wordt toegepast op het procedureniveau.

VarType: Sleutelwoord gebruikt om het gegevenstype van een variabele te declareren.

Sleutelwoord: Type variabele

Bool: Booleaanse variabele (True, False) (Waar, Onwaar)

Currency: Valutavariable (Valuta met 4 cijfers achter de komma)

Date: Datumvariabele

Double: Double-precisie zwevende-kommavariabele (1,79769313486232 x 10E308 - 4,94065645841247 x 10E-324)

Integer: Integer-variabele (-32768 - 32767)

Long: Long Integer-variabele (-2.147.483.648 - 2.147.483.647)

Object: Object-variabele (Opm: kan vervolgens alleen worden gedefinieerd met Set!)

Single: Single-precisie zwevende-kommavariabele (3,402823 x 10E38 - 1,401298 x 10E-45).

String: String-variabele bestaande uit een maximum van 64.000 ASCII tekens.

[Variant]: Variant-variabelentype (omvat alle typen, gespecificeerd door definitie). Als er geen sleutelwoord wordt gegeven, worden variabelen automatisch gedefinieerd als Variant-type, tenzij een instructie tussen DefBool en DefVar is gebruikt.

In LibreOffice BASIC behoeven variabelen niet expliciet te worden gedeclareerd. Alleen arrays moeten worden gedeclareerd vóór het gebruik. Een variabele kan worden gedeclareerd met de Dim-instructie, waarbij meervoudige declaraties door komma's van elkaar gescheiden worden. Teneinde een type variabele te declareren toetst u een typedeclaratie-teken in gevolgd door de naam of gebruikt u een overeenkomstig sleutelwoord.

LibreOffice BASIC ondersteunt één-dimensionale of multi-dimensionele arrays, gedefinieerd door een gespecificeerd type variabele. Arrays zijn geschikt als het programma overzichten bevat of tabellen die moeten worden bewerkt. Het voordeel van arrays is dat het mogelijk is om individuele elementen volgens indices te adresseren, die kunnen worden geformuleerd als numerieke expressies of variabelen.

Arrays worden gedeclareerd met de Dim-instructie. Er zijn twee methoden om het indexbereik te definiëren:

DIM tekst(20) as String REM 21 elementen genummerd van 0 tot 20

DIM tekst(5 to 25) as String REM 21 elementen genummerd van 5 tot 25

DIM tekst(-15 to 5) as String REM 21 elementen (waaronder 0)

REM genummerd van -15 tot 5

Twee-dimensioneel gegevensveld

Dim tekst(20,2) as String Rem 63 elementen; van 0 tot 20 op niveau 1, van 0 tot 20 op niveau 2 en van 0 tot 20 op niveau 3.

Alle array-typen kunnen dynamisch worden gedeclareerd als de ReDim-instructie wordt gebruikt binnen de procedure (in Subs of Functies) om het aantal afmetingen te definiëren. Over het algemeen kunnen array-afmetingen maar één keer worden gedefinieerd en kunnen vervolgens niet worden gewijzigd. Binnen een procedure kan een array worden gedeclareerd met ReDim. Afmetingen kunnen alleen worden gedefinieerd met numerieke expressies. Dit zorgt er voor dat de velden niet groter zijn dan nodig is.

## Voorbeeld:

    Sub ExampleDim1

    Dim sVar As String

    Dim iVar As Integer

        sVar = "Office"

    End Sub

    Sub ExampleDim2

    ' Twee-dimensioneel gegevensveld

    Dim stext(20,2) As String

    Const sDim As String = " Dimensie:"

    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