Expressió ReDim

Declara una variable o una matriu.

Sintaxi:


[ReDim]Dim VarName [(start To end)] [As VarType][, VarName2 [(start To end)] [As VarType][,...]]

Opcionalment, podeu afegir la paraula clau Preserve com a paràmetre per conservar el contingut de la matriu que es redimensiona.

Paràmetres:

VarName: Qualsevol nom de variable o de matriu.

Start, End: Valors numèrics o constants que defineixen el nombre d'elements (NombreElements=(fi-inici)+1) i l'interval d'índex.

Start i End poden ser expressions numèriques si ReDim s'utilitza al nivell de procediment.

VarType: Paraula clau que declara el tipus de dades d'una variable.

Paraula clau: Tipus de variable

Bool: Variable booleana (Cert, Fals)

Data: Variable de data

Double: Variable de coma flotant doble (1.79769313486232x10E308 - 4.94065645841247x10E-324)

Integer: Variable d'enter (-32768 - 32767)

Llarg: Variable d'enter llarga (-2,147,483,648 - 2,147,483,647)

Object: Variable Object (només es pot definir posteriorment amb Set!)

[Single]: Variable de coma flotant senzilla (3,402823x10E38 - 1,401298x10E-45). Si no s'especifica cap paraula clau, una variable es defineix com a senzilla, a menys que s'utilitze una expressió de DefBool a DefVar.

Cadena: Variable de cadena que consta d'un màxim de 64.000 caràcters ASCII.

Variant: Tipus de variable de variant (pot contindre tots els tipus i s'estableix per definició).

Al LibreOffice Basic no cal que declareu les variables explícitament. No obstant això, cal que declareu una matriu abans de poder utilitzar-les. Podeu declarar una variable amb l'expressió Dim, fent servir comes per separar múltiples declaracions. Per declarar un tipus de variable, introduïu un caràcter de declaració de tipus després del nom, o utilitzeu la paraula clau corresponent.

El LibreOffice Basic admet matrius de dimensió senzilla o múltiple que es defineixen amb un tipus de variable especificat. Les matrius són adequades si el programa conté llistes o taules que voleu editar. L'avantatge de les matrius és que és possible adreçar elements individuals segons els índexs, que es poden formular com a expressions numèriques o variables.

Existeixen dues maneres de definir l'interval d'índexs per a matrius declarades amb l'expressió Dim:

DIM text(20) As String REM 21 elements numerats de 0 a 20

DIM text(5 to 25) As String REM 21 elements numerats del 5 al 25

DIM text$(-15 to 5) As String REM 21 elements (0 inclòs),

rem numbered from -15 to 5

Els camps de variable, independentment del tipus, poden convertir-se en dinàmics si es dimensionen amb ReDim al nivell de procediment en subrutines o funcions. Normalment, només podeu establir l'interval d'una matriu un cop i no podeu modificar-lo. Dins d'un procediment, podeu declarar una matriu amb l'expressió ReDim amb expressions numèriques per definir l'interval de les mides del camp.

Exemple:


Sub ExampleRedim
Dim iVar() As Integer, iCount As Integer
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

Ens cal la vostra ajuda!