> Manuales > Tutorial de Visual Basic Script

Descripción del uso y sintaxis de los Arrays o matrices en Visual Basic Script (VBScript).

Los Arrays o matrices son unas estructuras de datos muy utilizadas en cualquier lenguaje. Se tratan de variables, pero que están preparadas para guardar una cantidad mayor de elementos. Es como una variable que tiene varios compartimentos para guardar la información y a cada uno de esos compartimentos hay que acceder con un índice.

Antes de utilizar un array debemos declararlo de manera obligatoria, para ello utilizamos la palabra clave DIM, de este modo.

dim miArray(20)

Después de la palabra DIM debemos indicar el nombre del array y a continuación, entre paréntesis, se coloca el número de posición máxima del array, en este caso 20.

Los arrays en ASP comienzan desde la posición 0, es decir, el primer elemento de un array está en la posición 0. Por tanto, si el array ha sido definido con 20 casillas, como en el ejemplo, tendrá 21 elementos, primera posición será la 0 y la última posición sería la 20.

Para asignar un valor a un array se realiza igual que una variable, pero accediendo con el índice de la posición que queremos escribir.

miArray(0) = 234

Para utilizar el contenido de un array debemos hacerlo indiando el índice al que se desea acceder. Por ejemplo, si quisiesemos imprimir en la página la primera posición de nuestro Array lo haríamos de esta manera.

document.write(miArray(0))

Ahora vamos a ver un ejemplo sobre cómo utilizar los arrays, donde vamos a realizar dos recorridos, uno para escribir en él y el otro para leer la información y escribirla en la página.

dim matriz (10)
for i=0 to 10
   matriz(i)=100 * i
next

for i=0 to 10
   document.writeln("Posicion " & i & ": " & matriz(i) & "<br>")
next


Este ejemplo escribiría en la página las posiciones del array, que contienen variables numéricas que corresponden de multiplicar su índice por 100.

Si se desea, se puede ver el efecto resultante en una página web.

Arrays multidimensionales en VBScript

Se pueden construir matrices multidimensionales, es decir, que nos permitan crear matrices de varias coordenadas. Para trabajar con ellos se utiliza una coma que separa los dos índices. Por ejemplo podemos definir una matriz de 8x8 de esta manera.

dim miArray2Dimensiones (7,7)

Como el array es de 8 casillas, utilizamos un 7 y sus posiciones serán las 8 que van desde el 0 al 7. Para escribir y leer del Array podemos utilizar la coma de manera similara a como se declara. Por ejemplo, para meter datos en la posición 0,2 haríamos lo siguiente:

miArray2Dimensiones (0,2) = "texto posicion 0,2"

Redimensionar arrays

Podemos declarar también arrays que cambien el número de casillas que tienen según se necesite en tiempo de ejecución. Este tipo de arrays redimensionables se llama array dinámico. Para crear este tipo de arrays podemos utilizar la sentencia dim (como creábamos los anteriores) o la sentencia redim, con la particularidad que no le colocamos ningún valor entre paréntesis donde antes indicábamos el número de casillas del array.

dim mi_array()
redim mi_otro_array()

Cuando usamos arrays dinámicos podemos utilizar la sentencia redim para indicar el número de dimensiones y la cantidad de casillas de cada dimensión.

Con esta sentencia estamos indicando que mi_array debe tener el tamaño 10. Casillas desde la 0 hasta la 10.

redim mi_array(10)

Si indicamos la clave "preserve" estamos asegurándonos que el contenido de las casillas que había previamente en el array se mantiene.

redim preserve mi_array(20)

Por último, si en cualquier momento reducimos el número de casillas perderemos lo que pudiera haber guardado en las casillas que se han eliminado.

En el siguiente ejemplo creamos un array dinámico y lo redimensionamos inicialmente a tamaño 3. Lo rellenamos y mostramos sus distintos valores. Posteriormente lo redimensionamos otra vez para que llegue hasta la posición 7, guardando los valores antiguos. Para acabar rellenamos las casillas que hemos creado nuevas y mostramos todos los valores del array.

dim frutas()
redim frutas(3)

frutas(0) = "Pera"
frutas(1) = "Uva"
frutas(2) = "Manzana"
frutas(3) = "Melón"

for each fruta in frutas
    document.write fruta & "<br>"
next

redim preserve frutas(7)

frutas(4) = "Sandía"
frutas(5) = "Naranja"
frutas(6) = "Plátano"
frutas(7) = "Mandarina"

for each fruta in frutas
    document.write fruta & "<br>"
next

El ejemplo se puede ver en funcionamiento en una página nueva.

Nota: Los arrays de más de una dimensión también se pueden redimensionar, pero sólo se puede alterar la última dimensión.

Por ejemplo, en un array de dos dimensiones miarray(2,4), se podría redimensionar la segunda dimensión redim miarray(2,8). O en un array de 3 dimensiones, donde también podríamos cambiar tan sólo la última dimensión.

Un ejemplo de código que hace esto es:

dim datos_prueba()
redim datos_prueba(1,0)

datos_prueba(0,0)=12
datos_prueba(1,0)="hola!"

redim preserve datos_prueba(1,1)

datos_prueba(0,1)=133
datos_prueba(1,1)="segunda casilla"

for i=0 to ubound(datos_prueba)
    document.write datos_prueba(0,i) & "-" & datos_prueba(1,i) & "<br>"
next

Obtener el número de casillas de un array

Uno de los datos típicos que necesitamos extraer de un array es su número de posiciones, útil por ejemplo para hacer un recorrido a un array, desde la primera hasta la última casilla. Para ello utilizamos la función uBound() de VBScript.

uBound() recibe el array del que queremos obtener su número de posiciones y devuelve la posición más alta del array. Por ejemplo.

dim ciudades(5)
document.write ubound (ciudades)

Escribiría en la página el número de la casilla más alta del array ciudades, en este caso 5.

Además, por si algún día la necesitamos, también tenemos a nuestra disposición la función lBound(), que devuelve el número de la posición con índice menor del array.

document.write lbound (ciudades)

La última línea sobre nuestro array de ciudades definido anteriormente escribiría un 0 en la página web, puesto que el array comienza en la posición cero.

Miguel Angel Alvarez

Miguel es fundador de DesarrolloWeb.com y la plataforma de formación online Escu...

Manual