Instructie ReDim

Declareert of herdefinieert variabelen en matrixen.

Syntaxis:

Diagram instructie ReDim


ReDim [Preserve] variabele [(start aan einde)] [As type-name][, variabele2 [(start aan einde)] [As type-name][,...]]

Voeg eventueel Preserve toe om de inhoud van de matrix te bewaren bij het aanpassen van de dimensies. ReDim kan alleen in subroutines worden gebruikt.

Parameters:

variable: Een variabele of matrixnaam.

typename: Sleutelwoord waarmee het type van de variabele wordt aangegeven.

Fragment van primitief gegevenstype

Byte: Byte variabele (0-255)

Boolean: Booleaanse variabele (True, False)

Currency: Currency variabele (Valuta met 4 decimalen)

Date: Datumvariabele

Double: Double-precision floating-point variabele (1,79769313486232 x 10E308 - 4,94065645841247 x 10E-324)

Integer: Integer-variabele (-32768 - 32767)

Long: Een variabele met het type Long (-2.147.483.648 - 2.147.483.647)

Object: Object variabele (NB: deze kan vervolgens worden gedefinieerd met Set!)

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

String: Tekenreeksvariabele bestaande uit maximaal 2.147.483.647 tekens.

Variant: Variant variabele (bevat alle types, specificatie bij definitie). Als er geen typenaam is gespecificeerd dan is het type automatisch Variant, behalve als een instructie van DefBool - DefVar is gebruikt.

object: UNO-object of instantie object ClassModule.

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

Tekens voor aangeven type bij declaratie

In LibreOffice Basic hoeft u niet expliciet variabelen te definiëren. U moet echter wel een matrix voor gebruik declareren. U kunt met Dim een variabele declareren, gebruik komma's (,) om meerdere declaraties te scheiden. Om het type aan te geven dient u een teken na de de naam toe te voegen of het overeenkomende sleutelwoord voor het type te gebruiken.

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 ((end-start)+1) en het bereik van de index aangeven.

start en end kunnen numerieke expressies zijn als ReDim op het niveau van de procedure wordt gebruikt.

LibreOffice BASIC ondersteunt eendimensionale en 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 Dim. Het bereik van de index kan op meerdere manieren worden aangegeven:


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

U kunt het type van een matrix dynamisch declareren als een ReDim het aantal dimensies in de subroutine of de functie met de matrix, definieert. In het algemeen kunt u een dimensie van een matrix maar een keer definiëren en kunt u dat daarna niet meer wijzigen. In een subroutine kunt u een matrix declareren met ReDim. U kunt voor de dimensie alleen numerieke waarden of numerieke expressies gebruiken. Zo kunnen de velden zo groot als noodzakelijk worden gemaakt.

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

Help ons, alstublieft!