Edukiak

# ReDim instrukzioa

Aldagaiak edo matrizeak deklaratzen edo berriro definitzen ditu.

### Sintaxia:

    ReDim [Preserve] aldagaia [(start To end)] [As motaizena][, aldagaia2 [(start To end)] [As tipoizena][,...]]

Aukeran, gehitu Preserve gako-hitza dimentsioa aldatuko zaion matrizearen edukiak mantentzeko. ReDim instrukzioa azpierrutinetan soilik erabili daiteke.

### Parametroak:

aldagaia: Edozein aldagairen edo matrizeren izena.

tipoizena: Aldagai baten datu mota deklaratzen duen gako-hitza.

Byte: Byte motako aldagaia (0-255)

Boolean: Aldagai boolearra (True, False)

Currency: Moneta motako aldagaia (moneta 4 dezimalekin)

Date: data-aldagaia

Double: Doitasun bikoitzeko koma mugikorreko aldagaia (1,79769313486232 x 10E308 - 4,94065645841247 x 10E-324)

Integer: osoko aldagaia (-32768 - 32767)

Long: osoko aldagai luzea (-2.147.483.648 - 2.147.483.647)

Object: Objektu motako aldagaia (Oharra: Aldagai hau Set bidez soilik definitu daiteke!)

Single: doitasun bakuneko koma mugikorraren aldagaia (3,402823 x 10E38 - 1,401298 x 10E-45).

String: gehienez 64.000 ASCII karaktere dituen kate-aldagaia.

Variant: Variant motako aldagaia (mota guztiak ditu, definizioaren arabera zehaztuak). Mota baten izena zehazten ez bada, aldagaiak automatikoki Variant motakoak direla definituko da, DefBool eta DefVar arteko instrukzio bat erabiltzen bada salbu.

object: Universal Network object (UNO) objektua edo ClassModule objektu-instantzia.

char: Aldagai baten datu mota deklaratzen duen karaktere berezia.

LibreOffice Basic lengoaian ez dira aldagaiak esplizituki deklaratu behar. Hala ere, matrizeak deklaratu behar dira haiek erabili baino lehen. Dim instrukzioa erabilita deklaratu daitezke aldagaiak, komak (,) erabilita deklarazio anitz banatzeko. Aldagai mota bat deklaratzeko, sartu mota-deklarazioko karaktere bat eta haren ondoren izen bat, edo erabili hari dagokion motaren gako-hitz baten izena.

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

matrizea: Matrize-deklarazioa.

hasiera, amaiera: Zenbakizko balioak edo konstanteak, elementu kopurua (ElementuKopurua=(amaiera-hasiera)+1) eta indize-barrutia definitzen dituztenak.

hasiera eta amaiera zenbakizko adierazpenak izan daitezke ReDim prozedura-mailan aplikatzen bada.

LibreOffice Basic-ek array bakunak edo anizkoitzak erabiltzen ditu, eta array horiek aldagai mota jakin batek zehazten ditu. Matrizeak egokiak dira programak editatu beharreko zerrendak edo taulak baditu. Matrizeen abantaila da elementu indibidualak indizeak kontuan hartuta helbideratu daitezkeela, eta horiek zenbakizko adierazpen edo aldagai gisa zehaztu daitezke.

Matrizeak Dim instrukzioarekin deklaratzen dira. Indize-barrutia definitzeko modu anitz dago:

      Dim text(20) As String ' 21 elementu, 0 eta 20 arteko zenbakiak dituztenak
      Dim value(5 to 25) As Integer ' 21 balio, 5 eta 25 arteko zenbakiak dituztenak
      Dim amount(-15 to 5) As Currency ' 21 kantitate (0 barne), -15 eta 5 arteko zenbakiak dituztenak
      REM Bi dimentsiotako datu-eremua
      Dim table$(20,2) ' 63 elementu; 0 eta 20 artekoak 1. mailan, 0 eta 20 artekoak 2. mailan eta 0 eta 20 artekoak 3. mailan.

Matrize mota bat dinamiko modura deklaratu daiteke ReDim instrukzio batek matrizea duen azpierrutinaren edo funtzioaren dimentsio kopurua definitzen badu. Oro har, matrize-dimentsio bat behin bakarrik definitu daiteke, eta gero ezin da aldatu. Azpierrutina baten barruan, ReDim erabili daiteke matrize bat deklaratzeko. Dimentsioak zenbakizko adierazpenekin soilik definitu daitezke. Horrek ziurtatzen du eremuak ez direla beharrezkoa dena baino handiagoak.

## Adibidea:

    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