VBScript: matrices

¿Qué es una 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 una serie de valores se almacena en una sola variable, se conoce comoarray variable.

Declaración de 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 entre paréntesis.

'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")
  • 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.

  • VBScript Arrays puede 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 única variable de matriz.

Asignar valores a una matriz

Los valores se asignan a la matriz especificando el valor del índice de la matriz frente a cada uno de los valores a asignar. Puede ser una cuerda.

Ejemplo

<!DOCTYPE html>
<html>
   <body>
      <script language = "vbscript" type = "text/vbscript">
         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

         document.write("Value stored in Array index 0 : " & arr(0) & "<br />")
         document.write("Value stored in Array index 1 : " & arr(1) & "<br />")
         document.write("Value stored in Array index 2 : " & arr(2) & "<br />")
         document.write("Value stored in Array index 3 : " & arr(3) & "<br />")
         document.write("Value stored in Array index 4 : " & arr(4) & "<br />")
         document.write("Value stored in Array index 5 : " & arr(5) & "<br />")

      </script>
   </body>
</html>

Cuando el código anterior se guarda como .HTML y se ejecuta en Internet Explorer, produce el siguiente 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 de dimensiones múltiples

Las matrices no 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.

<!DOCTYPE html>
<html>
   <body>
      <script language = "vbscript" type = "text/vbscript">
         Dim arr(2,3)	' 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"            
                  
         document.write("Value in Array index 0,1 : " &  arr(0,1) & "<br />")
         document.write("Value in Array index 2,2 : " &  arr(2,2) & "<br />")

      </script>
   </body>
</html>

Cuando el código anterior se guarda como .HTML y se ejecuta en Internet Explorer, produce el siguiente resultado:

Value stored in Array index : 0 , 1 : Orange
Value stored in Array index : 2 , 2 : coffee

Declaración de Redim

La declaración ReDim se utiliza para declarar variables de matriz dinámica y asignar o reasignar espacio de almacenamiento.

ReDim [Preserve] varname(subscripts) [, varname(subscripts)]
  • Preserve - Un parámetro opcional que se utiliza para preservar los datos en una matriz existente cuando cambia el tamaño de la última dimensión.

  • varname - Un parámetro obligatorio, que denota el nombre de la variable, que debe seguir las convenciones estándar de denominación de variables.

  • subscripts - Un parámetro obligatorio, que indica el tamaño de la matriz.

Ejemplo

En el siguiente ejemplo, se ha redefinido una matriz y luego se han conservado los valores cuando se cambia el tamaño existente de la matriz.

Note - Al cambiar el tamaño de una matriz más pequeña de lo que era originalmente, se perderán los datos de los elementos eliminados.

<!DOCTYPE html>
<html>
   <body>
      <script language = "vbscript" type = "text/vbscript">
         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
           
         'to Fetch the output
         For i = 0 to ubound(a)
            Msgbox a(i)
         Next
      </script>
   </body>
</html>

Cuando guardamos el script anterior como HTML y lo ejecutamos en Internet Explorer, produce el siguiente resultado.

XYZ
41.25
22
3
4
5
6
7

Métodos de matriz

Hay varias funciones incorporadas dentro de VBScript que ayudan a los desarrolladores a manejar matrices de manera efectiva. Todos los métodos que se utilizan junto con las matrices se enumeran a continuación. Haga clic en el nombre del método para conocerlo en detalle.

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 matrices dadas.
UBound Una función, que devuelve un número entero que corresponde al subíndice más grande de las matrices dadas.
División Una función, que devuelve una matriz que contiene un número específico de valores. Dividido según un delimitador.
Unirse Una función, que devuelve una cadena que contiene un número específico de subcadenas en una matriz. Esta es una función exactamente opuesta al método de división.
Filtrar Una función, que devuelve una matriz de base cero que contiene un subconjunto de una matriz de cadenas según un criterio de filtro específico.
IsArray Una función, que devuelve un valor booleano que indica si la variable de entrada es una matriz o no.
Borrar Una función, que recupera la memoria asignada para las variables de matriz.