PoprzedniaWyżejGłównaSpis treściIndex hasełZnajdźBokGora
BokGora

Google
 

Tablice - Arrays


Tablica jest zbiorem zmiennych tego samego typu danych. Jest ona stosowana do zgrupowania razem zmiennych zależnych. Na przykład, można stworzyć tablicę 100 liczb całkowitych w celu przechowywania numerów identyfikacyjnych ID 100 urzędników jakiegoś przedsiębiorstwa, zamiast tworzenia 100 niezależnych zmiennych. Lub można stworzyć tablicę 10 stringów, aby przechować 10 różnych komunikatów, które mogą być wyświetlone za pomocą okienka dialogowego.

Deklarowanie tablic


Aby zadeklarować tablicę należy użyć słowa kluczowego Dim, Public, Private lub Static. Tablica jest deklarowana podobnie jak zwykła zmienna, tylko, że za nazwą zmiennej w deklaracji zmiennej podaje się rozmiar tablicy.
Tablice statyczne mają z góry określony rozmiar, który należy podać podczas deklaracji.
Tablice dynamiczne mają nieokreślony rozmiar, który może być wielokrotnie zmieniany w czasie wykonywania programu przy pomocy rozkazu ReDim.

Domyślą dolną wartością zakresu tablicy jest 0, jednak wartość ta może być zmieniona przy użyciu rozkazu Option Base. Górna granica tablicy statycznej musi być określona przy deklaracji tablicy. Można to zrobić podając za nazwą zmiennej w deklaracji zmiennej wymiary tablicy. Jeżeli zostanie podana tylko jedna liczba, to traktowana jest ona jako górny zakres tablicy.
Przykład deklaracji takiej tablicy:

Dim varTablica1 (10)

Przykład ten deklaruje tablicę o nazwie varTablica1. Górny zakres tablicy ma wartość 10 a dolny jest określony przez rozkaz Option Base (domyślnie 0, więc wtedy tablica ta ma 11 elementów, pierwszy o indeksie 0, 11-sty o indeksie 10).
Można również zadeklarować tablicę podając dolny i górny zakres wykorzystując składnię:

DolnyZakres To GórnyZakres

Przykładem może być deklaracja:

Dim varTablica2 (5 To 15)

Ta tablica ma 11 elementów (pierwszy o indeksie 5, 11-sty o indeksie 15).

Aby zadeklarować tablicę dynamiczną, bez podawania jej wymiarów należy za nazwą tablicy wstawić nawiasy okrągłe (). Rozmiar takiej tablicy należy ustawić później w programie przy użyciu instrukcji ReDim. Instrukcja ta pozwala na zmianę rozmiarów tablicy (również z zachowaniem jej zawartości). Rozmiar tablicy dynamicznej można wielokrotnie zmieniać w programie.

Przykład tablicy dynamicznej:

Dim varTablicaDynamiczna ()
   'deklaracja tablicy dynamicznej
ReDim varTablicaDynamiczna (10)
   'ustalenie rozmiarów tablicy
...
ReDim varTablicaDynamiczna (15)
   'zmiana rozmiarów tablicy

W przypadku wielowymiarowych tablic dynamicznych, rozkazem ReDim można zmieniać tylko rozmiar ostatniego wymiaru.

na górę strony...

Tablice wielowymiarowe

Visual Basic umożliwia tworzenie tablic wielowymiarowych, których elementy muszą być identyfikowane przez kilka wartości indeksów (można tworzyć tablice, aż do 60-wymiarowych)
Przykładowa dwuwymiarowa tablica typu Integer o nazwie varSzachy będzie reprezentować typową szachownicę 8 na 8. Należy zadeklarować tablicę:

Dim varSzachy (1 To 8, 1 To 8) As Integer

Jeżeli Option Base będzie ustawione na 1, można użyć deklaracji:

Dim varSzachy (8, 8) As Integer

Kwadrat w lewym górnym rogu tabeli jest identyfikowany jako varSzachy(1,1), co oznacza, że pole znajduje się na przecięciu kolumny 1 i wiersza 1. Pole w prawym dolnym rogu tabeli jest identyfikowane jako varSzachy(8,8) i tak dalej.
Dwuwymiarowe tablice są używane do przechowywania danych, które mają dwa "wymiary" z nimi powiązane. Każdy element w varSzachy ma numer wiersza i kolumny.
Aby wyznaczyć liczbę elementów w dwuwymiarowej tablicy, należy pomnożyć liczbę elementów w każdym wymiarze. W varSzachy istnieją 64 elementy, 8 wierszy na 8 kolumn. Ponieważ każdy element jest typu Integer (co zajmuje dwa bajty pamięci), varSzachy zajmie 128 bajtów pamięci.
Ponieważ wielowymiarowe (i jednowymiarowe) tablice mogą zająć znaczną pojemność pamięci, należy ostrożnie je stosować. Należy być szczególnie ostrożnym z tablicami typu Variant, ponieważ każda zmienna Variant może zajmować do 65,500 bajtów.

na górę strony...

Indeksowanie tablic

Elementy tablicy są indeksowane, każdy z nich posiada swój indeks (pozycję w tablicy). Granice tablicy odnoszą się do minimalnej i maksymalnej wartości indeksu. Górną granicą tablicy varTablica1 jest 10, a varTablica2 jest 15, dolną varTablica1 jest 0 a varTablica2 jest 5. Aby odnieść się do pojedynczego elementu tablicy, należy umieścić jego numer indeksu w nawiasach na końcu nazwy tablicy. Na przykład, aby odnieść się do pierwszego, 5-go i 10-go elementu tablic varTablica1 i varTablica2 w kodzie należy użyć odpowiednio:

varTablica1 (0)
varTablica2 (5)
   'pierwsze elementy tablic
varTablica1 (4)
varTablica2 (9)
   'piąte elementy tablic
varTablica1 (9)
varTablica2 (14)
   'dzisiąte elementy tablic

Przykład, jak można odnieść się do elementu tablicy w kodzie:

varTablica1 (3) = 28759

Ta instrukcja ustawia 4-ty element tablicy varTablica1 na wartość 28759. Aby wyczyścić zawartość tablicy należy użyć rozkazu Erase

Przy indeksowaniu tablic wielowymiarowych, indeksy kolejnych wymiarów należy oddzielić od siebie przecinkami, np:

varTablicaWielowymiarowa (2, 4, 6, 10)

na górę strony...

Zmiana domyślnej dolnej granicy tablicy


Zazwyczaj dobrze się pracuje z tablicą, której dolna granica wynosi 0 (to znaczy, którego pierwszy element ma numer indeksu 0). Lub też może być kłopotliwe odnoszenie się do pierwszego elementu jako do varTablica1(0), dziesiątego jako varTablica1(9) i tak dalej. Jeżeli tak jest, można użyć instrukcji Option Base w celu dokonania zmiany standardowej dolnej granicy dla wszystkich tablic w formularzu lub ogólnym module. Należy w częsci General Declartions formularza lub ogólnego modułu wstawić wiersz:

Option Base 1

1 jest domyślna dolną granicą (pierwszym numerem indeksu) wszystkich tablic w formularzu lub ogólnym module (może to być 0 lub 1). Można spowodować, że pierwszym elementem tablic będzie albo varTablica1(0) albo varTablica1(1).
Instrukcja Option Base ustawia domyślną dolną granicę dla wszystkich tablic formularza lub ogólnego modułu (które zostały zadeklarowane bez podania DolnegoZakresu), gdzie została użyta. Nie można użyć Option Base do zmiany dolnej granicy tylko jednej tablicy w formularzu lub ogólnym module.


na górę strony...

Zasięg tablic

Zasięg tablicy jest wyznaczony przez słowo kluczowe, które zostanie użyte w celu zadeklarowania tablicy i przez lokalizację tej deklaracji.

Zasięg Lokalizacja deklaracji Słowo kluczowe
Prywatny poziom procedury Procedura Dim lub Static (Static tworzy tablicę statyczną)
Prywatny poziom modułu Część General Declarations typowego modułu lub formularza Private lub Dim
Publiczny poziom modułu Część General Declarations typowego modułu (nie formularza) Public


na górę strony...


Google
 
Poprzednia | Wyżej | Strona główna | Spis Treści | Index haseł | Opis VB

BokDol
PoprzedniaWyżejGłównaSpis treściIndex hasełZnajdźBokGora
BokGora