Instructie ReDim

Inhoud
Index 🔎︎

# ReDim-instructie

Declareert of herdefinieert variabelen of matrixen.

### Syntaxis:

    ReDim [Preserve] variable [(start To end)] [As type-name][, variable2 [(start To end)] [As type-name][,...]]

Voeg optioneel het trefwoord Preserve toe om de inhoud van de opnieuw gedimensioneerde matrix te behouden. ReDim kan alleen in subroutines worden gebruikt.

### Parameters:

variable: Een variabele of matrixnaam.

typename: Sleutelwoord dat het gegevenstype van een variabele aangeeft.

Byte: Bytevariabele (0-255)

Boolean: Booleaanse variabele (True, False)

Currency: Valutavariabele (Valuta met 4 decimalen)

Date: Datumvariabele

Double: Dubbele precisie drijvende-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: Objectvariabele (Let op: deze variabele kan alleen achteraf 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: Variantvariabele type (bevat alle typen, per definitie gespecificeerd). Als er geen typenaam is opgegeven, worden variabelen automatisch gedefinieerd als varianttype, tenzij een instructie van DefBool tot DefVar wordt gebruikt.

object: Universal Network object (UNO) object of ClassModule objectinstance.

char: Speciaal teken dat het gegevenstype van een variabele aangeeft.

In LibreOffice Basic hoeft u variabelen niet expliciet te declareren. U moet echter matrixen declareren voordat u ze kunt gebruiken. U kunt een variabele declareren met de Dim-instructie, door komma's (,) te gebruiken om meerdere declaraties te scheiden. Om een variabel type te declareren, voert u een type-declaratieteken in na de naam of gebruikt u een corresponderend type trefwoordnaam.

Declaration character | Variable type name
% | Integer
& | Long
! | Single
# | Double
$ | String
@ | Currency

array: Matrixdeclaratie.

start, end: Numerieke waarden of constanten die het aantal elementen definiëren (NumberElements=(end-start)+1) en het indexbereik.

start en endkunnen numerieke uitdrukkingen zijn als ReDim wordt toegepast op procedureniveau.

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.

Matrixen worden gedeclareerd met de instructie Dim. Er zijn meerdere manieren om het indexbereik te definiëren:

      Dim text(20) As String ' 21 elementen genummerd van 0 tot 20
      Dim value(5 to 25) Als geheel getal '21 waarden genummerd van 5 tot 25
      Dim amount(-15 to 5) Als valuta '21 bedragen (inclusief 0), genummerd van -15 tot 5
      REM Tweedimensionaal gegevensveld
      Dim table$(20,2) ' 63 items; van 0 tot 20 niveau 1, van 0 tot 20 niveau 2 en van 0 tot 20 niveau 3.

U kunt een matrixtype als dynamisch declareren als een ReDim-instructie het aantal dimensies definieert in de subroutine of de functie die de matrix bevat. Over het algemeen kunt u een matrixdimensie slechts één keer definiëren en kunt u deze niet wijzigen. Binnen een subroutine kunt u een matrix declareren met ReDim. U kunt dimensies alleen definiëren met numerieke uitdrukkingen. Dit zorgt ervoor dat de velden alleen zo groot zijn als nodig is.

## Voorbeeld:

    Sub ExampleRedim
        Dim iVar() As Integer, iCount As Byte
        ReDim iVar(5) As Integer
        For iCount = 1 To 5
            iVar(iCount) = iCount
        Next iCount
        ReDim iVar(10) As Integer
        For iCount = 1 To 10
            iVar(iCount) = iCount
        Next iCount
    End Sub