Module
Contents
Index 🔎︎

# ReDim Statement

Kirjeldab muutujat või massiivi.

## Süntaks:

    [ReDim]Dim VarName [(start To end)] [As VarType][, VarName2 [(start To end)] [As VarType][,...]]

Vajadusel saad ümbermõõtmestatud massiivi sisu säilitamise parameetrina lisada võtmesõna Säilita.

## Parameetrid:

VarName: Mis tahes muutuja või massiivi nimi.

Algus, lõpp: Arvväärtused või konstandid, mis määratlevad elementide arvu (NumberElements=((end-start)+1) ja indeksivahemiku.

Algus ja lõpp võivad olla arvavaldised, kui lauset ReDim kasutatakse protseduuri tasemel.

VarType: muutuja andmetüüpi kirjeldav võtmesõna.

Võtmesõna: muutuja tüüp

Bool: tõeväärtus-muutuja (Tõene, Väär)

Date: kuupäevamuutuja

Double: topelt ujukomamuutuja (1.79769313486232x10E308 - 4.94065645841247x10E-324)

Integer: täisarvmuutuja (-32768 - 32767)

Long: pikk täisarvmuutuja (-2 147 483 648 - 2 147 483 647)

Object: objektimuutuja (saab määratleda ainult lause Set abil)

[Single]: üksik ujukomamuutuja (3,402823x10E38 - 1,401298x10E-45). Kui võtmesõna pole määratud, määratletakse muutuja kui Üksik, v. a juhul, kui kasutatakse lauset DefBool või Defvar.

String: maksimaalselt 64 000 ASCII-märgist koosnev stringmuutuja

Variant: variandimuutuja tüüp (võib sisaldada kõiki tüüpe ja määratakse mõiste abil).

Rakenduses LibreOffice Basic pole muutujaid vaja selgesõnaliselt deklareerida. Siiski peate enne kasutamist deklareerima massiivi. Muutuja deklareerimiseks saad kasutada lauset Dim. Deklaratsioonide eraldamiseks kasuta komasid. Muutujatüübi deklareerimiseks sisesta nime järele tüübideklaratsiooni märk või kasuta vastavat võtmesõna.

LibreOffice Basic toetab ühe- ja mitmemõõtmelisi massiive, mis on määratletud määratud muutujatüübiga. Massiivid on sobivad siis, kui programm sisaldab loendeid või tabeleid, mida soovid redigeerida. Massiivide eelis on see, et nende abil saab indeksite abil pöörduda üksikute elementide poole. Indeksid saab formuleerida arvavaldiste või muutujatena.

Lause Dim abil kirjeldatud massiivide eksemplaride määramiseks on kaks võimalust:

DIM text(20) As String REM 21 elementi nummerdatud 0 kuni 20

DIM text(5 to 25) As String REM 21 elementi nummerdatud 5 kuni 25

DIM text$(-15 to 5) As String REM 21 elementi (0 kaasa arvatud),

rem nummerdatud -15 kuni 5

Kui muutujate tüübid on mõõtmestatud alamprotseduuride või funktsioonide protseduuritasemel, saab need väljad sõltumata tüübist muuta dünaamiliseks. Tavaliselt saab massiivi vahemiku määrata ainult üks kord ja hiljem ei saa seda enam muuta. Protseduuris aga saab massiivi kirjeldamiseks kasutada lauset ReDim ja määrata väljade suurused arvavaldiste abil.

## Näide:

    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