ReDim Statement
Egy változót vagy egy tömböt deklarál.
Szintaxis:
[ReDim]Dim Változó [(kezdés To befejezés)] [As Típus][, Változó2 [(kezdés To befejezés)] [As Típus][,...]]
Ha szükség van rá, az újradimenzionált tömbhöz paraméterként megadhatja a Preserve kulcsszót a tömb tartalmának megőrzéséhez.
Paraméterek:
Változónév: Bármilyen változó- vagy tömbnév.
Kezdés, Befejezés: Numerikus értékek vagy konstansok, amelyek meghatározzák az elemszámot (ElemekSzáma=(befejezés-kezdés)+1 ), valamint az indextartományt.
Ha a ReDim utasítást eljárásszinten használja, akkor a Kezdés és a Befejezés csak numerikus kifejezés lehet.
Típus: Kulcsszó, amely egy változó adattípusát határozza meg.
Kulcsszó: Változótípus
Bool (logikai): Boolean (logikai) változó (True (igaz), False (hamis))
Date (dátum): Date (dátum) változó
Double (dupla pontosságú): Dupla pontosságú lebegőpontos változó (1.79769313486232x10E308 - 4.94065645841247x10E-324)
Integer (egész szám): Integer (egész szám) változó (-32768 - 32767)
Long (hosszú egész): Long integer (hosszú egész szám) (-2147483648 - 2147483647)
Object (objektum): Object (objektum) változó (csak a Set utasítással lehet definiálni!)
[Single (egyszeres pontosságú]: Egyszeres pontosságú lebegőpontos változó (3.402823x10E38 - 1.401298x10E-45). Ha nincs kulcsszó megadva, akkor a változó single (egyszeres pontosságú) típusúként lesz definiálva, hacsak nem használja a DefBooltól DefVarig terjedő utasítások egyikét.
String (karakterlánc): String (karakterlánc) változó, amely maximum 64000 ASCII karaktert tartalmazhat.
Variant: Variant változótípus (minden típust tartalmaz, meghatározástól függően).
A LibreOffice Basicben nem kell explicit módon deklarálni a változókat. A tömböt használat előtt mindig deklarálni kell. Egy változót a Dim utasítással deklarálhat, több deklarációt vesszővel kell elválasztani. Változótípus deklarálásához a név után adja meg a típusdeklarációs karaktert, vagy használja a megfelelő kulcsszót.
A LibreOffice Basic az egy- vagy többdimenziós tömböket támogatja, amelyeket egy adott változótípus definiál. A tömböket akkor érdemes használni, ha a program szerkeszteni kívánt listákat vagy táblázatokat tartalmaz. A tömbök előnye, hogy az egyedi elemeket az indexekkel megcímezheti, amelyek numerikus kifejezések vagy változók lehetnek.
A Dim utasítással létrehozott tömbök indextartományainak megadására két módszer létezik.
DIM text(20) As String ' 21 elem, 0-tól 20-ig számozva
DIM text(5 to 25) as String ' 21 elem, 5-től 25-ig számozva
DIM text$(-15 to 5) As String ' 21 elem (a 0-val együtt)
rem -15-től 5-ig számozva
A változómezők - a típustól függetlenül - dinamikussá tehetők, ha a ReDim segítségével kerültek dimenzionálásra eljárásszinten a szubrutinokban vagy függvényekben. Általában a tömb tartományát csak egyszer állíthatja be, és nem módosíthatja. Az eljáráson belül a ReDim utasítás és numerikus kifejezések segítségével deklarálhat egy tömböt a mezőméretek tartományának megadásához.
Példa:
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