ReDim Statement

Määritellään muuttuja tai taulukko.

Syntaksi:

[ReDim]Dim muuttujanimi_1 [(alku1 To loppu1)] [As tyyppi_1][, muuttujanimi_2 [(alku2 To loppu2)] [As tyyppi_2][,...]]

Valinnaisesti voidaan lisätä Preserve-avainsana parametrinä säilyttämään taulukon sisältö kun sen ulottuvuuksia päivitetään.

Parametrit:

Muuttujanimi_n: mikä tahansa muuttujan tai taulukon nimi.

Alku, loppu: numeerisia arvoja tai vakioita, jotka määrittelevät alkioiden määrän (alkioiden lukumäärä=(loppu-alku)+1) ja indeksivälin.

Alku ja loppu voivat olla numeerisia lausekkeita, jos ReDim on käytössä proseduuritasolla.

Tyyppi_n: avainsana, joka määrittää muuttujan tietotyypin.

Avainsana: oletusmuuttujatyyppi

Bool: Boolen muuttuja (True, False)

Date: päivämäärämuuttuja

Double: kaksoistarkkuuden liukulukumuuttuja (itseisarvot 1,79769313486232 x 10E308 ... 4,94065645841247 x 10E-324)

Integer: kokonaislukumuuttuja (-32768 ... 32767)

Long: pitkä kokonaislukumuuttuja (-2 147 483 648 ... 2 147 483 647)

Object: objektimuuttuja (Tämä muuttaja voidaan vasta tämän esittelyn jälkeen määritellä Set-lauseella!)

[Single]: perustarkkuuden liukulukumuuttuja (itseisarvot 3,402823 x 10E38 ... 1,401298 x 10E-45). Jos avainsanaa ei ole käytetty, muuttuja määritellään single-tyyppiseksi, ellei lauseita DefBool ... DefVar ole käytetty.

String: Merkkijonomuuttuja, jossa on enintään 64,000 ASCII-merkkiä.

Variant: variant-yleismuuttujatyyppi (voi sisältää muut kaikki muut tyypit ja on asetettu oletukseksi).

LibreOffice Basicissa muuttujille ei ole pakko tehdä nimenomaista esittelyä. Taulukot on kuitenkin määriteltävä. Muuttuja voidaan määritellä Dim-lauseella. Muuttujat erotellaan pilkuin, jos niitä on useita samassa lauseessa. Tyypin määrittelemiseksi kirjoitetaan nimen perään tyypinmäärittävä kirjain tai käytetään vastaavaa avainsanaa.

LibreOffice Basic tukee yksi- ja moniulotteisia taulukkoja, jotka määritellään tietyn tyyppisiksi. Taulukkomuuttujat ovat käytännöllisiä, mikäli ohjelmassa on luetteloita tai aineistotaulukoita, joita pitää muokata. Taulukon etuna on se, että yksittäiseen alkioon voidaan viitata indeksillä, joka voidaan tuottaa numeerisesta lausekkeesta tai muuttujasta.

Taulukoiden, jotka on määritelty Dim-lauseella, indeksivälin määrittämiseen on kaksi tapaa:

DIM text(20) as String REM 21 alkiota, jotka on numeroitu 0 ... 20

DIM text(5 to 25) as String REM 21 alkiota, jotka on numeroitu 5 ... 25

DIM text(-15 to 5) as String REM 21 alkiota (indeksissä on mukana 0),

rem numeroitu -15 ... 5

Taulukot, tyypistä riippumatta, voidaan tehdä dynaamisiksi, jos niiden ulottuvuudet määritellään ReDim-lauseella proseduuritasolla aliohjelmassa tai funktiossa. Tavallisesti taulukon indeksiväli voidaan asettaa vain kerran eikä sitä voi muuttaa. Proseduurissa voidaan taulukko määritellä ReDim-lauseella käyttäen numeerisia lausekkeita taulukon indeksivälien määrittämiseen.

Esimerkki:

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