![]() |
![]() |
| ||||||||||||
AdatmezőkAz egyszerű (skaláris) változók mellett a StarOffice Basic támogatja az adatmezők (tömbök) használatát is. Egy adatmező számos változóból áll, amelyeket egy indexen keresztül lehet elérni. Egyszerű tömbökA tömbdeklaráció hasonlít az egyszerű változók deklarációjához. Viszont a változódeklarációkkal ellentétben a tömbneveket zárójelek követik, amelyekben az elemek számára vonatkozó specifikáció található. A
kifejezés deklarált egy tömböt, amely négy variant típusú változót tartalmaz: SajatTomb(0), SajatTomb(1), SajatTomb(2) és SajatTomb(3). A tömbben típusspecifikus változókat is deklarálhatunk. Például a következő sor deklarál egy tömböt négy integer (egész szám) változóval:
Az előző példákban a tömbök indexe mindig a szabványos 0 értékkel kezdődik. Ha szükség van rá, megadhatunk egy tartományt is a kezdő és befejező érték megadásával a tömbdeklarációban. A következő példa létrehoz egy tömböt hat integer (egész szám) értékkel, amelyek az 5-től 10-ig terjedő indexszel érhetők el:
Az indexeknek nem kell pozitív értékeknek lenniük. A következő példa szintén egy helyes deklarációt mutat be, de negatív tömbhatárokkal:
Deklarál egy tömböt hat integer (egész szám) értékkel, amelyek a -10-től -5-ig terjedő indexszel érhetők el A tömbindex megadásánál három szabályt kell figyelembe venni:
Megjegyzés - A VBA-ban néha egyéb tömbindex-határértékek is érvényesek lehetnek. Ugyanez vonatkozik a dimenziónkénti elemek számára is. Az érvényes értékek a megfelelő VBA-dokumentációban találhatók meg. A kezdőindex értékeA tömb kezdőindexének értéke általában 0. Ha szükséges, módosíthatjuk az összes tömbdeklaráció kezdőindexét a következő utasítással:
Ezt az utasítást a modul fejlécében kell elhelyezni, ha azt akarjuk, hogy a modul összes tömbdeklarációjára vonatkozzon. Viszont ez nincs hatással az UNO-sorozatokra, amelyeket a StarOffice API definiál, és amelyek mindig a 0-s indexszel kezdődnek. Éppen ezért lehetőleg tartózkodjunk az Option Base 1 használatától. Egy tömb elemeinek számát nem befolyásolja az Option Base 1 használata, csak a kezdőindex módosul. Az
deklaráció létrehoz egy 4 integer (egész szám) változót, amelyek a következő kifejezésekkel írhatók le: SajatEgesz(1), SajatEgesz(2), SajatEgesz(3) és SajatEgesz(4). Megjegyzés - A StarOffice Basic programban az Option Base 1 kifejezés nem befolyásolja a tömb elemeinek számát, mint a VBA-ban. A StarOffice Basic programban ehelyett inkább a kezdőindex változik. Míg a SajatEgesz(3) három integer (egész szám) értéket hoz létre a VBA-ban, az 1-3 indexszel, addig ugyanaz a deklaráció a StarOffice Basic programban négy integer (egész szám) értéket hoz létre, az 1-4 indexszel. Az Option Compatible utasítás hatására a StarOffice Basic a VBA-val megegyező módon működik. Többdimenziós tömbökAz egydimenziós tömbökön felül a StarOffice Basic program támogatja a többdimenziós tömbök használatát. A dimenziókat vesszővel kell elválasztani. A
példa egy integer (egész szám) tömböt definiál két dimenzióval, mindegyiket 6 indexszel (amelyek a 0-5 indexszel érhetők el). Az egész tömb 6 x 6 = 36 integer (egész szám) értéket tartalmazhat. Annak ellenére, hogy több száz dimenziót is definiálhatunk a StarOffice Basic-tömbökben, a dimenziók számát a rendelkezésre álló memória korlátozza. A tömbdimenziók dinamikus módosításaAz előző példákban a tömböknek egy adott méretük volt. Létrehozhatunk viszont olyan tömböket is, ahol a dimenziók dinamikusan módosulnak. Például definiálhatunk egy tömböt, amely egy adott szöveg A betűvel kezdődő szavait fogja tartalmazni. Mivel ez a szám előzetesen nem ismert, a tömb határait menet közben módosítanunk kell. Ehhez a StarOffice Basic a következő utasítást biztosítja:
Megjegyzés - A VBA-val ellentétben, ahol a Dim SajatTomb() utasítással csak a dinamikus tömböket dimenzionálhatjuk, a StarOffice Basic programban a statikus és a dinamikus tömböket is módosíthatjuk a ReDim utasítással. A következő példa módosítja az eredeti tömbdimenziókat, így tömb 11 vagy 21 értéket tartalmazhat.
Ha újra beállítjuk egy tömb dimenzióit, akkor bármelyiket használhatjuk az előző részekben ismertetett lehetőségek közül. Ez magában foglalja a többdimenziós tömbök deklarálását és a kezdő és befejező értékek megadását is. Ha a tömb dimenziói módosulnak, minden adata elveszik. Ha meg akarjuk tartani az eredeti értékeket, használjuk a Preserve parancsot.
Ha a Preserve parancsot használjuk, győződjünk meg róla, hogy a dimenziók száma és a változók típusa ugyanaz marad. Megjegyzés - A VBA-val ellentétben, ahol csak a tömb utolsó dimenziójának felső korlátja módosítható a Preserve paranccsal, a StarOffice Basic programban a többi dimenzió is módosítható. Ha a ReDim parancsot a Preserve paranccsal együtt használjuk, ugyanazt az adattípust kell használnunk, amelyet az eredeti deklarációban. Változók hatásköre és élettartamaA StarOffice Basic programban a változóknak korlátozott élettartamuk van, és korlátozott hatáskörük, amelyben beolvashatók és használhatók más programrészekből. A változó élettartama és az, hogy honnan érhető el, az adott változó helyétől és típusától függ. Helyi változókA függvényben vagy eljárásban deklarált változókat helyi változóknak nevezik:
A helyi változók csak addig érvényesek, amíg az adott függvény vagy eljárás fut, utána az értékük visszaáll nullára. A függvény minden meghívásakor az előzőleg tárolt értékek már nem érhetők el. Az előző értékek megtartásához a változót a Static típusúnak kell definiálni:
| ||||||||||||
| ||||||||||||