Arrays en VBScript

  • Por
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.

Autor

Miguel Angel Alvarez

Miguel es fundador de DesarrolloWeb.com y la plataforma de formación online EscuelaIT. Comenzó en el mundo del desarrollo web en el año 1997, transformando su hobby en su trabajo.

Compartir

Comentarios

MERIDA

12/10/2004
hola solo me gustaria dar mi punto de vista y decirles que porque no en cada una de las descripciones de las estructuras de control porque no ponen imagenes para que asi nos dieramos cuenta de como se hace todo el procedimiento.
eso es todo

tecmo

15/1/2008
Hola, tengo unas dudas respecto al articulo:

-Tengo una columna de valores variables, pero que los guardo en un contador de filas "n", y me aparece un error cuando digo redim array(n). A que se debe?

-Es de alguna manera posible dado un array de digamos 20 valores asociarlo a un rango, para poder utilizarlo con formulas?

fernando

13/9/2010
vb array
nesesito una ayuda con un ejercicio
es el siguiente y no tengo idea
crear un arreglo de varias posiciones en VB que guarde los tipos de datos mas importantes de VB: Byte, Integer, Long, Single, Date, Double, Currency, String, Variant y al frente la capacidad de cada uno

VegetaVenom

28/8/2012
valores de los arrays
hola, tenia una duda, al introducirle valroes al array, tienen que ser del mismo tipo de valor o puede tener una cominacion de varias? saludos

cristian

05/10/2014
paso a jquery
quisiera saber como paso datos de asp.net con lenguaje vb .. a jquery por json.. es urgente por favor y ademas como hago para meter esa data en un jqgrid.. se los agradeciera mucho..

anonimo

24/2/2015
Ejercicio
Hola me pueden ayudar Quiero que me ayuden con total de frutasn en visual basic para mas tarde un examen