Nápověda LibreOffice 24.8
Následující část popisuje základní použití proměnných v LibreOffice Basic.
Název proměnné může obsahovat maximálně 255 znaků. První znak názvu proměnné musí být písmeno A-Z nebo a-z. V názvu proměnné lze také použít čísla, ale interpunkční symboly a speciální znaky nejsou povoleny s výjimkou podtržítka ("_"). V LibreOffice Basic nezáleží na velikosti písmen v názvech proměnných. Názvy proměnných mohou obsahovat mezery, ale v tom případě musí být uzavřeny do hranatých závorek.
Příklady identifikátorů proměnných:
MyNumber=5 'Správné'
MyNumber5=15 'Správné'
MyNumber_5=20 'Správné'
My Number=20 'Neplatné, proměnné s mezerou v názvu musí být uzavřeny do hranatých závorek'
[My Number]=12 'Správné'
DéjàVu=25 'Neplatné, speciální znaky nejsou povoleny'
5MyNumber=12 'Neplatné, proměnné nemohou začínat číslicí'
Number,Mine=12 'Neplatné, interpunkce není povolena'
V LibreOffice Basic nemusíte proměnné explicitně deklarovat. Deklaraci proměnné lze provést příkazem Dim. Jedním příkazem je možné deklarovat několik proměnných, stačí oddělit názvy čárkou. Chcete-li definovat typ proměnné, použijte po názvu buď znaménko typové deklarace nebo odpovídající klíčové slovo.
Příklady deklarace proměnných:
Dim a$ 'Deklaruje proměnnou "a" jako datový typ String'
Dim a As String 'Deklaruje proměnnou "a" jako datový typ String'
Dim a$, b As Integer 'Deklaruje jednu proměnnou jako String a druhou jako Integer'
Dim c As Boolean 'Deklaruje c jako proměnnou typu Boolean, která může být TRUE nebo FALSE'
Jakmile v deklaraci přiřadíte proměnné určitý typ, není již možné deklarovat proměnnou stejného názvu jako jiný typ!
Pokud deklarujete na jednom řádku kódu více proměnných, je nutné určit pro každou proměnnou typ. Jestliže typ proměnné není explicitně určen, předpokládá se, že proměnná je typu Variant.
' Proměnná "a" i "b" jsou typu Integer
Dim a As Integer, b As Integer
' Proměnná "c" je Variant a "d" je Integer
Dim c, d As Integer
' Proměnnou lze také explicitně deklarovat jako Variant
Dim e As Variant, f As Double
Typ Variant je speciální datový typ, do něhož lze ukládat jakýkoliv druh hodnoty. Další informace naleznete v níže uvedené části Typ Variant.
Chcete-li, aby každá proměnná byla deklarována, použijte následující příkaz:
Option Explicit
Příkaz Option Explicit musí být na prvním řádku modulu, před prvním SUB. Obecně je třeba explicitně deklarovat pouze pole. Všechny ostatní proměnné se deklarují podle znaku typové deklarace nebo (je-li vynechán) jako implicitní typ Single.
LibreOffice Basic podporuje čtyři typy proměnných:
Proměnné typu Numeric mohou obsahovat číselné hodnoty. Některé proměnné se používají k ukládání velkých či malých čísel, jiné pro čísla s plovoucí desetinnou čárkou.
Proměnné typu String obsahují znakové řetězce.
Booleovské proměnné obsahují hodnotu TRUE nebo FALSE.
Proměnné typu Object mohou obsahovat objekty různých typů, např. tabulky nebo dokumenty.
Proměnné typu integer (celá čísla) mají rozsah od -32768 do 32767. Pokud celočíselné proměnné přiřadíte hodnotu s desetinnou čárkou, zaokrouhlí se na nejbližší celé číslo. Celočíselné proměnné se počítají velmi rychle a jsou vhodné pro proměnné čítačů ve smyčkách. Proměnná typu integer vyžaduje v paměti jen dva bajty. Znak typové deklarace je "%".
Dim Variable%
Dim Variable As Integer
Proměnné typu long integer (dlouhá celá čísla) mají rozsah od -2147483648 do 2147483647. Pokud dlouhé celočíselné proměnné přiřadíte hodnotu s desetinnou čárkou, zaokrouhlí se na nejbližší celé číslo. Dlouhé celočíselné proměnné se počítají velmi rychle a jsou vhodné pro proměnné čítačů ve smyčkách. Proměnná typu long integer vyžaduje v paměti čtyři bajty. Znak typové deklarace je "&".
Dim Variable&
Dim Variable As Long
Proměnné typu Float mohou obsahovat kladná nebo záporná čísla s přesností až na 29 desetinných míst.
Jako prefix desetinných čísel můžete použít znaky plus (+) nebo mínus (-) (s mezerami nebo bez).
Pokud přiřadíte desetinné číslo do celočíselné proměnné, LibreOffice Basic zaokrouhlí číslo nahoru nebo dolů.
Proměnné typu Single mohou obsahovat kladné či záporné hodnoty v rozsahu od 3,402823 × 10E38 do 1,401298 × 10E-45. Proměnné Single jsou proměnné v pohyblivé řádové čárce, kde se počet desetinných míst snižuje při zvyšování počtu míst celé části. Proměnné Single jsou vhodné pro matematické výpočty střední přesnosti. Výpočty jsou časově náročnější než pro celočíselné proměnné, ale jsou rychlejší než výpočty s proměnnými Double. Proměnná typu Single vyžaduje v paměti čtyři bajty. Znak typové deklarace je "!".
Dim Variable!
Dim Variable As Single
Proměnné typu Double mohou obsahovat kladné či záporné hodnoty v rozsahu od 1,79769313486232 × 10E308 do 4,94065645841247 × 10E-324. Proměnné Double jsou proměnné v pohyblivé řádové čárce, kde se počet desetinných míst snižuje při zvyšování počtu míst celé části. Proměnné Double jsou vhodné pro přesné matematické výpočty. Výpočty jsou časově náročnější než pro proměnné Single. Proměnná typu Double vyžaduje v paměti osm bajtů. Znak typové deklarace je "#".
Dim Variable#
Dim Variable As Double
Proměnné typu Currency (měna) se interně ukládají jako 64bitová čísla (8 bajtů) a zobrazují se s pevným počtem desetinných míst - 15 míst v celé části a 4 desetinná místa. Rozsah hodnot je od -922337203685477.5808 do +922337203685477.5807. Proměnné Currency se používají pro výpočty s měnami s vysokou přesností. Znak typové deklarace je "@".
Dim Variable@
Dim Variable As Currency
Čísla lze zapsat také v osmičkové a šestnáctkové podobě.
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
Proměnné typu String mohou obsahovat řetězce o délce až 2 147 483 648 znaků. Každý znak je uložen jako odpovídající hodnota Unicode. Proměnné String jsou vhodné pro zpracování slov v programech a dočasné ukládání netisknutelných znaků až do maximální délky 2 GB. Paměť potřebná k uložení proměnné String závisí na počtu znaků v proměnné. Znak typové deklarace je "$".
U řetězcových funkcí v jazyce BASIC má první znak řetězce index 1.
Dim Variable$
Dim Variable As String
Booleovské proměnné mohou obsahovat jen dvě hodnoty: TRUE nebo FALSE. Číslo 0 se vyhodnotí jako FALSE, všechna ostatní jako TRUE.
Dim Variable As Boolean
Proměnné typu Date mohou obsahovat jen data nebo časy uložené v interním formátu. Hodnoty přiřazené proměnným Date pomocí Dateserial, Datevalue, Timeserial nebo Timevalue se automaticky převedou na interní formát. Datové proměnné převedete na normální čísla pomocí funkcí Day, Month, Year nebo Hour, Minute, Second. Interní formát umožňuje porovnání dvou datových/časových hodnot pomocí výpočtu rozdílu mezi čísly. Tyto proměnné lze deklarovat jen klíčovým slovem Date.
Dim Variable As Date
Datové literály umožňují jednoznačně určit proměnnou data, která je nezávislá na aktuálním jazyku. Literály se uzavírají znaky křížků #. Lze použít formáty:
#yyyy-mm-dd#
#mm/dd/yyyy#
start_date = #12/30/1899# ' = 1
dob = #2010-09-28#
Proměnné deklarované jako Variant mohou zpracovat jakýkoliv datový typ. To znamená, že se skutečný datový typ určí až za běhu programu, když je do proměnné přiřazena hodnota.
Proměnnou typu Variant lze vytvořit třemi hlavními způsoby, jak ukazuje následující kód:
Dim varA ' Typ není určen, proto je proměnná Variant
Dim varB as Variant ' Proměnná je explicitně deklarována jako Variant
varC = "abc" ' Dříve nedeklarované proměnné jsou považovány za Variant
V následujícím příkladu se používá Funkce TypeName pro ukázku toho, jak se typ proměnné Variant mění podle přiřazené hodnoty.
Dim myVar As Variant
MsgBox TypeName(myVar) ' Empty
myVar = "Hello!"
MsgBox TypeName(myVar) ' String
myVar = 10
MsgBox TypeName(myVar) ' Integer
Proměnná Variant je inicializována speciálním datovým typem Empty. Otestovat, zda je proměnná Empty Variant, můžete pomocí funkce IsEmpty.
Pro deklaraci proměnné jako Variant můžete použít také klíčové slovo Any. To je však zastaralé a k dispozici je pouze kvůli zpětné kompatibilitě.
U argumentů typu Variant nebo Any předávaných ve voláních funkcí se nekontrolují jejich typy.
Dim myVar As Any ' Proměnná "myVar" je Variant
Jakmile je proměnná deklarována, její hodnota je automaticky nastavena na "Null". Platí následující pravidla:
Proměnným typu Numeric se automaticky přiřadí hodnota "0", jakmile jsou deklarovány.
Proměnným typu Date se interně přiřadí 0, což odpovídá převodu hodnoty na "0" pomocí funkce Day, Month, Year nebo Hour, Minute, Second.
Proměnným typu String se při deklaraci přiřadí prázdný řetězec ("").
LibreOffice Basic zná jedno- či vícerozměrná pole, definovaná určeným typem proměnné. Pole jsou vhodná pro seznamy a tabulky v programu. K jednotlivým prvkům pole lze přistupovat pomocí číselného indexu.
Pole musí být deklarována příkazem Dim. Existuje několik možností, jak definovat rozsah pole:
Dim Text$(20) '21 prvků číslovaných od 0 do 20'
Dim Text$(5,4) '30 prvků (matice 6 × 5 prvků)'
Dim Text$(5 To 25) '21 prvků číslovaných od 5 do 25'
Dim Text$(-15 To 5) '21 prvků (včetně 0) číslovaných od -15 do 5'
Index může obsahovat kladná i záporná čísla.
Konstanty mají pevnou hodnotu. V programu se definují jen jednou a nelze je později předefinovat:
Const ConstName=Expression