|
N. G. Mardanova
|
bet | 46/101 | Sana | 24.01.2024 | Hajmi | 3,88 Mb. | | #145014 |
Bog'liq Access 2 лотин (2)Dim(to,... ) As
Masalan, agar siz meteorologik ma’lumotlar massivi bilan ishlamoqchi bo‘lsangiz, oxirgi ikki xafta ichidagi o‘rtacha kunduzgi xarorratni ko‘rsatuvchi, u xolda massivning quyidagi aniqlanishi qulay bo‘ladi.
Dim Temperature(-14 to 0) As Single
Bunda, masalan temperature(-2) o‘tgan kungi xaroratga to‘g‘ri keladi, kerakli indeksni aniqlash uchun esa sizni qiziqtirayotgan kun uchun kerakli sana farqidan foydalanish kifoya.
Yuqorida ko‘rilgan misollarda gap massivning mustaxkam o‘lchovlari xaqida borgan edi, unda elementlar soni massivning operator Dim tavsifida aniq ko‘rsatilgan. Bunday massivlar statik massiv deyiladi.
VBA da dinamik massivlar ham qo‘llanilishi ruxsat etiladi, bunda ularning o‘lchamlari tavsifi qayd etilmaydi. Dinamik massiv o‘lchamlari muayyan dastur bajarilayotganda o‘rnatishimumkin.
Dinamik massiv aniqlanayotganda operator Dim da massiv nomidan so‘ngbo‘sh qavslar turadi va o‘zgaruvchan tipi tavsifi keladi. Indekslar soni va ular o‘zgarishining diapazoni berilmaydi. Lekin massiv foydalanilishidan oldin, operator ReDim bajarilishi kerak, u dinamik massiv indeksining o‘lchamlari va diapazon o‘zgarishini beradi.
Dinamik massivning e’lon va o‘lchamlari aniqlashining sintaksisi:
Dim() As
ReDim(, ,... )
dinamik massivda e’loni, o‘lchamlarini aniqlash va foydalanish, o‘lchamlari va kattaligi o‘zgarishi quyidagicha bo‘lishi mumkin:
Dim dArray()As Variant
ReDim dArray(1, 2)
dArray(0, 0)=2
dArray(0, 1)=3
k=dArray(0, 0)+dArray(0, 1)
ReDim dArray(k)
dArray(0)="Stroka1"
Bu masalada massiv dArray boshida xuddi ikki o‘lchamli olti elementdan iborat massivdek aniqlanadi so‘ngboshqatdan xuddi bir o‘lchamli massivdek aniqlanadi, bunda yuqori chegara indeksi o‘zgaruvchi k ning qiymatida beriladi.
Massivning shu paytdagi yuqori va pastki chegaralarini aniqlash uchun LBound va UBound funksiyalaridan foydalanish mumkin albatta.
Ko‘zda tutilgan xolda massivning o‘lchamlari o‘zgarganda unga yangidan xotira ajratiladi va uning elementlarining qiymatlari yo‘qoladi.
Massivning joriy qiymatini yo‘qotmaslik uchun uning o‘lchovlari o‘zgartirilganda Preserve so‘zi ishlatiladi. Masalan massivning dArray o‘lchamini bir elementiga oshirish uchun bor elementlarning qiymatini yo‘qotmagan xolda, quyidagidek bajarish mumkin.
ReDim Preserve dArray(UBound(dArray)+1)
|
| |