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'
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:
-
Numeriskevariable kan indeholde talværdier. Nogle variable bliver brugt til at lagre store eller små tal, og andre bruges til flydende-komma eller brøktal.
-
Streng-variable indeholder tegnrækker (tekststrenge).
-
Booleske variable indeholder enten værdien True eller False (sand eller falsk).
-
Object-variable kan lagre objekter af forskellig art.
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
Variable af typen Single kan antage positive og negative værdier fra 3,402823 x 10E38 til 1,401298 x 10E-45. Single-variable er kommatal i hvilke decimaldelens nøjagtighed falder i takt med, at den ikke-decimale del af tallet forøges. Single-variable er velegnede til matematiske beregninger af moderat nøjagtighed. Beregninger kræver mere tid end for Integer-variable, men er hurtigere end beregninger med Double-variable. En Single kræver 4 bytes hukommelse. Typeerklæringstegnet er "!".
Dim Variable!
Dim Variable As Single
Double
Double-variable kan antage positive eller negative værdier fra 1,79769313486232 x 10E308 til 4,94065645841247 x 10E-324. Double-variable er kommatal i hvilke decimaldelens nøjagtighed falder i takt med, at den ikke-decimale del forøges. Doubles er velegnede til præcise beregninger. Beregninger kræver mere tid end for Single-variable. Double-variable kræver 8 bytes hukommelse. Typeerklæringstegnet 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
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