Turinys
Rodyklė 🔎︎

# Dim sakinys

Aprašo kintamuosius arba masyvus.

Jei kintamieji atskirti kableliais, pavyzdžiui, Dim v1, v2, v3 eilute, pirmieji aprašomi kaip varianto kintamieji. Nauja eilutė arba dvitaškis (:) padeda atskirti kintamųjų aprašus.

      Dim text As String
      Dim pv As com.sun.star.beans.PropertyValue, d As Date
      Dim Units as Integer : Dim EULER As Double

Dim aprašo lokalius kintamuosius paprogramėse. Globalieji kintamieji aprašomi sakiniuGlobal, Public arba Private.

### Sintaksė:

    Dim kintamasis [(nuo pradžios iki pabaigos)] [tipo vardas][, kintamasis2[char] [(nuo pradžios iki pabaigos)] [,...]]

### Parametrai:

kintamasis: Bet kurio kintamojo arba masyvo vardas.

typename: Raktinis žodis, kuris aprašo kintamojo duomenų tipą.

Byte: Baito kintamasis (0-255)

Boolean: Loginis kintamasis (True, False)

Currency: Valiutos kintamasis (Valiuta naudojant 4 dešimtaines pozicijas)

Date: Datos kintamasis

Double: Dvigubo tikslumo slankiojo kablelio kintamasis (1,79769313486232 x 10E308 - 4,94065645841247 x 10E-324)

Integer: Sveikojo skaičiaus kintamasis (-32768 - 32767)

Long: Ilgojo sveikojo skaičiaus kintamasis (-2.147.483.648 - 2.147.483.647)

Object: Objekto kintamasis (pastaba: šį kintamąjį galima apibrėžti tik vėliau naudojant Set!)

Single: Viengubo tikslumo slankiojo kablelio kintamasis (3,402823 x 10E38 - 1,401298 x 10E-45).

String: Eilutės kintamasis, sudarytas iš daugiausia 64 000 ASCII simbolių.

Variant: Varianto kintamojo tipas (apima visus tipus, nurodytus apraše). Jei tipo pavadinimas nenurodytas, kintamieji automatiškai aprašomi kaip „Variant Type“, nebent naudojamas sakinys iš DefBool į DefVar.

object: Universalaus tinklo objektas (UNO) arba ClassModule vietoj objekto.

char: Specialus simbolis, kuris aprašo kintamojo duomenų tipą.

Programoje „% PRODUCTNAME Basic“ nereikia išreikštai aprašyti kintamųjų. Tačiau prieš naudodami masyvus juos turite aprašyti. Galite aprašyti kintamąjį naudodami Dim sakinį, naudokite kablelius (,), kad atskirtumėte kelis aprašus. Norėdami aprašyti kintamojo tipą, įveskite tipo aprašos simbolį po pavadinimo arba naudokite atitinkamo tipo raktinio žodžio pavadinimą.

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

array: Masyvo aprašas.

start, end: Skaitinės reikšmės arba konstantos, apibrėžiančios elementų skaičių (NumberElements=(end-start) +1) ir indekso diapazoną.

start ir end gali būti skaitinis reiškinys, jei ReDim yra naudojamas procedūros lygmenyje.

„LibreOffice Basic“ palaiko viengubus ar daugiamačius masyvus, kuriuos aprašo nurodytas kintamojo tipas. Masyvai yra tinkami, jei programoje yra sąrašų ar lentelių, kurias norite taisyti. Masyvų pranašumas yra tas, kad atskirus elementus galima adresuoti pagal indeksus, kuriuos galima aprašyti skaitiniais reiškiniais ar kintamaisiais.

Masyvai aprašomi naudojant sakinį Dim. Indeksų intervalą galima aprašyti keliais būdais:

      Dim text(20) As String ' 21 elementas, sunumeruotas nuo 0 iki 20
      Dim value(5 to 25) As Integer ' 21 reikšmė, sunumeruota nuo 5 iki 25
      Dim amount(-15 to 5) As Currency ' 21 skaičus (įskaitant 0), sunumeruota nuo -15 iki 5
      REM Dvimatis duomenų laukas
      Dim table$(20,2) ' 63 elementas; nuo 0 iki 20 lygis 1, nuo 0 iki 20 lygis 2 ir nuo 0 iki 20 lygis 3.

Masyvo tipus galite aprašyti dinaminiais, jei sakinys ReDim aprašo matmenų skaičių pprogramėje arba funkcijoje, kurioje yra masyvas. Paprastai masyvo matemnį galima aprašyti tik vieną kartą ir jo taisyti negalima. Paprogramėje galite aprašyti masyvą naudodami ReDim. Matmenis galite aprašyti tik naudodami skaitinius reiškinius. Tai užtikrina, kad laukų būtų tik tiek, kiek reikia.

### Pavyzdys:

    Sub ExampleDim1
    Dim sVar As String
    Dim iVar As Integer
        sVar = "Office"
    End Sub

    Sub ExampleDim2
      ' Dvimatis duomenų laukas
        Dim stext(20,2) As String
      Const sDim eilute = " Matmuo:"
      For i = 0 To 20
        For ii = 0 To 2
            stext(i,ii) = str(i) & sDim & str(ii)
        Next ii
      Next i
      For i = 0 To 20
        For ii = 0 To 2
            MsgBox stext(i,ii)
        Next ii
      Next i
    End Sub