Оператор ReDim

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

Синтаксис:

Диаграма на оператора ReDim


ReDim [Preserve] variable [(start To end)] [As type-name][, variable2 [(start To end)] [As type-name][,...]]

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

Параметри:

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

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

фрагмент за примитивен тип данни

Byte: променлива от тип Byte (0 – 255)

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

Currency: променлива за валута (с 4 дробни разреда)

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

Double: променлива с плаваща запетая с двойна точност (1,79769313486232 × 10E308 – 4,94065645841247 × 10Е-324)

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

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

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

Single: променлива с плаваща запетая с единична точност (3,402823.10^38…1,401298.10^-45).

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

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

object: обект по спецификацията Universal Network Object (UNO) или екземпляр на ClassModule.

char: специален знак, определящ типа данни на променливата.

Фрагмент „знаци за деклариране на тип“

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

Declaration character

Variable type name

%

Integer

&

Long

!

Single

#

Double

$

String

@

Currency


array: декларация на масив.

фрагмент „масив“

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

start и end може да са числови изрази, ако ReDim се прилага на ниво процедура.

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

Масивите се обявяват с оператора Dim. Има два начина за задаване на диапазона за индексиране:


  Dim text(20) As String ' 21 елемента с номера от 0 до 20
  Dim value(5 to 25) As Integer ' 21 стойности с номера от 5 до 25
  Dim amount(-15 to 5) As Currency ' 21 количества с номера от -15 до 5 (включително 0)
  REM Двуизмерна матрица от данни
  Dim table$(20, 2) ' 63 елемента; от 0 до 20 на ниво 1, от 0 до 20 на ниво 2 и от 0 до 20 на ниво 3.

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

Пример:


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

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