Arrays en VBScript
Para declarar un array en VBScript bastará con declarar una variable que tenga un rango, el cual establecerá el tamaño del array. Cada rango será una dimensión del array, así un array con dos dimensiones será una matriz. El límite de dimensiones en VBScript es de 60.
Veamos como se declara un array:
DIM miArray (3) DIM miMatriz (2,10)
Cuando estamos declarando un array de x posiciones, este, tiene como tamaño x+1. En los casos anteriores tendrían una longitud de 4 en el primero y 3,11 en el segundo de los casos.
Para acceder a un determinado elemento del array lo haremos de la siguiente forma:
miArray(posicion) miArray(posicion,posicion) 'Si se tratase de una matriz
Ya sea para mostrar su valor:
document.write (miArray(posicion))
o para modificarlo:
miArray(posicion) = valor
Mostrando el contenido completo del array
Para mostrar todo el contenido de un array nos podemos ayudar de alguna sentencia de control de flujo repetitiva. Veamos como mostrarlo mediante un bucle for.
for x=0 to UBound(miArray) document.write(miArray(x)) next
Para controlar el tamaño del array utilizamos la función UBound(array).
Arrays de múltiples tipos
Una de las características principales de los arrays en VBScript es que estos pueden albergar datos de diferentes tipos. Es decir, no tenemos porque declarar un array ded Strings o de enteros, sino que el array puede contener strings y entreros al mismo tiempo.
Así podriamos tener el siguiente código:
miArray(0) = "Cadena" miArray(1) = 4 miArray(2) = #16/09/1976# miArray(3) = true
Redimensionado del array
La segunda de las características de los arrays es que pueden ser redimensionados, es decir, que podemos cambiar el tamaño del array una vez que este ha sido declarado. Solo se podrán redimensionar los arrays que se hayan declarado sin dimensión.
Para redimensionar un array utilizaremos la sentencia redim. La redimensión puede ser tanto para aumentar como para disminuir su tamaño.
DIM miArray() REDIM miArray(2)
Si redimensionamos el array tal cual, perderemos su contenido. Para evitar esto utilizaremos la clausula preserve.
REDIM PRESERVE miArray(2)