ReDim-instructie

Declareert of herdefinieert variabelen of matrixen.

Syntaxis:

Instructiediagram ReDim


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.

Fragment van primitief gegevenstype

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.

Karakterfragment van een declaratietype

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.

fragment van een matrix

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