Příkaz ReDim

Deklaruje nebo znovu definuje proměnné nebo pole.

Syntaxe:

Diagram příkazu ReDim


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é.

Primitivní datové typy

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ů DefBoolDefVar.

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

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

Deklarace typů pomocí znaků

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.

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

Podpořte nás!