Ukaz ReDim

Deklarira ali na novo definira spremenljivke ali polja.

Skladnja:

Diagram ukaza ReDim


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.

Fragment primitivnih vrst podatkov

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 64,000 znakov ASCII.

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.

Fragment znakov za deklaracije vrste

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.

Fragment 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

Podprite nas!