IBM Lotus Symphony
|
Służy do deklarowania zmiennej lub tablicy.
Jeśli zmienne są oddzielone przecinkami (na przykład DIM sPar1, sPar2, sPar3 AS STRING), zdefiniować można wyłącznie zmienne typu Variant. Każdą zmienną należy definiować w oddzielnym wierszu.
DIM sPar1 AS STRING
DIM sPar2 AS STRING
DIM sPar3 AS STRING
Instrukcja Dim deklaruje lokalne zmienne w procedurach podrzędnych. Zmienne globalne są deklarowane za pomocą instrukcji PUBLIC lub PRIVATE.
{ReDim | Dim} Nazwa_zmiennej [(początek To koniec)] [As Typ_zmiennej][, Nazwa_zmiennej2 [(początek To koniec)] [As Typ_zmiennej][,...]]
Nazwa_zmiennej: Nazwa zmiennej lub tablicy.
początek, koniec: Wartości liczbowe lub stałe, które określają liczbę elementów i zakres indeksu, przy czym Liczba elementów=(koniec-początek)+1.
Wartości początek i koniec mogą być wyrażeniami liczbowymi, jeśli instrukcję ReDim zastosowano na poziomie procedury.
Typ_zmiennej: Słowo kluczowe deklarujące typ danych zmiennej.
Słowo kluczowe: Typ zmiennej.
Bool: Zmienna przyjmująca wartości logiczne True i False (prawda i fałsz).
Currency: Zmienna waluty (waluta z 4 miejscami dziesiętnymi).
Date: Zmienna daty.
Double: Zmienna przyjmująca wartości zmiennopozycyjne podwójnej precyzji (1,79769313486232 x 10E308 - 4,94065645841247 x 10E-324)
Integer: Zmienna przyjmująca wartości całkowite (od -32768 do 32767).
Long: Zmienna przyjmująca wartości całkowite długie (od -2 147 483 648 do 2 147 483 647).
Object: Zmienna do przechowywania obiektów. Uwaga: Wartości zmiennych tego typu można następnie definiować wyłącznie za pomocą instrukcji Set!
Single: Zmienna przyjmująca wartości zmiennoprzecinkowe o pojedynczej precyzji (od 3,402823 x 10E38 do 1,401298 x 10E-45).
String: Zmienna do przechowywania łańcucha złożonego maksymalnie z 64 000 znaków ASCII.
[Variant]: Zmienna typu Variant. Pozwala przechowywać dane wszystkich typów (konkretny typ określany jest przy definicji). Jeśli nie zostanie określone słowo kluczowe, zmienne są automatycznie definiowane jako typ Variant, o ile nie została użyta instrukcja od DefBool do DefVar.
W języku Basic programu Lotus® Symphony™ jawne deklarowanie zmiennych nie jest konieczne. Zanim jednak będzie można używać tablicy, trzeba ją zadeklarować. Zmienną można zadeklarować za pomocą instrukcji Dim, oddzielając wielokrotne deklaracje przecinkami. Aby zadeklarować typ zmiennej, należy wprowadzić nazwę zmiennej zaczynającą się od znaku deklaracji typu lub użyć odpowiedniego słowa kluczowego.
Środowisko języka Basic programu Lotus Symphony obsługuje jedno- i wielowymiarowe tablice definiowane przy użyciu określonego typu zmiennej. Tablice są przydatne w programach zawierających listy lub tabele, które mają być edytowane. Zaletą tablic jest to, że pojedyncze elementy można adresować za pomocą indeksów będących wyrażeniami liczbowymi lub zmiennymi.
Do deklarowania tablic służy instrukcja Dim. Zakres indeksu można zdefiniować na dwa sposoby:
DIM tekst(20) as String REM 21 elementów ponumerowanych od 0 do 20
DIM tekst(5 to 25) as String REM 21 elementów ponumerowanych od 5 do 25
DIM tekst(-15 to 5) as String REM 21 elementów (łącznie z 0)
REM ponumerowanych od -15 do 5
Dwuwymiarowe pole danych
DIM tekst(20,2) as String REM 63 elementy; poziom 1: od 0 do 20, poziom 2: do 0 do 20 i poziom 3: od 0 do 20.
Tablice można deklarować dynamicznie, definiując liczbę wymiarów za pomocą instrukcji ReDim w procedurze podrzędnej lub funkcji zawierającej dane tablice. Generalnie wymiar tablicy można zadeklarować jeden raz i nie można go modyfikować. W ramach procedury podrzędnej można zadeklarować tablicę za pomocą instrukcji ReDim. Wymiary mogą być definiowane wyłącznie za pomocą wyrażeń liczbowych. Daje to pewność, że pola nie będą większe niż jest to potrzebne.
Sub Przyklad_Dim1
Dim sZm As String
Dim iZm As Integer
sZm = "Lotus Symphony"
End Sub
Sub Przyklad_Dim2
REM Dwuwymiarowe pole danych
Dim stekst(20,2) as String
Const sDim as String = " Wymiar:"
for i = 0 to 20
for ii = 0 to 2
stekst(i,ii) = str(i) & sDim & str(ii)
next ii
next i
for i = 0 to 20
for ii = 0 to 2
msgbox stekst(i,ii)
next ii
next i
End Sub