AnvÀnda variabler
I detta avsnitt finns grundlÀggande information om variabler i LibreOffice 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 LibreOffice 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 'Correct'
MyNumber5=15 'Correct'
MyNumber_5=20 'Correct'
My Number=20 'Not valid, variable with space must be enclosed in square brackets'
[My Number]=12 'Correct'
Déjà Vu=25 'Not valid, special characters are not allowed'
5MyNumber=12 'Not valid, variable may not begin with a number'
Number,Mine=12 'Not valid, punctuation marks are not allowed'
Deklarera variabler
I LibreOffice 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$ 'Declares the variable "a" as a String'
Dim a As String 'Declares the variable "a" as a String'
Dim a$, b As Integer 'Declares one variable as a String and one as an Integer'
Dim c As Boolean 'Declares c as a Boolean variable that can be TRUE or FALSE'
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
LibreOffice Basic har stöd för fyra variabelklasser:
-
Numeriska variabler kan innehÄlla numeriska vÀrden. Vissa variabler anvÀnds för att lagra stora eller smÄ heltal, och andra för flyttal eller brÄk.
-
StrÀngvariabler innehÄller textstrÀngar.
-
Logiska variabler av typen Boolean kan ha vÀrdet TRUE eller FALSE.
-
Objektvariabler av typen Object kan innehÄlla olika typer av objekt, till exempel tabeller och dokument.
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 LibreOffice Basic siffran uppÄt eller nedÄt.
Variabeltypen Single
Single variables can take positive or negative values ranging from 3.402823 x 10E38 to 1.401298 x 10E-45. Single variables are floating-point variables, in which the decimal precision decreases as the non-decimal part of the number increases. Single variables are suitable for mathematical calculations of average precision. Calculations require more time than for Integer variables, but are faster than calculations with Double variables. A Single variable requires 4 bytes of memory. The type-declaration character is "!".
Dim Variable!
Dim Variable As Single
Variabeltypen Double
Double variables can take positive or negative values ranging from 1.79769313486232 x 10E308 to 4.94065645841247 x 10E-324. Double variables are floating-point variables, in which the decimal precision decreases as the non-decimal part of the number increases. Double variables are suitable for precise calculations. Calculations require more time than for Single variables. A Double variable requires 8 bytes of memory. The type-declaration character is "#".
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
Literals for integers
Numbers can be encoded using octal and hexadecimal forms.
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
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
LibreOffice 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 elements numbered from 0 to 20'
Dim Text$(5,4) '30 elements (a matrix of 6 x 5 elements)'
Dim Text$(5 To 25) '21 elements numbered from 5 to 25'
Dim Text$(-15 To 5) '21 elements (including 0), numbered from -15 to 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