There is an english version of this post, click here.
Bienvenidos sean a este post, hoy hablaremos sobre los arrays tambien conocidos como arreglos o matrices dependiendo del autor, pero que es un Array?
En realidad es una version muy particular de una variable porque tiene la habilidad de almacenar multiples valores con distintas posiciones para poder recuperarlos, puede sonar algo complejo pero una vez que se le toma el truco se convierten en algo muy sencillo. Pasemos a ver como es su sintaxis de declaracion:
dim nombreArray(posicion)
En este caso podemos ver que se definen de la forma que una variable, con la palabra dim, pero la diferencia esta que le agregaremos dos parentesis. Y entre ellos asignaremos hasta que posicion podemos asignar informacion. Veamos como es un ejemplo de asignar de un valor a la posicion:
nombreArray(0) = "valor"
Siempre es el nombre del array seguido de la posicion entre parentesis y le asignamos un valor. Para recuperarlo debemos hacerlo de la siguiente manera:
variable = nombreArray(0)
En este caso asignamos en la variable el valor que se encuentre en la posicion 0 de nuestro array, y partir de aqui podemos usar ese valor asignado en la variable en todo nuestro codigo. Para entender el concepto vamos a analizar el primer ejemplo:
array.vbs
dim arr(5)
dim msg
arr(0) = "Martin Miranda"
arr(1) = "Marta Gargaglione"
arr(2) = "Enzo Tortore"
arr(3) = "Javier Marcuzzi"
arr(4) = "Ariel Polizzi"
arr(5) = "Raul Picos"
for a = 0 to 5
msg = msg & arr(a) & vbcrlf
next
msgbox msg,,"Ejemplo de Array"
Primero definimos un array que almacenaremos hasta la posicion 5. Es decir, vamos a poder almacenar 6 elementos porque como en cualquier lenguaje la primera posicion sera 0 y desde ahi hasta la posicion 5. Tambien definimos una variable para almacenar el mensaje que mostraremos. Lo siguiente es asignar a cada posicion del array un valor, observen que para cada posicion le pasamos el numero correspondiente. Con nuestros valores asignados, usaremos un bucle for para pasar por todas las posiciones de nuestro array. Para ello usaremos un contador de 0 a 5, en msg asignaremos cada valor recuperado y la posicion se la asignaremos mediante el valor de cada pasada en el bucle. Usamos a vbcrlf para dar el efecto de Enter al final de cada linea. Por ultimo, mostraremos el valor final en pantalla. Veamos como es la salida:

Esta es la forma mas basica de un array y se lo denomina como array unidimensional. Pero esto tiene otra variante, tomemos el codigo anterior y modifiquemoslo de la siguiente manera:
dim arr(5,1)
dim msg
arr(0,0) = "Martin"
arr(0,1) = "Miranda"
arr(1,0) = "Marta"
arr(1,1) = "Gargaglione"
arr(2,0) = "Enzo"
arr(2,1) = "Tortore"
arr(3,0) = "Javier"
arr(3,1) = "Marcuzzi"
arr(4,0) = "Ariel"
arr(4,1) = "Polizzi"
arr(5,0) = "Raul"
arr(5,1) = "Picos"
for a = 0 to 5
for b = 0 to 1
msg = msg & arr(a,b) & " "
next
msg = msg & vbcrlf
next
msgbox msg,,"Ejemplo de Array"
En el caso del array, agregamos un nuevo limite para las posiciones. A este tipo de arrays se lo denomina como bidimensional. Por que a cada limite se lo denomina como dimension. En este caso, al separar en dos dimensiones tambien modifica la forma de asignar los valores. Por esta razon, separamos el nombre y el apellido. Volviendo a la declaracion, la primera dimension lo limitara hasta la posicion 5 y la segunda hasta la 1, siempre comenzando desde 0. Observen que a la hora de asignarlo debemos pasar cada valor de cada dimension. Si queremos comparar este tipo de array, seria algo equivalente a la siguiente tabla:
| dim1/dim2 | 0 | 1 |
| 0 | Martin | Miranda |
| 1 | Marta | Gargaglione |
| 2 | Enzo | Tortore |
| 3 | Javier | Marcuzzi |
| 4 | Ariel | Polizzi |
| 5 | Raul | Picos |
Siguiendo con nuestro codigo. Tambien modificamos al bucle porque ahora debe buscar en la segunda dimension. Por lo tanto, el primer bucle pasara por la primera dimension. Y el segundo pasara por la otra pero este se encargara de buscar la informacion. Y aqui volvemos a hacer la recoleccion de informacion en la variable para finalmente mostrarla. Si lo ejecutan debe devolver exactamente la salida que tuvimos anteriormente. Pero esto todavia no termina, tomemos el codigo anterior y hagamos las siguientes modificaciones:
dim arr(5,1,1)
dim msg
arr(0,0,0) = "Martin"
arr(0,1,0) = "Miranda"
arr(0,1,1) = 47
arr(1,0,0) = "Marta"
arr(1,1,0) = "Gargaglione"
arr(1,1,1) = 50
arr(2,0,0) = "Enzo"
arr(2,1,0) = "Tortore"
arr(2,1,1) = 33
arr(3,0,0) = "Javier"
arr(3,1,0) = "Marcuzzi"
arr(3,1,1) = 48
arr(4,0,0) = "Ariel"
arr(4,1,0) = "Polizzi"
arr(4,1,1) = 49
arr(5,0,0) = "Raul"
arr(5,1,0) = "Picos"
arr(5,1,1) = 50
for a = 0 to 5
msg = msg & "Nombre: "
for b = 0 to 1
msg = msg & arr(a,b,0) & " "
next
msg = msg & "Edad: " & arr(a,1,1) & vbcrlf
next
msgbox msg,,"Ejemplo de Array"
En este nuevo codigo, agregamos una nueva dimension a nuestro array. Este nuevo array se denomina como array tridimensional. Esto vuelve a modificar la forma de almacenar el valor en las distintas posiciones. Tambien lo usaremos para almacenar un nuevo dato en nuestro array. En los bucles hacemos pequeñas modificaciones. La primera es que asignaremos un identificador para los valores del nombre de la persona. En el segundo bucle obtenemos el valor como antes y lo volvemos a asignar pero antes de pasar a la siguiente vuelta en el primer bucle le pasamos un identificador para la edad y el nuevo valor que agregamos. Y aqui agregaremos el vbcrlf para separar cada linea agregada. Por ultimo, mostramos el valor que se genero. Veamos como es la salida:

Como pueden ver nos devolvio toda la informacion solicitada. Con esto comentado, podemos decir que los arrays pueden tener todas las dimensiones que necesitemos para almacenar la informacion. Por lo general, se comenta que son de n-dimensiones, para indicar que pueden tender al infinito. Pero en la vida real, no van a pasar mas alla de la tridimensional, y seguramente para ubicar algun elemento de videojuegos en 3D. Hasta ahora nunca me cruce mas alla de un array de dos dimensiones. Son una herramienta muy poderosa y por lo general se utilizan para almacenar informacion de un solo elemento sin necesidad de tener muchas variables. Como vieron en el ejemplo, podemos obtener la informacion de un usuario y almacenar datos como el usuario, rol, datos completos, etc. A diferencia de lo que ocurre con algunos lenguajes, los arrays son estaticos. Es decir, una vez establecido el tamaño o limite no podemos asignar mas valores mas alla de esa posicion. Esto es una de las tantas cosas heredadas de VB. Por ejemplo, en javascript los array son dinamicos y estos pueden variar su tamaño de acuerdo a nuetra necesidad. Por lo tanto, no poseen un tamaño prefijado. Se puede asignar un tamaño superior ante la duda pero por lo general esto termina en un despedicio de memoria.
En resumen, hoy hemos visto arrays, como son, para que se usan, como se declaran, para que se pueden usar, cuales son sus beneficios, que facilidades nos proveen, cual es su utilidad mas importante y cual es la diferencia entre estaticos y dinamicos, espero les haya sido util sigueme en tumblr, Twitter o Facebook para recibir una notificacion cada vez que subo un nuevo post en este blog, nos vemos en el proximo post.
Tengo un Patreon donde podes acceder de manera exclusiva a material para este blog antes de ser publicado, sigue los pasos del link para saber como.
Tambien podes comprar mi libro sobre VBscript en Amazon

Tambien podes donar
Es para mantenimiento del sitio, gracias!
$1.50