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'
warning

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:

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

String variables can hold character strings with up to 2,147,483,648 characters. Each character is stored as the corresponding Unicode value. String variables are suitable for word processing within programs and for temporary storage of any non-printable character up to a maximum length of 2 Gbytes. The memory required for storing string variables depends on the number of characters in the variable. The type-declaration character is "$".

tip

In BASIC String functions, the first character of the string has index 1.



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

Please support us!