¿Qué es un arreglo/matriz?
Sabemos muy bien que una variable es un contenedor para almacenar un valor. A veces, los desarrolladores están en condiciones de mantener más de un valor en una sola variable a la vez. Cuando se almacena una serie de valores.Declaración de un arreglo/matriz
Las matrices se declaran de la misma manera que se ha declarado una variable, excepto que la declaración de una variable de matriz utiliza paréntesis. En el siguiente ejemplo, el tamaño de la matriz se menciona en el sujetador'Método 1 : Utilizando Dim
Dim arr1() 'Without Size
'Método 2: Mencionando el tamaño
Dim arr2(5) 'Declarado con tamaño de 5
'Método 3: usar el parámetro 'Array'
Dim arr3 arr3 = Array("apple","Orange","Grapes")
- Aunque el tamaño de la matriz se indica como 5, puede contener 6 valores ya que el índice de la matriz comienza desde CERO.
- El índice de matriz no puede ser negativo.
- Las matrices de VBScript pueden almacenar cualquier tipo de variable en una matriz. Por lo tanto, una matriz puede almacenar un número entero, una cadena o caracteres en una sola variable de matriz.
Asignación de valores a una matriz
Los valores se asignan a la matriz especificando el valor del índice de la matriz contra cada uno de los valores que se asignarán. Puede ser una cuerda.
Ejemplo
Dim arr(5) arr(0) = "1" 'Número como cadena arr(1) = "VBScript" 'Cadena arr(2) = 100 'Número arr(3) = 2.45 'Número decimal arr(4) = #10/07/2013# 'Fecha arr(5) = #12.45 PM# 'Hora Print "Valor almacenado en el índice de matriz 0 : " & arr(0) Print "Value stored in Array index 1 : " & arr(1) Print "Value stored in Array index 2 : " & arr(2) Print "Value stored in Array index 3 : " & arr(3) Print "Value stored in Array index 4 : " & arr(4) Print "Value stored in Array index 5 : " & arr(5)
Resultado
Value stored in Array index 0 : 1 Value stored in Array index 1 : VBScript Value stored in Array index 2 : 100 Value stored in Array index 3 : 2.45 Value stored in Array index 4 : 7/10/2013 Value stored in Array index 5 : 12:45:00 PM
Matrices Multidimensionales
Las matrices no solo se limitan a una sola dimensión y pueden tener un máximo de 60 dimensiones. Las matrices de dos dimensiones son las más utilizadas.Ejemplo
En el siguiente ejemplo, se declara una matriz multidimensional con 3 filas y 4 columnas.Dim arr(2,3) ' Que tiene 3 filas y 4 columnas 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" Print "Valor almacenado en el índice 0,1 : " & arr(0,1) Print "Valor almacenado en el índice de matriz 2,2 : " & arr(2,2)
Resultado
Value stored in Array index : 0 , 1 : Orange Value stored in Array index : 2 , 2 : coffee
Sentencia Redim
La instrucción ReDim se utiliza para declarar variables de matriz dinámica y asignar o reasignar espacio de almacenamiento.ReDim [Preserve] varname(subscripts) [, varname(subscripts)]
Parametro | Tipo de parametro | Descripción |
---|---|---|
Preserve | Requerido | se utiliza para preservar los datos en una matriz existente cuando cambia el tamaño de la última dimensión. |
varname | Requerido | nombre de la variable, que debe seguir las convenciones de nomenclatura de variables estándar.. |
subscripts | Requerido | indica el tamaño de la matriz. |
Ejemplo
En el ejemplo a continuación, una matriz se ha redefinido y luego se han conservado los valores cuando se cambia el tamaño existente de la matriz.Nota: Al cambiar el tamaño de una matriz más pequeña de lo que era originalmente, los datos en los elementos eliminados se perderán.
Dim a() 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 'para obtener la salida For i = 0 to ubound(a) Msgbox a(i) Next
Resultado
XYZ 41.25 22 3 4 5 6 7
Métodos para matrices
Hay varias funciones integradas dentro de VBScript que ayudan a los desarrolladores a manejar las matrices de manera efectiva. Todos los métodos que se utilizan junto con las matrices se enumeran a continuación. Por favor haga clic en tFunción | Descripción |
---|---|
LBound | Una función, que devuelve un número entero que corresponde al subíndice más
pequeño de las matriz. |
UBound | Una función, que devuelve un entero que corresponde al subíndice más grande
de la matriz. |
Split | A Function, which returns an array that contains a specified number of values.
Splitted based on a Delimiter. |
Join | A Function, which returns a String that contains a specified number of substrings in an array.
This is an exact opposite function of Split Method. |
Filter | A Function, which returns a zero based array that contains a subset of a string
array based on a specific filter criteria. |
IsArray | A Function, which returns a boolean value that indicates whether or not the input
variable is an array. |
Erase | A Function, which recovers the allocated memory for the array variables. |