Мы очень хорошо знаем, что переменная является контейнером для хранения значения. Иногда разработчики могут удерживать более одного значения в одной переменной за раз. Когда ряд значений хранится в одной переменной, он известен как переменная массива.
Содержание:
Объявление массивов
Массивы объявляются так же, как объявлена переменная, за исключением того, что объявление переменной массива использует скобки. В следующем примере размер массива указан в скобках.
'Method 1 : Using Dim
Dim arr1() 'Without Size
'Method 2 : Mentioning the Size
Dim arr2(5) 'Declared with size of 5
'Method 3 : using 'Array' Parameter
Dim arr3
arr3 = Array("apple","Orange","Grapes")
- Хотя размер массива указывается как 5, он может содержать 6 значений, поскольку индекс массива начинается с ZERO.
- Индекс массива не может быть отрицательным.
- Массивы VBScript могут хранить любой тип переменной в массиве. Следовательно, массив может хранить целое число, строку или символы в одной переменной массива.
Назначение значений массиву
Значения присваиваются массиву, указывая значение индекса массива для каждого из назначаемых значений. Это может быть строка.
ПримерДобавьте кнопку и добавьте следующую функцию.
Private Sub Constant_demo_Click()
Dim arr(5)
arr(0) = "1" 'Number as String
arr(1) = "VBScript" 'String
arr(2) = 100 'Number
arr(3) = 2.45 'Decimal Number
arr(4) = #10/07/2013# 'Date
arr(5) = #12.45 PM# 'Time
msgbox("Value stored in Array index 0 : " & arr(0))
msgbox("Value stored in Array index 1 : " & arr(1))
msgbox("Value stored in Array index 2 : " & arr(2))
msgbox("Value stored in Array index 3 : " & arr(3))
msgbox("Value stored in Array index 4 : " & arr(4))
msgbox("Value stored in Array index 5 : " & arr(5))
End Sub
Когда вы выполняете вышеуказанную функцию, она производит следующий вывод.
Value stored in Array index 0 : 1Value stored in Array index 1 : VBScriptValue stored in Array index 2 : 100Value stored in Array index 3 : 2.45Value stored in Array index 4 : 7/10/2013Value stored in Array index 5 : 12:45:00 PMМногомерные массивы
Массивы не ограничиваются одним измерением, однако они могут иметь максимум 60 измерений. Двумерными массивами являются наиболее часто используемые.
примерВ следующем примере многомерный массив объявляется с тремя строками и четырьмя столбцами.
Private Sub Constant_demo_Click()
Dim arr(2,3) as Variant ' Which has 3 rows and 4 columns
arr(0,0) = "Apple"
arr(0,1) = "Orange"
arr(0,2) = "Grapes"
arr(0,3) = "pineapple"
arr(1,0) = "cucumber"
arr(1,1) = "beans"
arr(1,2) = "carrot"
arr(1,3) = "tomato"
arr(2,0) = "potato"
arr(2,1) = "sandwitch"
arr(2,2) = "coffee"
arr(2,3) = "nuts"
msgbox("Value in Array index 0,1 : " & arr(0,1))
msgbox("Value in Array index 2,2 : " & arr(2,2))
End Sub
Когда вы выполняете вышеуказанную функцию, она производит следующий вывод.
Value stored in Array index : 0 , 1 : OrangeValue stored in Array index : 2 , 2 : coffeeОбъявление ReDim
Оператор ReDim используется для объявления переменных динамического массива и распределения или перераспределения пространства для хранения.
СинтаксисReDim [Preserve] varname(subscripts) [, varname(subscripts)]Параметр Описание
- Preserve - необязательный параметр, используемый для сохранения данных в существующем массиве при изменении размера последнего измерения.
- Varname - обязательный параметр, который обозначает имя переменной, которое должно соответствовать стандартным соглашениям об именах.
- Subscript - требуемый параметр, который указывает размер массива.
В следующем примере массив был переопределен, а затем значения сохранялись при изменении существующего размера массива.
Примечание. При изменении размера массива, меньшего, чем это было первоначально, данные в устраненных элементах будут потеряны.
Private Sub Constant_demo_Click()
Dim a() as variant
i = 0
redim a(5)
a(0) = "XYZ"
a(1) = 41.25
a(2) = 22
REDIM PRESERVE a(7)
For i = 3 to 7
a(i) = i
Next
'to Fetch the output
For i = 0 to ubound(a)
Msgbox a(i)
Next
End Sub
Когда вы выполняете вышеуказанную функцию, она производит следующий вывод.
XYZ41.252234567Методы массива
В VBScript есть встроенные функции, которые помогают разработчикам эффективно обрабатывать массивы. Все методы, которые используются вместе с массивами, перечислены ниже. Чтобы узнать об этом, нажмите на имя метода.
Функции для работы с массивами
LBound
Функция LBound возвращает наименьший индекс указанного массива. Следовательно, LBound массива - ZERO.
СинтаксисLBound(ArrayName[,dimension])Параметры и Описание
- ArrayName - обязательный параметр. Этот параметр соответствует имени массива.
- Размер - необязательный параметр. Это принимает целочисленное значение, соответствующее размеру массива. Если это «1», то он возвращает нижнюю границу первого измерения, если это «2», то он возвращает нижнюю границу второго измерения и так далее.
Добавьте кнопку и добавьте следующую функцию.
Private Sub Constant_demo_Click()
Dim arr(5) as Variant
arr(0) = "1" 'Number as String
arr(1) = "VBScript 'String
arr(2) = 100 'Number
arr(3) = 2.45 'Decimal Number
arr(4) = #10/07/2013# 'Date
arr(5) = #12.45 PM# 'Time
msgbox("The smallest Subscript value of the given array is : " & LBound(arr))
' For MultiDimension Arrays :
Dim arr2(3,2) as Variant
msgbox("The smallest Subscript of the first dimension of arr2 is : " & LBound(arr2,1))
msgbox("The smallest Subscript of the Second dimension of arr2 is : " & LBound(arr2,2))
End Sub
Когда вы выполняете вышеуказанную функцию, она производит следующий вывод.
The smallest Subscript value of the given array is : 0The smallest Subscript of the first dimension of arr2 is : 0The smallest Subscript of the Second dimension of arr2 is : 0Функция, которая возвращает целое число, соответствующее наименьшему индексу данных массивов.
UBound
Функция UBound возвращает наибольший индекс указанного массива. Следовательно, это значение соответствует размеру массива.
СинтаксисUBound(ArrayName[,dimension])Параметры и Описание
- ArrayName - обязательный параметр. Этот параметр соответствует имени массива.
- Размер - необязательный параметр. Это принимает целочисленное значение, соответствующее размеру массива. Если это «1», то он возвращает нижнюю границу первого измерения, если он равен «2», то он возвращает нижнюю границу второго измерения и т. д.
Добавьте кнопку и добавьте следующую функцию.
Private Sub Constant_demo_Click()
Dim arr(5) as Variant
arr(0) = "1" 'Number as String
arr(1) = "VBScript 'String
arr(2) = 100 'Number
arr(3) = 2.45 'Decimal Number
arr(4) = #10/07/2013# 'Date
arr(5) = #12.45 PM# 'Time
msgbox("The smallest Subscript value of the given array is : " & UBound(arr))
' For MultiDimension Arrays :
Dim arr2(3,2) as Variant
msgbox("The smallest Subscript of the first dimension of arr2 is : " & UBound(arr2,1))
msgbox("The smallest Subscript of the Second dimension of arr2 is : " & UBound(arr2,2))
End Sub
Когда вы выполняете вышеуказанную функцию, она производит следующий вывод.
The Largest Subscript value of the given array is : 5The Largest Subscript of the first dimension of arr2 is : 3The Largest Subscript of the Second dimension of arr2 is : 2Функция, которая возвращает целое число, соответствующее самому большому индексу данных массивов.
Split
Функция Split возвращает массив, который содержит определенное количество значений, разделенных на основе разделителя.
СинтаксисSplit(expression [,delimiter[, count[, compare]]])Параметры и Описание
- Выражение - требуемый параметр. Строковое выражение, которое может содержать строки с разделителями.
- Разделитель - необязательный параметр. Параметр, который используется для преобразования в массивы на основе разделителя.
- Count - необязательный параметр. Количество подстрок, которые нужно вернуть, и если указано как -1, то возвращаются все подстроки.
- Compare - Необязательный параметр. Этот параметр указывает, какой метод сравнения следует использовать.
- 0 = vbBinaryCompare - выполняет двоичное сравнение
- 1 = vbTextCompare - выполняет текстовое сравнение
Добавьте кнопку и добавьте следующую функцию.
Private Sub Constant_demo_Click()
' Splitting based on delimiter comma '$'
Dim a as Variant
Dim b as Variant
a = Split("Red $ Blue $ Yellow","$")
b = ubound(a)
For i = 0 to b
msgbox("The value of array in " & i & " is :" & a(i))
Next
End Sub
Когда вы выполняете вышеуказанную функцию, она производит следующий вывод.
The value of array in 0 is :RedThe value of array in 1 is : BlueThe value of array in 2 is : YellowФункция, которая возвращает массив, содержащий указанное количество значений. Разделить на разделитель.
Join
Это функция, которая возвращает строку, содержащую указанное количество подстрок в массиве. Это полная противоположная функция метода разделения.
СинтаксисJoin(List[,delimiter])Параметры и Описание
- Список - требуемый параметр. Массив, содержащий подстроки, которые должны быть соединены.
- Разделитель - необязательный параметр. Символ, который используется как разделитель при возврате строки. По умолчанию разделителем является
Space.
Добавьте кнопку и добавьте следующую функцию.
Private Sub Constant_demo_Click()
' Join using spaces
a = array("Red","Blue","Yellow")
b = join(a)
msgbox("The value of b " & " is :" & b)
' Join using $
b = join(a,"$")
msgbox("The Join result after using delimiter is : " & b)
End Sub
Когда вы выполняете вышеуказанную функцию, она производит следующий вывод.
The value of b is :Red Blue YellowThe Join result after using delimiter is : Red$Blue$YellowФункция, которая возвращает строку, содержащую указанное количество подстрок в массиве. Это полная противоположная функция метода разделения.
Filter
Функция фильтра, которая возвращает массив на основе нуля, который содержит подмножество массива строк на основе определенных критериев фильтра.
СинтаксисFilter(inputstrings, value[, include [,compare]])Параметры и Описание
- Inputstrings - обязательный параметр. Этот параметр соответствует массиву строк для поиска.
- Значение - требуемый параметр. Этот параметр соответствует строке для поиска по параметру inputstrings.
- Include - необязательный параметр. Это логическое значение, которое указывает, следует ли возвращать подстроки, которые включают или исключают.
- Compare - Необязательный параметр. Этот параметр описывает, какой метод сравнения строк должен использоваться.
- 0 = vbBinaryCompare - выполняет двоичное сравнение
- 1 = vbTextCompare - выполняет текстовое сравнение
Добавьте кнопку и добавьте следующую функцию.
Private Sub Constant_demo_Click()
Dim a,b,c,d as Variant
a = array("Red","Blue","Yellow")
b = Filter(a,"B")
c = Filter(a,"e")
d = Filter(a,"Y")
For each x in b
msgbox("The Filter result 1: " & x)
Next
For each y in c
msgbox("The Filter result 2: " & y)
Next
For each z in d
msgbox("The Filter result 3: " & z)
Next
End Sub
Когда вы выполняете вышеуказанную функцию, она производит следующий вывод.p
The Filter result 1: Blue
The Filter result 2: Red
The Filter result 2: Blue
The Filter result 2: Yellow
The Filter result 3: Yellow
Функция, которая возвращает массив с нулевым основанием, который содержит подмножество массива строк на основе определенных критериев фильтра.
IsArray
Функция IsArray возвращает логическое значение, указывающее, является ли указанная входная переменная переменной или переменной NOT переменной массива.
СинтаксисIsArray(variablename)пример
Добавьте кнопку и добавьте следующую функцию.
Private Sub Constant_demo_Click()
Dim a,b as Variant
a = array("Red","Blue","Yellow")
b = "12345"
msgbox("The IsArray result 1 : " & IsArray(a))
msgbox("The IsArray result 2 : " & IsArray(b))
End Sub
Когда вы выполняете вышеуказанную функцию, она производит следующий вывод.
The IsArray result 1 : TrueThe IsArray result 2 : FalseФункция, возвращающая логическое значение, указывающее, является ли входная переменная массивом.
Erase
Функция Erase используется для сброса значений массивов фиксированного размера и освобождения памяти динамических массивов.Он ведет себя в зависимости от типа массивов.
СинтаксисErase ArrayName- Фиксированный числовой массив, каждый элемент в массиве сбрасывается до нуля.
- Исправлен строковый массив, каждый элемент в массиве сбрасывается до нулевой длины "".
- Массив объектов, каждый элемент в массиве сбрасывается до специального значения
Nothing.
Добавьте кнопку и добавьте следующую функцию.
Private Sub Constant_demo_Click()
Dim NumArray(3)
NumArray(0) = "VBScript"
NumArray(1) = 1.05
NumArray(2) = 25
NumArray(3) = #23/04/2013#
Dim DynamicArray()
ReDim DynamicArray(9) ' Allocate storage space.
Erase NumArray ' Each element is reinitialized.
Erase DynamicArray ' Free memory used by array.
' All values would be erased.
msgbox("The value at Zeroth index of NumArray is " & NumArray(0))
msgbox("The value at First index of NumArray is " & NumArray(1))
msgbox("The value at Second index of NumArray is " & NumArray(2))
msgbox("The value at Third index of NumArray is " & NumArray(3))
End Sub
Когда вы выполняете вышеуказанную функцию, она производит следующий вывод.
The value at Zeroth index of NumArray is The value at First index of NumArray is The value at Second index of NumArray is The value at Third index of NumArray is Функция, которая восстанавливает выделенную память для переменных массива.
С уважением, авторы сайта Компьютерапия