Bruk av Variabler

I dette avsnittet finner du grunnleggende informasjon om bruk av variabler i LibreOffice Basic.

Navgivingskonvensjoner for variabelnavn

Et variabelnavn kan inneholde maksimalt 256 tegn. Det fÞrste tegnet i et variabelnavn mÄ vÊre en bokstav i det engelske alfabetet A-Z eller a-z. De andre tegnene kan vÊre en bokstav, et tall eller understrek («_»). Ingen andre tegn er tilatt. LibreOffice Basic skiller ikke mellom store og smÄ bokstavar i variabelnavnene. Et variabelnavn kan ogsÄ inneholde mellomrom, men mÄ da skrives mellom hakeparenteser.

Eksempel pÄ variabelnavn:


    MyNumber=5 'Riktig'
    MyNumber5=15 'Riktig'
    MyNumber_5=20 'Riktig'
    Mitt nummer=20 'Ikke gyldig, variabel med mellomrom mÄ vÊre omsluttet av hakeparenteser'
    [Mitt nummer]=12 'Riktig'
    DéjàVu=25 'Ikke gyldig, spesialtegn er ikke tillatt'
    5MyNumber=12 'Ikke gyldig, variabel kan ikke begynne med et tall'
    Number,Mine=12 'Ikke gyldig, skilletegn er ikke tillatt'

Definere Variabler

I LibreOffice Basic trenger du ikke Ă„ spesifikt deklarere variabler. En variabeldeklarasjon can utfĂžres medDim uttrykket. Du kan deklarere mer enn en variabel samtidig , gjennom Ă„ separere de med kommategn. For Ă„ definere variabeltypen, bruk enten en type-dekalrasjon etter navnet, eller et passende nĂžkkelord.

Eksempler for variabeldeklarasjoner:


    Dim a$ 'ErklĂŠrer variabelen "a" som en streng'
    Dim a As String 'ErklĂŠrer variabelen "a" som en streng'
    Dim a$, b As Integer 'ErklĂŠrer en variabel som en streng og en som et heltall'
    Dim c As Boolean 'ErklĂŠrer c som en boolsk variabel som kan vĂŠre SANN eller USANN'
warning

NÄr du har deklarert en variabel som en spesifik type, kan du ikke deklarere samme variabelnavn med en annen type


NÄr du erklÊrer flere variabler i en enkelt kodelinje, mÄ du spesifisere typen for hver variabel. Hvis typen til en variabel ikke er eksplisitt spesifisert, vil Basic anta at variabelen er av typen Variant.


  ' Begge variablene "a" og "b" er av typen heltall
  Dim a As Integer, b As Integer
  ' Variabel "c" er en variant og "d" er et heltall
  Dim c, d As Integer
  ' En variabel kan ogsÄ eksplisitt deklareres som en variant
  Dim e As Variant, f As Double
note

Variant-typen er en spesiell datatype som kan lagre alle slags verdier. For Ă„ lĂŠre mer, se delen Varianttypen nedenfor.


Tving Variabeldeklarasjoner

For tvingende deklarasjon av variabler, bruk fĂžlgende kommando:


Option Explicit

Uttrykket Option Explicit mÄ vÊre pÄ den fÞrste linjen i modulen, foran den fÞrste SUB-prosedyren. Normalt skal bare tabeller («array») deklarerest spesielt. Alle andre variablar blir deklarerte med typedeklarasjonstegnet eller, dersom dette er slÞyfet, som standardtypen Single.

Variabeltyper

LibreOffice Basic har stĂžtte for fire variabelklasser:

Heltallsvariabler

Integervariabler varierer fra -32768 til 32767. Hvis du tilordner en flytende punktverdi til en heltallvariabel, avrundes desimaltallene til neste heltall. Heltallvariabler beregnes raskt i prosedyrer og passer for tellervariabler i slĂžyfer. En heltallvariabel krever bare to bytes minne. "%" er tegndeklarasjonskarakteren.


Dim Variable%
Dim Variable As Integer

Variabeltypen Long

Long integer-variabler varierer fra -2147483648 til 2147483647. Hvis du tilordner en flytende punktverdi til en lang heltallvariabel, avrundes desimaltallene til neste heltall. Long integervariabler beregnes raskt i prosedyrer og er egnet for tellervariabler i slĂžyfer for store verdier. En lang integervariabel krever fire byte minne. "&" er typedeklarasjonskarakteren.


Dim Variable&
Dim Variable As Long

Desimalvariabler

Decimale variabler kan ta positive eller negative tall eller null. NĂžyaktigheten er opptil 29 siffer.

Du kan bruke pluss (+) eller minus (-) tegn som prefiks for desimaltall (med eller uten mellomrom).

Hvis et desimaltall er tilordnet en heltallvariabel, rundes LibreOffice Basic om figuren opp eller ned.

Bruk av Variabler

Enkeltvariabler kan ha positive eller negative verdier fra 3,402823 x 10E38 til 1,401298 x 10E-45. Enkeltvariabler er flyttallvariabler, der desimalpresisjonen avtar nÄr den ikke-desimale delen av tallet Þker. Enkeltvariabler egner seg for matematiske beregninger av gjennomsnittlig presisjon. Beregninger krever mer tid enn for heltallsvariabler, men er raskere enn beregninger med doble variabler. En enkelt variabel krever 4 byte minne. Typedeklarasjonstegnet er "!".


Dim Variable!
Dim Variable As Single

Bruk av Variabler

Doble variabler kan ta positive eller negative verdier fra 1,79769313486232 x 10E308 til 4,94065645841247 x 10E-324. Doble variabler er flyttallsvariabler, der desimalpresisjonen avtar nÄr den ikke-desimale delen av tallet Þker. Doble variabler er egnet for nÞyaktige beregninger. Beregninger krever mer tid enn for enkeltvariabler. En dobbel variabel krever 8 byte minne. Typedeklarasjonstegnet er "#".


Dim Variabel#
Dim Variable As Double

Valutavariablene

Valutavariabler lagres internt som 64-biters tall (8 byte) og vises som et fast desimalsummer med 15 ikke-desimalt og 4 desimaler. Verdiene varierer fra -922337203685477.5808 til +922337203685477.5807. Valutavariabler brukes til Ă„ beregne valutaverdier med hĂžy presisjon. Typeklarasjons karakteren er "@".


Dim Variable@
Dim Variable As Currency

Direkteverdi for heltall

Tall kan kodes som oktal, og som heksadesimaler.


  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

Bruk av Variabler

Strengvariabler kan inneholde tegnstrenger med opptil 2 147 483 648 tegn. Hvert tegn lagres som den tilsvarende Unicode-verdien. Strengvariabler er egnet for tekstbehandling i programmer og for midlertidig lagring av alle tegn som ikke kan skrives ut, opptil en maksimal lengde pÄ 2 Gbyte. Minnet som kreves for Ä lagre strengvariabler avhenger av antall tegn i variabelen. Typedeklarasjonstegnet er "$".

tip

I BASIC-strengfunksjoner, har fĂžrste tegn i strengen indeks 1.



Dim Variable$
Dim Variable As String

Bolske variabler (av type Boolean)

Logiske variabler kan inneholde en av to verdier: SANN (TRUE) og USANN (FALSE). Talelt 0 representerer USANN, alle andre verdier gir SANN.


Dim Variable As Boolean

Bruk av Variabler

Datovariabler kan kun inneholde verdier for datoer og klokkeslett. Verdiene lagres i et internt format. Verdier som er tilordnet datovariabler med Dateserial, Datevalue, Timeserial eller Timevalue blir automatisk konverterte til det interne formatet. Datovariablene kan konverteres til vanlige tall med funksjonene Dag, MĂ„ned, År eller Time, Minutt, Sekund. Det interne datoformatet brukes for Ă„ regne ut forskjellen mellom to datoer og/eller klokkeslett. Datovariablene kan kun deklareres med nĂžkkelordet Date.


Dim Variable As Date

Literals for Dates

Date literals allow to specify unambiguous date variables that are independent from the current language. Literals are enclosed between hash signs #. Possible formats are:


  zeroDay = #12/30/1899#
  dob = #2010-09-28#

The Variant type

Variables declared as Variant can handle any data type. This means that the actual data type is defined during runtime as a value is assigned to the variable.

There are three main ways to create a Variant variable, as shown below:


  Dim varA            ' The type is not specified, hence the variable is a Variant
  Dim varB as Variant ' The variable is explicitly declared as a Variant
  varC = "abc"        ' Previously undeclared variables are treated as Variants

The example below uses the TypeName function to show how the type of a Variant variable changes upon assignment.


  Dim myVar As Variant
  MsgBox TypeName(myVar) ' Empty
  myVar = "Hello!"
  MsgBox TypeName(myVar) ' String
  myVar = 10
  MsgBox TypeName(myVar) ' Integer
note

A Variant variable is initialized with the Empty special data type. You can use the IsEmpty function to test if a variable is an Empty Variant.


You can also use the keyword Any to declare a variable as a Variant. However, Any is deprecated and is available for backward compatibility.

warning

Arguments with type Variant or Any passed in function calls are not checked for their types.



  Dim myVar As Any ' Variable "myVar" is a Variant

Initiale variabelverdier

NÄr en variabel blir deklarert, vil verdien automatisk bli satt til null. Merk likevel:

Numeriske variabler fÄr automatisk verdien «0» nÄr de blir deklarerte.

Datovariabler fĂ„r den interne verdien 0 som tilsvarer konvertering av "0" med funksjonene Dag, MĂ„ned og År eller Time, Minutt og Sekund.

Strengvariabler fÄr verdien av en tom streng ("") nÄr de blir deklarerte.

Array (tabeller)

LibreOffice Basic kan gjenkjenne en- eller flerdimensjonal arrays, definert av en spesifisert variabeltype. Arrays er egnet for redigering av lister og tabeller i programmer. Individuelle elementer i en matrise kan adresseres gjennom en numerisk indeks.

Array mÄ defineres med uttrykket Dim. Det finst flere mÄter Ä definere indeksomrÄdet for en tabell pÄ:


    Dim Tekst$(20) '21 elementer nummerert fra 0 til 20'
    Dim Tekst$(5,4) '30 elementer (en matrise pÄ 6 x 5 elementer)'
    Dim tekst$(5 til 25) '21 elementer nummerert fra 5 til 25'
    Dim tekst$(-15 til 5) '21 elementer (inkludert 0), nummerert fra -15 til 5'

IndeksomrÄdet kan inneholde bÄde positive og negative tall.

Konstanter

Konstantene har en fast verdi. De kan defineres kun en gang i programmet og verdien kan ikke endres senere.


Const ConstName=Expression