Arrays



¿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 t


Funció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.