Dim-udtryk

Erklærer variabler eller matrixer

Hvis variablerne er adskilt af kommaer - for eksempel Dim v1, v2, v3 As String - bliver de første defineret som Variant-variabler. En ny linje eller tegnet kolon (:) hjælper med at adskille variabel-definitioner.


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

Dim erklærer lokale variabler inden for subrutiner. Globale variabler erklæres med udtrykkene Global, Public eller Private.

Syntaks:

diagram over udtrykket Dim


Dim variable [(start To end)] [As typename][, variable2[char] [(start To end)] [,...]]

Parametre:

variable: Ethvert variabel- eller matrixnavn.

typename: Nøgleord, som erklærer en variabels datatype.

fragment af primitive datatyper

Byte: Bytevariabel (0-255)

Boolean: Boolsk variabel (True, False)

Currency: Variablen Valuta (Valuta med 4 decimalpladser)

Date: Datovariabel

Double: Dobbeltpræcisions flydende-komma variabel (1,79769313486232 x 10E308 - 4,94065645841247 x 10E-324)

Integer: Heltalsvariabel (-32768 - 32767)

Long: Stor heltalsvariabel (32 bit) (-2.147.483.648 - 2.147.483.647)

Object: Objektvariabel (OBS: denne variabel kan efterfølgende kun defineres med Set!)

Single: Enkelt-nøjagtig decimaltalsvariabel (3,402823 X 10E38 - 1,401298 X 10E-45).

String: Strengvariabel bestående af højst 64,000 ASCII-tegn.

Variant: Variant variabeltype (indeholder alle typer, specificeret med definition). Hvis et typenavn ikke er specificeret, defineres variabler som varianttyper, medmindre der bruges et udtryk fra DefBool til DefVar.

object: Universal Network objekt (UNO)-objekt eller ClassModule-objekt-forekomst.

char: Specialtegn, som erklærer en variabels datatype.

Typeerklærings-tegnfragment

I LibreOffice Basic er du ikke nødt til at erklære variabler eksplicit. Du er i midlertid nødt til at erklære matrixer, før du kan bruge dem. Du kan erklære en variabel med udtrykket Dim med kommaer (,) til at skille flere erklæringer. For at erklære en variabeltype taster du en et typeerklæringstegn efter navnet eller bruger navnet på et korresponderende type-nøgleord.

Declaration character

Variable type name

%

Integer

&

Long

!

Single

#

Double

$

String

@

Currency


array: Matrix-erklæring.

matrix-fragment

start, end: Numeriske værdier eller konstanter, som definerer antallet af elementer (Antal elementer=(end-start)+1) og indeksområdet.

start og end kan være numeriske udtryk, hvis ReDim anvendes på procedure niveau.

LibreOffice Basic understøtter en- og flerdimensionelle arrays. Alle elementer i et array har samme variabeltype (evt. Variant). Arrays er passende hvis du har brug for at lave lister eller tabeller. Fordelen ved arrays er at det er muligt at adressere individuelle elementer via indekser, som kan formuleres som numeriske udtryk eller variable.

Matrixer erklæres med udtrykket Dim. Indeksområdet kan defineres på flere måder:


  Dim text(20) As String ' 21 elementer nummereret fra 0 til 20
  Dim value(5 to 25) As Integer ' 21 værdier nummereret fra 5 til 25
  Dim amount(-15 to 5) As Currency ' 21 beløb (herunder 0), nummereret fra -15 to 5
  REM Todimensionelt datafelt
  Dim table$(20,2) ' 63 elementer; fra 0 til 20 på niveau 1, fra 0 til 20 på niveau 2 og fra 0 til 20 på niveau 3.

Du kan erklære en matrix som dynamisk, hvis et ReDim udtryk definerer tallet af dimensioner i den subrutine eller den funktion, der indeholder matrixen. Generelt kan du kun definere en matrixdefinition en gang og du kan ikke ændre den. Inde i en subrutine kan du erklære en matrix med ReDim. Du kan kun definere dimensioner med numeriske udtryk. Dette sikrer, at felterne ikke er større end nødvendigt.

Eksempel:


Sub ExampleDim1
Dim sVar As String
Dim iVar As Integer
    sVar = "Office"
End Sub
 
Sub ExampleDim2
  REM Todimensionelt array
    Dim stext(20,2) As String
  Const sDim As String = " Dimension:"
  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