Variabelen gebruiken

Hieronder wordt het basisgebruik van variabelen in LibreOffice BASIC beschreven.

Naamgevingsconventies voor variabelen-ID's

Een variabelenaam mag maximaal 255 tekens bevatten. Het eerste teken van een variabelenaam moet een letter A-Z of a-z zijn. U kunt ook getallen in een variabelenaam gebruiken, maar leestekens en speciale tekens zijn niet toegestaan met uitzondering van het onderstrepingsteken ("_"). In LibreOffice BASIC zijn ID's van variabelen niet hoofdlettergevoelig. Er mogen spaties in variabelenamen staan, maar deze moeten dan wel tussen vierkante haakjes staan.

Voorbeelden van variabelen-ID's:


    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'

Variabelen declareren

In LibreOffice BASIC hoeft u variabelen niet expliciet te declareren. Het declareren van variabelen kan met de instructie Dim uitgevoerd worden. U kunt meerdere variabelen tegelijk declareren door de namen met een komma te scheiden. Gebruik een type-aanduidingsteken na de naam, of het toepasselijke sleutelwoord om het type variabele te definiëren.

Voorbeelden van variabelendeclaraties:


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

Hebt u een variabele eenmaal als een bepaald type gedefinieerd, dan kunt u de variabele niet nogmaals met dezelfde naam als een ander type definiëren!


Variabelendeclaraties afdwingen

Gebruik de volgende opdracht om declaratie van variabelen af te dwingen:


Option Explicit

De instructie Option Explicit moet de eerste regel in de module zijn, vóór de eerste SUB. Meestal moeten alleen matrices expliciet gedeclareerd worden. Alle andere variabelen worden volgens het type-aanduidingsteken gedeclareerd of, indien weggelaten, als het standaardtype Single.

Typen variabelen

LibreOffice BASIC ondersteunt vier klassen variabelen:

Integer-variabelen

Integer-variabelen gaan van -32768 tot 32767. Als u een drijvende-kommawaarde aan een integere variabele toewijst, worden de decimalen naar het volgende gehele getal afgerond. Integer-variabelen worden snel in procedures berekend en zijn geschikt voor tellervariabelen in lussen. Een Integer-variabele vereist slechts 2 byte geheugen. "%" is het type-aanduidingsteken.


Dim Variable%
Dim Variable As Integer

Long Integer-variabelen

Long Integer-variabelen hebben een waarde van -2147483648 tot 2147483647. Als u een drijvende-kommawaarde aan een Long Integer-variabele toewijst, worden de decimalen naar het volgende gehele getal afgerond. Long Integer-variabelen worden snel in procedures berekend en zijn geschikt voor tellervariabelen in lussen voor grote waarden. Een Long Integer-variabele vereist 4 byte geheugen. Het type-aanduidingsteken is "&".


Dim Variable&
Dim Variable As Long

Decimale variabelen

Decimale variabelen kunnen positieve of negatieve getallen of nul zijn. De nauwkeurigheid gaat tot 29 cijfers.

U kunt plus- (+) of min- (-) tekens gebruiken als voorvoegsels voor decimale getallen (met of zonder spaties).

Als een decimaal getal is toegewezen aan een Integer-variabele, rondt LibreOffice Basic het getal naar boven of beneden af.

Single-variabelen

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

Double-variabelen

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

Valutavariabelen

Valutavariabelen worden intern opgeslagen als 64bits-getallen (8 byte) en weergegeven als een getal met een vast aantal plaatsen achter de komma (15 niet-decimale en 4 decimale plaatsen). De waarden gaan van -922337203685477,5808 tot +922337203685477,5807. Valutavariabelen worden gebruikt om valutawaarden uiterst nauwkeurig te berekenen. Het type-aanduidingsteken is "@".


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

String-variabelen

String-variabelen kunnen tekenreeksen met tot 65.535 tekens bevatten. Elk teken wordt als de overeenkomstige Unicode-waarde opgeslagen. String-variabelen zijn geschikt voor tekstverwerking binnen programma's en tijdelijke opslag van alle niet-afdrukbare tekens tot een maximumlengte van 64 Kbytes. De hoeveelheid geheugen die vereist is voor het opslaan van String-variabelen is afhankelijk van het aantal tekens in de variabele. Het type-aanduidingsteken is "$".


Dim Variable$
Dim Variable As String

Booleaanse variabelen

Booleaanse variabelen slaan slechts één van twee waarden op: WAAR of ONWAAR. Het getal 0 levert ONWAAR op, terwijl alle andere waarden WAAR opleveren.


Dim Variable As Boolean

Datumvariabelen

Datumvariabelen kunnen enkel datums en tijdwaarden bevatten die in een interne notatie opgeslagen zijn. Waarden die met Dateserial, Datevalue, Timeserial of Timevalue aan datumvariabelen zijn toegewezen, worden automatisch naar de interne notatie geconverteerd. Datumvariabelen worden naar normale getallen geconverteerd met behulp van de functie Day, Month, Year of Hour, Minute, Second. Via de interne notatie kunnen datum-/tijdwaarden vergeleken worden door het verschil tussen twee getallen te berekenen. Deze variabelen kunnen alleen met het sleutelwoord Date gedeclareerd worden.


Dim Variable As Date

Beginwaarden van variabelen

Zo gauw de variabele gedeclareerd is, wordt deze automatisch op de waarde "Null" ingesteld. Neem de volgende conventies in acht:

Aan numerieke variabelen wordt automatisch de waarde "0" toegewezen zodra ze gedefinieerd zijn.

Aan datumvariabelen wordt intern de waarde 0 toegewezen; equivalent aan het converteren van de waarde "0" met de functie Day, Month, Year of Hour, Minute, Second.

Aantekenreeksvariabelen wordt een lege tekenreeks ("") toegewezen wanneer ze gedeclareerd worden.

Matrices

LibreOffice BASIC kent arrays met één of meerdere dimensies, gedefinieerd door een gespecificeerd type variabele. Arrays zijn geschikt voor het bewerken van lijsten en tabellen in programma's. Afzonderlijke elementen van een matrix kunnen via een numerieke index geadresseerd worden.

Matrices moeten gedeclareerd worden met de Dim-instructie. Het indexbereik van een matrix kan op verschillende manieren gedefinieerd worden.


    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'

Het indexbereik kan positieve en negatieve getallen bevatten.

Constanten

Constanten hebben een vaste waarde. Ze worden maar één keer in het programma gedefinieerd en kunnen later niet opnieuw gedefinieerd worden:


Const ConstName=Expression

Help ons, alstublieft!