Változók használata
Az alábbi rész a változók alapvető használati módját írja le a LibreOffice Basicben.
Elnevezési szokások a változók azonosítására
Egy változónév maximum 255 karakterből állhat. A változó első karakternének A-Z vagy a-z betűnek kell lennie. A változónevekben számok is használhatók, de az írásjelek és speciális karakterek nem engedélyezettek az aláhúzásjel („_”) kivételével. A LibreOffice Basic változóazonosítók nem különböztetik meg a kis- és nagybetűket. A változónevek tartalmazhatnak szóközöket, de ilyenkor a nevet szögletes zárójelek közé kell tenni.
Példák a változóazonosítókra:
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'
Változók deklarálása
A LibreOffice Basicben nem kell explicit módon deklarálni a változókat. Egy változódeklaráció megadható a Dim utasítással. Egyszerre több változót is deklarálhat a neveket vesszővel elválasztva. A változótípus definiálásához használhatja a név után a típusdeklarációs jelet vagy a megfelelő kulcsszót.
Példák a változók deklarálására (meghatározására):
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'
Miután egy változót egy bizonyos típusnak deklarált, ugyanilyen név alatt nem adhat meg újra egy másik változót más típussal!
Változódeklarációk kényszerítése
A változódeklaráció erőltetésére használja az alábbi parancsot:
Option Explicit
Az Option Explicit utasításnak a modul első sorában kell állni, az első SUB utasítás előtt. Általában csak a tömböket kell explicit módon deklarálni. Az összes többi változó a típusdeklarációs karakternek megfelelően lesz deklarálva, vagy - ha az nincs megadva - az alapértelmezett Single (egyszeres pontosságú) típusként.
Változók típusai
A LibreOffice Basic négy változóosztályt támogat:
-
A Numerikus változók számértékeket tartalmazhatnak. Néhány változó nagy vagy kis számokat tartalmaz, mások pedig lebegőpontos vagy törtszámokhoz használhatók.
-
A String (karakterlánc) változók karakterláncokat tartalmaznak.
-
A Boolean (logikai) változók TRUE (igaz) vagy FALSE (hamis) értéket tartalmaznak.
-
Az Object (objektum) változók különböző típusú objektumokat tárolhatnak, mint például a dokumentumokon belüli táblázatok vagy dokumentumok.
Integer (egész szám) változók
Az integer (egész szám) változók értéke -32768-tól 32767-ig terjedhet. Ha egy lebegőpontos értéket rendel egy integer (egész szám) változóhoz, akkor a tizedesjegyek kerekítve lesznek a következő egész számra. Az integer (egész szám) változókat a program gyorsan ki tudja számítani az eljárásokban és megfelelnek a ciklusokban lévő számlálóváltozókhoz. Egy integer (egész szám) változó csak két bájt memóriát foglal el. A „%” a típusdeklarációs karakter.
Dim Variable%
Dim Variable As Integer
Long integer (hosszú egész szám) változók
A long integer (hosszú egész szám) változók értéke -2147483648-tól 2147483647-ig terjedhet. Ha egy lebegőpontos értéket rendel egy long integer (hosszú egész szám) változóhoz, akkor a tizedesjegyek kerekítve lesznek a következő egész számra. A long integer (hosszú egész szám) változók gyorsan számolhatók az eljárásokban, és megfelelnek a ciklusokban lévő nagy számlálóváltozókhoz. A hosszú egész szám változó négy bájt memóriát foglal el. Az „&” a típusdeklarációs karakter.
Dim Variable&
Dim Variable As Long
Decimális változók
A decimális változók pozitív, negatív vagy zérus értéket vehetnek fel. A pontosság legfeljebb 29 számjegy.
A decimális számok elé írhat plusz (+) vagy mínusz (-) jeleket (szóközzel vagy anélkül).
Ha egy decimális szám egy egész változóhoz van hozzárendelve, a LibreOffice Basic fel- vagy lekerekíti a számot.
Single (egyszeres pontosságú) változók
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 (dupla pontosságú) változók
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
Currency (pénznem) változók
A currency (pénznem) változók belsőleg 64 bites számokként (8 bájt) tárolódnak, és rögzített decimális számként jelennek meg 15 egész és 4 tizedes értékkel. Az értékek a -922337203685477.5808 - +922337203685477.5807 tartományba esnek. A currency (pénznem) változók a pénznemértékek nagy pontosságú kiszámításához használhatók. A típusdeklarációs karakter a „@”.
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 (karakterlánc) változók
A string (karakterlánc) változók maximum 65535 karakteres karakterláncokat tárolhatnak. Minden karakter a megfelelő Unicode-érték szerint kerül tárolásra. A string (karakterlánc) változók a programokon belüli szövegszerkesztésre és a nem nyomtatható karakterek ideiglenes tárolására alkalmasak maximum 64 kilobájt méretig. A string (karakterlánc) változók tárolásához szükséges memória a változó karaktereinek számától függ. A típusdeklarációs karakter a „$”.
Dim Variable$
Dim Variable As String
Boolean (logikai) változók
A Boolean (logikai) változók csak a két érték egyikét tartalmazzák: TRUE (igaz) vagy FALSE (hamis). A 0-s szám a FALSE (hamis) értéknek, minden más szám a TRUE (igaz) értéknek felel meg.
Dim Variable As Boolean
Date (dátum) változók
A date (dátum) változók csak belső formátumban tárolt dátum- és időértékeket tartalmazhatnak. A date (dátum) változóhoz Dateserial, Datevalue, Timeserial vagy Timevalue függvény segítségével rendelt értékeket a rendszer automatikusan konvertálja belső formátumra. A date (dátum) változókat a Day, Month, Year vagy az Hour, Minute, Second függvénnyel lehet konvertálni normál számmá. A belső formátum lehetővé teszi dátum/idő-értékek összehasonlítását a két szám közötti különbség kiszámításával. Ezek a változók csak a Date kulcsszóval deklarálhatók.
Dim Variable As Date
Változók kezdeti értéke
Ha a változó deklarálásra került, akkor a rendszer automatikusan „Null” értékre állítja. Vegye figyelembe az alábbi jelölési szokásokat:
A numerikus változókhoz a rendszer automatikusan hozzárendeli a „0” értéket, deklarálásuk után.
A date (dátum) változókhoz belsőleg hozzá van rendelve a 0 érték, ami ugyanaz, mintha konvertálná a „0” értéket a Day, Month, Year vagy az Hour, Minute, Second függvénnyel.
String (karakterlánc) változókhoz a rendszer deklaráláskor üres karakterláncot rendel ("").
Tömbök
A LibreOffice Basic egy vagy többdimenziós tömböket ismer, amelyet a megadott változótípus definiál. A tömbök listák és táblázatok szerkesztésére alkalmasak a programokban. A tömb egyedi elemei numerikus indexen keresztül címezhetők.
A tömböket a Dim utasítással kell deklarálni. A tömb indextartománya többféleképp megadható:
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'
Az indextartomány pozitív és negatív számokat is tartalmazhat.
Állandók
Az állandók rögzített értékkel rendelkeznek. A programban csak egyszer vannak megadva, és később nem adhatók meg újra:
Const ConstName=Expression