Dim Statement

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 sakinio diagrama


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

primityvių duomenų tipų fragmentas

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

Tipo aprašo simbolių fragmentas

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.

masyvo fragmentas

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

Paremkite mus!