Оператор ReDim

Декларира променлива или масив.

Синтаксис:


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

Ако желаете, можете да добавите ключовата дума Preserve като параметър, за да запазите съдържанието на масива при преоразмеряването му.

Параметри:

VarName: име на променилива или масив.

Start, End: числови стойности или константи, задаващи броя елементи ((End - Start) + 1) и диапазона за индексиране.

Start и End могат да са числови изрази, ако бъде използван ReDim на ниво процедура.

VarType: ключова дума, определяща типа данни на променливата.

Ключова дума: Тип на променливата

Bool: булева променлива (True, False)

Date: променлива за дата

Double: променлива с плаваща запетая с двойна точност (1,79769313486232.10^308…4,94065645841247.10^-324)

Integer: целочислена променлива (-32768…32767)

Long: дълга целочислена променлива (-2147483648…2147483647)

Object: обектна променлива (Бележка: тази променлива впоследствие може да бъде дефинирана само със Set!)

[Single]: променлива с плаваща запетая с единична точност (3,402823.10^38…1,401298.10^-45). Ако не е зададена ключова дума, променливата се дефинира от тип Single, освен ако е използван оператор от типа на DefBool и DefVar.

String: низова променлива, съдържаща най-много 64000 знаква в код ASCII.

Variant: вариантна променлива (може да съдържа всякакъв тип данни, зададен чрез присвояване).

В LibreOffice Basic не е необходимо да обявявате променливите явно. Масивите обаче трябва да бъдат обявени преди използването им. Можете да обявите променлива с оператора Dim, използвайки запетаи, за да разделите няколко декларации. За да декларирате типа на променлива, въведете знак за деклариране на тип след името или използвайте съответната ключова дума.

LibreOffice Basic поддържа едномерни и многомерни масиви, дефинирани като специален вид променливи. Масивите са подходящи за работа със списъци или таблици в програмите. Предимството им е, че отделните елементи се адресират чрез индекси, които могат да бъдат задавани като числови изрази или променливи.

Има два начина за задаване на диапазона за индексиране на масиви, декларирани с оператора Dim:

Dim text(20) As String REM 21 елемента с номера от 0 до 20

Dim text(5 To 25) As String REM 21 елемента с номера от 5 до 25

Dim text(-15 To 5) As String REM 21 елемента (включително 0)

REM с номера от -15 до 5

Променливите, независимо от типа си, могат да бъдат направени динамични ако се оразмерят с ReDim на ниво подпрограма. Обикновено можете да зададете размера на масив само веднъж и не можете да го промените. В процедура можете да декларирате масив с оператора ReDim и числови изрази, за да определите диапазона за индексиране.

Пример:


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

Моля, подкрепете ни!