AnvÀnda variabler

I detta avsnitt finns grundlÀggande information om variabler i LibreOfficeDev Basic.

Namnkonventioner för variabler

Ett variabelnamn fÄr vara högst 255 tecken lÄngt. Det första tecknet i ett variabelnamn mÄste vara en bokstav mellan A och Z eller a och z. Du kan anvÀnda siffror i ett variabelnamn, men inte skiljetecken eller specialtecken (med undantag för understryckningstecken ("_"). Du kan inte anvÀnda Ä, À eller ö i ett variabelnamn. I LibreOfficeDev Basic Àr variabelnamn inte skiftlÀgeskÀnsliga. Variabelnamn kan innehÄlla blanksteg men mÄste i sÄ fall omges av hakparenteser.

Exempel pÄ variabelnamn:

MyNumber=5

Korrigera

MyNumber5=15

Korrigera

MyNumber_5=20

Korrigera

My Number=20

Ogiltigt, variabler med mellanslag mÄste skrivas inom hakparenteser

[My Number]=12

Korrigera

DéjàVu=25

Felaktigt, specialtecken Àr inte giltiga

5MyNumber=12

Felaktigt, variabelnamn mÄste börja med en bokstav

Number,Mine=12

Felaktigt, skiljetecken Àr inte giltiga


Deklarera variabler

I LibreOfficeDev Basic behöver du inte deklarera variabler explicit. En variabeldeklaration görs med uttrycket Dim. Du kan deklarera fler Àn en variabel Ät gÄngen genom att avgrÀnsa namnen med ett kommatecken. Om du vill definiera variabelns typ anvÀnder du ett typdeklarationstecken efter namnet, eller motsvarande nyckelord.

Exempel pÄ variabeldeklarationer:

Dim a$

Deklarerar variabeln "a" som en strÀng

Dim a As String

Deklarerar variabeln "a" som en strÀng

Dim a$, b As Integer

Deklarerar en variabel som en strÀng och en annan som ett heltal

Dim c As Boolean

Deklarerar c som en boolesk variabel som kan vara SANT eller FALSKT


Om du anvÀnder typdeklarationstecken nÀr du deklarerar variabler mÄste du anvÀnda tecknet varje gÄng du anvÀnder variabeln. Det innebÀr att följande uttryck Àr ogiltiga:

Dim a$

Deklarerar "a" som en strÀng

a="TestString"

Typdeklaration saknas: "a$="


Varningssymbol

NĂ€r du har deklarerat en variabels typ kan du inte deklarera en variabel igen med samma namn fast av en annan datatyp.


KrÀva variabeldeklationer

Du kan anvÀnda följande instruktion för att krÀva explicita variabeldeklarationer:

Option Explicit

Instruktionen Option Explicit mÄste stÄ pÄ den första raden i modulen, innan den första SUB-proceduren. Om instruktionen saknas mÄste endast matrisvariabler deklareras explicit. Vid implicit variabeldeklaration deklareras alla andra variabler med ett typdeklationstecken, eller (om typdeklationstecken saknas) som standardtypen Single.

Variabeltyper

LibreOfficeDev Basic har stöd för fyra variabelklasser:

Variabeltypen Integer

En heltalsvariabel kan ha ett vÀrde mellan -32768 och 32767. Om du tilldelar en heltalsvariabel av typen Long ett flyttalsvÀrde, rundas talet av till nÀrmaste heltalsvÀrde. BerÀkningar med heltalsvariabler av typen Long Àr mycket snabba, och heltalsvariabler anvÀnds ofta som rÀknare i repetitiva satser. En heltalsvariabel tar upp tvÄ byte minne. Typdeklarationstecknet för en heltalsvariabel Àr "%".

Dim Variable%

Dim Variable As Integer

Variabeltypen Long

En variabel av den hÀr typen kan ha ett vÀrde frÄn -2147483648 till 2147483647. Om du tilldelar en heltalsvariabel ett flyttalsvÀrde, rundas talet av till nÀrmaste heltalsvÀrde. BerÀkningar med heltalsvariabler Àr mycket snabba, och heltalsvariabler anvÀnds ofta som rÀknare i repetitiva satser. En variabel av typen Long tar upp fyra byte minne. Typdeklarationstecknet Àr "&".

Dim Variable&

Dim Variable As Long

Decimaltalsvariabler

Decimaltalsvariabler kan ta positiva eller negativa tal eller noll. Precisionen Àr upp till 29 siffror.

Du kan anvÀnda plustecken (+) eller minustecken (-) som prefix före decimaltal (med eller utan blanksteg).

Om ett decimaltal tilldelas till en heltalsvariabel, avrundar LibreOfficeDev Basic siffran uppÄt eller nedÄt.

Variabeltypen Single

Flyttalsvariabler av typen Single kan lagra positiva eller negativa vÀrden mellan 3,402823 x 10E38 och 1,401298 x 10E-45. Antalet decimaler i en flyttalsvariabel minskar nÀr variabelns heltalsdel ökar. Variabler av typen Single anvÀnds ofta för matematiska berÀkningar med genomsnittlig precision. BerÀkningar med Single-variabler Àr lÄngsammare Àn heltalsberÀkningar, men Àr snabbare Àn berÀkningar med variabler av typen Double. En variabel av typen Single tar upp 4 byte minne. Typdeklarationstecknet Àr "!".

Dim Variable!

Dim Variable As Single

Variabeltypen Double

Flyttalsvariabler av typen Double kan lagra positiva eller negativa vÀrden mellan 1,79769313486232 x 10E38 och 4,94065645841247 x 10E-324. Antalet decimaler i en flyttalsvariabel minskar nÀr variabelns heltalsdel ökar. Double-variabler anvÀnds för berÀkningar med höga krav pÄ precision. BerÀkningar med Double-variabler tar mer tid Àn berÀkningar med variabler av typen Single. En variabel av typen Double tar upp 8 byte minne. Typdeklarationstecknet Àr "#".

Dim Variable#

Dim Variable As Double

Variabeltypen Currency

Valutavariabler lagras internt som 64-bitarsvÀrden (8 byte) och visas som ett fast decimaltal med 15 heltalsplatser och 4 decimaler. VÀrdeintervallet Àr -922337203685477,5808 till +922337203685477,5807. Valutavariabler anvÀnds för att berÀkna finansiella vÀrden med hög precision. Typdeklarationstecknet Àr "@".

Dim Variable@

Dim Variable As Currency

Variabeltypen String

En strÀngvariabel kan lagra teckensekvenser med upp till 65 535 tecken. Varje tecken lagras som motsvarande Unicode-vÀrde. StrÀngvariabler anvÀnds för textbehandling och för allmÀn temporÀr lagring av data om datamÀngden Àr 64 kB eller mindre. Hur mycket minne som krÀvs för en strÀngvariabel beror pÄ antalet tecken i strÀngen. Typdeklarationstecknet Àr "$".

Dim Variable$

Dim Variable As String

Variabeltypen Boolean

Logiska variabler av typen Boolean kan bara lagra ett av tvÄ vÀrden: TRUE eller FALSE. Talet 0 returnerar FALSE, medan alla andra vÀrden returnerar TRUE.

Dim Variable As Boolean

Variabeltypen Date

Datumvariabler kan endast innehÄlla tids- och datumvÀrden som lagras i ett internt numeriskt format. VÀrden som tilldelas en variabel av typen Date med funktionerna Dateserial, Datevalue, Timeserial eller Timevalue konverteras automatiskt till det interna formatet. Datumvariabler konverteras till vanliga tal med nÄgon av funktionerna Day, Month eller Year, respektive Hour, Minute eller Second. Det interna formatet anvÀnds för att tvÄ tids- eller datumvÀrden ska kunna jÀmföras. En datumvariabel kan endast deklareras med nyckelordet Date.

Dim Variable As Date

Initiala variabelvÀrden

NÀr en variabel har deklarerats antar den automatiskt vÀrdet "Null". Observera följande konventioner:

Numeriska variabler fÄr automatiskt vÀrdet "0" nÀr de har deklarerats.

Datumvariabler fÄr det interna vÀrdet 0, vilket motsvarar konvertering av "0" med funktionerna Day, Month och Year respektive Hour, Minute och Second.

StrÀngvariabler fÄr vÀrdet av en tom strÀng ("") nÀr de deklareras.

Matriser

LibreOfficeDev Basic stöder en- eller flerdimensionella matriser som definieras av en angiven variabeltyp. Matriser anvÀnds till exempel för att redigera listor och tabeller i program. Enskilda matriselement kan anropas med hjÀlp av ett numeriskt index.

Matriser mÄste deklareras med uttrycket Dim. Det finns flera olika sÀtt att definiera en matris dimensioner:

Dim Text$(20)

21 element numrerade frÄn 0 till 20

Dim Text$(5,4)

30 element (en matris med 6 x 5 element)

Dim Text$(5 To 25)

21 element numrerade frÄn 5 till 25

Dim Text$(-15 To 5)

21 element (inklusive 0), numrerade frÄn -15 till 5


Elementen i en matris kan ha positiva eller negativa index.

Konstanter

Konstanter har ett fast vÀrde. De kan endast definieras pÄ ett stÀlle i programmet och kan inte omdefinieras senare:

Const ConstName=Expression