Vsebina

# Ukaz ReDim

Deklarira ali na novo definira spremenljivke ali polja.

### Skladnja:

    ReDim [Preserve] spremenljivka [(začetek To konec)] [As ime-vrste][, spremenljivka2 [(začetek To konec)] [As ime-vrste][,...]]

Neobvezno lahko dodate ključno besedo Preserve kot parameter, tako da se pri spreminjanju dimenzij vsebina polja ohrani. ReDim lahko uporabite le v podprogramih.

### Parametri:

spremenljivka: poljubno ime za spremenljivko ali polje.

Imevrste: ključna beseda, ki definira vrsto spremenljivke.

Byte: spremenljivka vrste Byte (0-255)

Boolean: Boolova spremenljivka (True, False)

Currency: valutna spremenljivka vrste Currency v denarnih enotah (s 4 decimalnimi mesti)

Date: spremenljivka vrste Date

Double: spremenljivka v plavajoči vejici dvojne dolžine (1,79769313486232 x 10E308 - 4,94065645841247 x 10E-324)

Integer: cela spremenljivka (-32768 - 32767)

Long: dolga cela spremenljivka (-2.147.483.648 - 2.147.483.647)

Object: spremenljivka vrste Object (predmet; Opomba: to spremenljivko je mogoče definirati samo z ukazom Set!)

Single: spremenljivka v plavajoči vejici enojne dolžine (3,402823 x 10E308 - 1,401298 x 10E-45).

String: spremenljivka vrste String (niz) lahko vsebuje največ do 2.147.483.647 znakov.

Variant: spremenljivka vrste Variant (vsebuje vse vrste, navedene v definiciji). Če ključna beseda ni uporabljena, se spremenljivke samodejno obravnava kot vrste Variant, razen če program ne uporablja ukazov od DefBool do DefVar.

Object: predmete UNO (Universal Network Object) ali predmet razrednega modula ClassMpdule.

znak: poseben znak, ki deklarira vrsto podatkov spremenljivke.

V LibreOffice Basic spremenljivk ni potrebno deklarirati eksplicitno. Če pa hočete uporabiti polje, ga morate predhodno deklarirati. Spremenljivko lahko deklarirate z ukazom Dim, pri čemer z vejicami (,) ločite večkratne deklaracije med seboj. Če želite deklarirati vrsto spremenljivke, uporabite znak za vrsto deklaracije in ime za njim, ali pa ustrezno ključno besedo za vrsto.

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

matrika: deklaracija polja oz. matrike.

začetek, konec: numerične vrednosti ali konstante, ki določajo število elementov (število elementov=(konec-začetek)+1) in obseg indeksa.

začetek in konec sta lahko numerična izraza, če na ravni procedure uporabite ukaz ReDim.

LibreOffice Basic podpira polja z eno ali več dimenzijami, ki so definirati za navedeno vrsto spremenljivk. Polja so primerna pomoč pri delu v programih, ki vsebujejo sezname ali pa tabele, s katerimi želite računati. Prednost polj je v tem, da lahko vedno pridete do posameznih elementov polj s pomočjo indeksov, ki jih formulirate v obliki numeričnih izrazov ali s pomočjo spremenljivk.

Polja deklariramo z ukazom Dim. Za definicijo obsega indeksa sta na voljo dve metodi:

      Dim besedilo(20) as String ' 21 elementov, oštevilčenih od 0 do 20
      Dim vrednost(5 to 25) As Integer ' 21 vrednosti, oštevilčenih od 5 do 25
      Dim znesek(-15 to 5) As Currency '21 zneskov (ključno z 0), oštevilčenih od -15 do 5
      REM Dvodimenzionalno podatkovno polje
      Dim tabela$(20,2) ' 63 elementov; od 0 do 20 raven 1, od 0 do 20 raven 2 in od 0 do 20 raven 3.

Polje lahko deklarirate dinamično, s tem da v ukazu ReDim ukazom navedete dimenzije za podprogram ali funkcijo, ki to polje uporabljata. Na splošno lahko dimenzije za polje določite samo enkrat in jih po tem ne morete več spreminjati. Znotraj podprograma lahko polje definirate z ReDim. Dimenzije se da definirati samo z numeričnimi izrazi. Tako je zagotovljeno, da so polja samo tako velika, kot je potrebno.

## Primer:

    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