מדריך VBS – מערכים

מהו מערך?

לרוב, אנו רוצים להציב בתוך משתנה ערך אחד ויחיד. אך לפעמים מתעורר הצורך להציב בתוך המשתנה סדרה של ערכים. בשביל זה קיים המערך (Array).

הצהרת מערך נעשית באמצעות הפקודה Dim, כאשר בסמוך לשם המשתנה, נמצאים סוגריים, ובותכם מצויין כמה תאים יהיו במערך:

Dim arr(3)

מכיוון שמניין התאים בתוך מערך מתחיל מ-0, הצהרנו כאן על מערך המחולק ל-4 תאים.
גישה לתא בודד במערך, לצורך השמה, שינוי ערך או קריאה, נעשית כך:

<Array name>(<Position>)

לדוגמא:

Dim ArrNames(2)
ArrNames(0)= "Moshe"
ArrNames(1) = "Zohar"
ArrNames(3) = "David"

ביכולתינו ליצור גם מערך בעל יותר ממימד אחד:

Dim MyTable(2, 9) 

המערך MyTable מכיל 3 תאים, כאשר כל אחד מהם גם הוא מכיל מערך, בין 10 תאים.
ניתן להגדיר מערך המכיל עד 60 מימדים.

UBound ו- LBound

שתי פונקציות חשובות מאוד, הנוגעות למערכים הם UBound ו- LBound.
פונקציות אלו מחזירות לנו את גבולות המערך.

LBound – Lower Bound

מכיוון שמערך ב- VBScript תמיד מתחיל מ-0, הפונקציה LBound(arrName) תחזיר לנו תמיד 0.

UBound – Upper Bound

פונקציה זו תחזיר לנו את אינדקס התא האחרון במערך. אם הגדרנו מערך:

Dim arr(9)

אזי

UBound(arr)

תחזיר לנו 9.

פונקציה זו שימושית בעיקר כאשר איננו יודעים את גודל המערך.
לדוגמא: בדוגמא הבאה אנו יוצרים מערך באמצעות הפונקציה Split. פונקציה זו מקבלת מחרוזת ותו מפריד, ויוצרת מערך המכיל בכל תא תת-מחרוזת.

arr=Split("bka,yu,ew,89,fdg,hj",",")
For i=LBound(arr) To UBound(arr)
    'some code
Next

הפונקציה Split החזירה לנו מערך בן 6 תאים (ישנן 6 תת מחרוזות המופרדות ע"י פסיק, שהוא התו המפריד ששלחנו לפונקציה), לכן הלולאה תתבצע 6 פעמים.

לולאת For Each … Next

דרך נוספת לעבור על מערך היא באמצאות לולאת For Each…Next.
תפקידה של לולאה זו היא לבצע קוד מסויים עבור כל תא במערך או באוסף:

Dim ArrNames(2), x
ArrNames(0)= "Moshe"
ArrNames(1) = "Zohar"
ArrNames(3) = "David"
For Each x in arrNames
    document.write(x & "
") Next

לולאה זו מבצעת הדפסה אצל הלקוח של כל תא במערך.

תגיות: , , ,

תגובות בפייסבוק