Obsah

# Příkaz ReDim

Deklaruje nebo znovu definuje proměnné nebo pole.

### Syntaxe:

    ReDim [Preserve] proměnná [(začátek To konec)] [As názevTypu][, proměnná2 [(začátek To konec)] [As názevTypu][,...]]

Volitelně je možné přidat klíčové slovo Preserve, které při změně velikosti pole zachová jeho obsah. ReDim lze používat pouze v podprogramech.

### Parametry:

proměnná: Název proměnné nebo pole.

typProměnné: Klíčové slovo určující datový typ proměnné.

Byte: Bajtová proměnná (0–255)

Boolean: Booleovská proměnná (True, False)

Currency: Proměnná měny (měna se 4 desetinnými místy)

Date: Datová proměnná

Double: Proměnná v plovoucí řádové čárce (1,79769313486232 × 10E308 – 4,94065645841247 × 10E-324)

Integer: Celočíselná proměnná (−32768 – 32767)

Long: Dlouhá celočíselná proměnná (-2 147 483 648 – 2 147 483 647)

Object: Objektová proměnná (Poznámka: tuto proměnnou lze následně definovat pomocí Set)

Single: Proměnná v plovoucí řádové čárce (3,402823 x 10E38 - 1,401298 x 10E-45).

String: Řetězec obsahující maximálně 2 147 483 647 znaků.

Variant: Proměnná typu Variant (obsahuje všechny typy, určuje se v definici). Jestliže není zadán název typu, proměnné se automaticky přiřadí typ Variant, dokud se nepoužije některý z příkazů DefBool až DefVar.

object: objekt Universal Network (UNO) nebo instance objektu ClassModule.

znak: Speciální znak, který deklaruje datový typ proměnné.

V LibreOffice Basic není nutné proměnné explicitně deklarovat. Ovšem je nutné před použitím deklarovat pole. Proměnnou je možné deklarovat pomocí příkazu Dim a několik deklarací oddělit čárkami (,). Chcete-li deklarovat typ proměnné, použijte znak typové deklarace následovaný názvem nebo odpovídající klíčové slovo.

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

pole: Deklarace pole.

začátek, konec: Číselné hodnoty nebo konstanty, které určují počet prvků (PočetPrvků=(konec-začátek)+1) a rozsah indexu.

začátek a konec mohou být číselné výrazy, pokud se v podprogramu používá ReDim.

LibreOffice Basic podporuje jedno- i vícerozměrná pole, která se definují určeným typem proměnné. Pole jsou vhodná, pokud chcete v programu použít seznam či tabulku, které chcete upravovat. Výhodou polí je, že k jednotlivým prvkům je možné přistupovat pomocí indexů, které lze vyjádřit číselným výrazem nebo proměnnou.

Pole se deklarují pomocí příkazu Dim. Rozsah indexů pro pole lze nastavit více způsoby:

      Dim text(20) As String ' 21 prvků číslovaných od 0 do 20
      Dim value(5 to 25) As Integer ' 21 prvků číslovaných od 5 do 25
      Dim amount(-15 to 5) As Currency ' 21 prvků (včetně 0) číslovaných od -15 to 5
      REM dvourozměrné pole
      Dim table$(20,2) ' 63 prvků; první řádek od 0 to 20, druhý řádek od 0 do 20 a třetí řádek od 0 do 20.

Pole je možné deklarovat jako dynamické, pokud v podprogramu, kde chcete s polem pracovat, definujete rozměry pomocí příkazu ReDim. Obecně lze rozměry určit jen jednou. Poté je nelze změnit. V podprogramu je možné deklarovat pole pomocí ReDim. Rozměry je možné definovat pouze číselným výrazem. To zaručuje, že jsou pole velká pouze tak, jak je třeba.

## Příklad:

    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