Brug af variable

Her følger en beskrivelse af den grundlæggende brug af variable i LibreOffice Basic.

Navngivningskonventioner for variabelnavne

Et variabelnavn kan bestå af højst 255 tegn. Det første tegn i et variabelnavn skal være et bogstav i det engelske alfabet A-Z eller a-z. Tal kan også bruges i et variabelnavn, men tegnsætningssymboler og specielle tegn er ikke tilladt, med undtagelse af en understreg ("_"). I LibreOffice Basic skelnes der ikke mellem store og små bogstaver i variabelnavne. Variabelnavne kan indeholde mellemrum, men skal i så fald være omgivet af kantede parenteser.

Eksempler pĂĄ variabelnavne:


    MyNumber=5      'Korrekt'
    MyNumber5=15    'Korrekt'
    MyNumber_5=20   'Korrekt'
    My Number=20    'Ikke gyldigt, da variable med mellemrum skal omsluttes af firkantede parenteser'
    [My Number]=12  'Korrekt'
    DĂ©jĂ Vu=25       'Ikke gyldigt, da specialtegn ikke er tilladt'
    5MyNumber=12    'Ikke gyldig, da variable ikke mĂĄ begynde med et tal'
    Number,Mine=12  'Ikke gyldigt, da punkttegn ikke er tilladt'

Erklæring af variable

I LibreOffice Basic er det ikke nødvendigt at erklære variable eksplicit. En variabelerklæring kan udføres med sætningen Dim. Man kan erklære mere end en variabel på en gang ved at adskille navnene med et komma. For at definere variabeltypen bruges enten et typeerklæringstegn efter navnet eller det koresponderende nøgleord.

Eksempler på variabelerklæringer:


    Dim a$               'Deklarerer variablen "a" som streng'
    Dim a As String      'Deklarerer variablen "a" som streng'
    Dim a$, b As Integer 'Deklarerer en variabel som streng og en anden som heltal'
    Dim c As Boolean     'Deklarerer c som en boolsk variabel som kan være TRUE eller FALSE'
Advarselsikon

Når man en gang har erklæret en variabel som en bestemt type, kan man ikke erklære variablen under det samme navn igen som en anden type!


Gennemtvingning af variabelerklæringer

Følgende kommando bruges til at gennemtvinge, at alle variable i et modul skal erklæres:


Option Explicit

Sætningen Option Explicit skal være den første linje i modulet, før den første Sub. Generelt skal kun arrays erklæres eksplicit. Alle andre variable erklæres automatisk ifølge typeerklæringstegnet, eller - hvis dette er undladt - som standardtypen Variant.

Variabeltyper

LibreOffice Basic understøtter fire typer af variable:

Integer

Integer-variable rummer heltal i området fra -32768 til 32767. Hvis man tildeler en flydende-kommaværdi til en integer, bliver værdien afrundet til nærmeste heltal. Integer-variable har den fordel frem for andre typer af talvariable, at de er hurtige at regne på. Derfor er de f.eks. velegnede som tællervariable i løkker. En heltalsvariabel kræver kun to bytes hukommelse. Typeerklæringstegnet er "%".


Dim Variable%
Dim Variable As Integer

Long Integer

Long Integer spænder fra -2147483648 til 2147483647. Hvis man tildeler en flydende-kommaværdi til en Long Integer (32 bit), bliver værdien afrundet til nærmeste heltal. Long Integers er stort set lige så hurtige at regne på som Integers. En Long Integer kræver fire bytes hukommelse. Typeerklæringstegnet er "&".


Dim Variable&
Dim Variable As Long

Decimalvariable

Decimale variable kan være positive eller negative tal eller nul. Nøjagtigheden er på indtil 29 cifre.

Du kan bruge plus (+) eller minus (-) tegn som fortegn for decimaltal (med eller uden mellemrum).

Hvis en heltalsvariabel tildeles en decimaltalsværdi, vil LibreOffice Basic runde tallet op eller ned.

Single

Enkeltvariabler kan tage positive eller negative værdier spændende fra 3.402823 x 10E38 til 1.401298 x 10E-45. Enkeltvariabler er flydende-komma-variabler, i hvilke den decimale præcision aftager, når den ikke-decimale del af tallet forøges. Enkelt-variable passer til matematiske beregninger af middel præcision. Beregningerne kræver mere tid end med heltalsvariabler, men er hurtigere end beregninger med dobbeltvariabler. En enkeltvariabel kræver 4 bytes hukommelse. Type-erklæringstegnet er "!".


Dim Variable!
Dim Variable As Single

Double

Dobbeltvariabler kan tage positive eller negative værdier spændende fra 1.79769313486232 x 10E308 to 4.94065645841247 x 10E-324. Dobbeltvariabler er flydende-komma-variabler, i hvilke den decimale præcision af aftager, når den ikke-decimale del af tallet forøges. Dobbeltvariabler passer til præcise beregninger. Beregninger kræver mere tid end med Enkeltvariabler. En dobbeltvariabel kræver 8 byte hukommelse. Typeerklærings-tegnet er "#".


Dim Variable#
Dim Variable As Double

Valutavariable

Valutavariable bliver internt gemt som 64-bit tal (8 Bytes), og bliver vist som en fast decimaltal med 15 ikke-decimalcifre og 4 decimaler. Værdierne spænder fra -922337203685477.5808 til +922337203685477.5807. Valutavariable bliver brugt til at beregne valutaværdier med en høj nøjagtighed. Typeerklæringstegnet er "@".


Dim Variable@
Dim Variable As Currency

Programkonstanter til heltal

Tal kan indkodes i oktal og hexadecimal form.


  xi = &o13 '    8 + 3
  ci = &h65 ' 6*16 + 5
  MAX_Integer =  &o77777 '  32767 = &h7FFF
  MIN_Integer = &o100000 ' -32768 = &h8000
  MAX_Long = &h7fffffff '  2147483647 = &o17777777777
  MIN_Long = &h80000000 ' -2147483648 = &o20000000000

Strengvariable

Strengvariable (variable af typen String) kan indeholde tegnstrenge med op til 65.535 tegn. Hvert tegn bliver gemt som den tilsvarende Unicode-værdi. Strengvariable er velegnede til programmatisk behandling af tekst og som midlertidigt lager for vilkårlige tegn der ikke kan udskrives, op til en maksimumlængde på 64 kBytes. Hukommelsen, der er nødvendig for lagring af strengvariable, afhænger af antallet af tegn indeholdt i variablen. Typeerklæringstegnet er "$".


Dim Variable$
Dim Variable As String

Booleske variable

Booleske variable lagrer kun en af to værdier: True eller False (sand eller falsk). Tallet 0 evaluerer til False, mens enhver anden værdi evaluerer til True.


Dim Variable As Boolean

Datovariable

Datovariable kan kun indeholde datoer og klokkeslætsværdier lagret i interne formater. Værdier tildelt til datovariable med DateSerial,DateValue,Timeserial eller Timevalue bliver automatisk konverteret til det interne format. Datovariable bliver konverteret til normale tal ved at bruge funktionen Day, Month, Year eller Hour, Minute, Second. Den interne formatering tillader en sammenligning på dato-/klokkesætsværdier ved beregning af forskellen mellem to tal. Disse variable kan kun erklæres med nøgleordet Date.


Dim Variable As Date

Initielle værdier for variable

Som hovedregel bliver nyerklærede variable automatisk sat til værdien Null. Bemærk dog følgende:

Numeriske variable bliver automatisk tilskrevet værdien 0 efter erklæring.

Datovariable bliver tilskrevet værdien 0 internt, svarende til at konvertere værdien til "0" med funktionen Day, Month, Year eller Hour, Minute, Second.

Strengvariable bliver tildelt en tom streng ("") ved erklæring.

Arrays

LibreOffice Basic understøtter en- og flerdimensionelle arrays, defineret med en angivet variabeltype. Arrays er egnede til redigering af lister og tabeller i programmer. Individuelle elementer i et array kan adresseres gennem et numerisk indeks.

Arrays skal erklæres med sætningen Dim. Der er flere metoder til at angive indeksområdet af et array:


    Dim Text$(20)       '21 elementer nemmereret fra 0 til 20'
    Dim Text$(5,4)      '30 elementer (en matrice af 6 x 5 elementer)'
    Dim Text$(5 To 25)  '21 elementer nummereret fra 5 til 25'
    Dim Text$(-15 To 5) '21 elementer (inkl. 0), nummereret fra -15 til 5'

IndeksomrĂĄdet kan omfatte positive sĂĄvel som negative tal.

Konstanter

Konstanter har en fast værdi. De bliver kun defineret en gang i programmet og kan ikke blive redefineret senere:


Const ConstName=Expression

Støt os venligst!