[Indice]


Visual Basic Script

Otras funciones

Funciones matriciales

Una matriz (o array) puede considerarse como un conjunto de elementos ordenados secuencialmente, y con el mismo tipo de datos. Imagina los casilleros que tienen los hoteles para depositar las llaves de los clientes, o más técnicamente, como una tabla de una base de datos. Cada elemento de una matriz posee un número de índice único que lo identifica. Al igual que en una tabla de base de datos, los cambios efectuados a un elemento no afectan a los demás elementos. Cada valor es independiente. Las matrices pueden solucionar muchos problemas de programación, ya que son un almacen de datos muy fácil de construir, y al residir en la memoria del servidor, sumamente rápidos de acceder. Lo malo de las matrices es precisamente esto último, que residen en memoria, y por ello se deben usar con precaución, y teniendo controlado su tamaño máximo, pues podrían agotar los recursos del servidor.

Array(argumentos)

Define una matriz de datos, donde argumentos es una lista de valores, separados por comas, que se guardarán en los elementos de la matriz. El tipo de dato devuelto es Variant. Por ejemplo, para asignar una matriz a la variable A:

Dim A
A = Array("aa","bb","cc","dd","ee")
Para recuperar todos los valores almacenados podemos utilizar un bucle:
<%
  For X = 0 TO 4
     Response.Write(A(X) & " - ")
  Next
%>

Y este sería el resultado:

aa - bb - cc - dd - ee -

Como puedes ver, funciona de forma muy similar a las instrucciones Dim y ReDim, ya vistas en la página "Constantes y variables":

<%
Dim MiVariable()
...
...
ReDim MiVariable(4)

Mivariable(0) = 10
Mivariable(1) = 20
Mivariable(2) = 30
Mivariable(3) = 40
Mivariable(4) = 50
%>

Split(String[, Delimitador[, Cuantos[, Comparar]]])

Esta función toma string y lo parte (split) en otros sub strings que carga en una matriz unidimensional. Veamos sus argumentos:

String es una cadena de texto cualquiera o una expresión que devuelva una cadena. Por ejemplo: "Esto es una prueba de matrices".
Delimitador Es un carácter de la cadena utilizado para identificar los límites de las subcadenas. Si se omite, por defecto el delimitador será un espacio en blanco (" "). Si Delimitador es una cadena de longitud cero, Split() devuelve una matriz de un solo elemento que contiene la cadena String completa.
Cuantos indica cuantos trozos, de los que resulten, se desea almacenar. -1 indica a Split() que los tome todos (por defecto).
Comparar es un número que indica de qué forma se van a evaluar las subcadenas. Puede escribirse el número o la constante intrínseca equivalente. Puede tener dos valores:

Utilizar la Comparación binaria o textual permite diferenciar, por ejemplo, mayúsculas de minúsculas, que por defecto VBScript considera iguales. Al ser 0 el valor por defecto de Comparar, Split() distingue entre mayúsculas y minúsculas

Sea por ejemplo:

<%
  Dim A, B
  
  A = "Esto es una prueba de matrices"
  B = Split(A, " ")

  For X = 0 TO 5
     Response.Write(B(X) & "-")
  Next
%>

Y este sería el resultado:

Esto-es-una-prueba-de-matrices-

Join(Matriz[, Delimitador])

Es la función inversa de Split(). Es decir, toma una matriz cuyos elementos contengan strings y los concatena en una cadena única. Delimitador es el carácter que se desea utilizar para separar el contenido de los elementos de la matriz origen en la cadena resultante, y no es necesario que exista en las subcadenas a unir. Si se omite, se utilizará el espacio en blanco ("  "). Si Delimitador es una cadena de longitud cero, se concatenan todos los elementos de la matriz sin delimitadores. Por ejemplo:

<%
  Dim A, B
  
  A = "Esto es una prueba de matrices"
  B = Split(A, " ")

     Response.Write( Join(B) )
%>

Y este sería el resultado:

Esto es una prueba de matrices

Filter(Matriz[, Valor[, Incluir[, Comparar]]])

Esta función devuelve una matriz cuyos elementos contienen los valores iguales a Valor que han sido buscados y encontrados entre todos los elementos de Matriz. Tiene otros dos argumentos:

Incluir Es un valor booleano que indica si en los elementos de la matriz resultante se incluyen o excluyen valores iguales a Valor. Si Incluir es True (por defecto), se incluyen valores iguales a Valor. Si es False, se excluyen, y el resultado será los elementos que NO son iguales a Valor.
Comparar es un número que indica de qué forma se van a evaluar las subcadenas buscadas. Puede escribirse el número o la constante intrínseca equivalente. Puede tener dos valores:

Utilizar la Comparación binaria o textual permite diferenciar, por ejemplo, mayúsculas de minúsculas, que por defecto VBScript considera iguales. Al ser 0 el valor por defecto de Comparar, Filter() distingue entre mayúsculas y minúsculas

He aquí un ejemplo:

<%
  Dim A, B
  
  A = Array("AA", "BB", "CC", "DD", "AA")
  B = Filter(A, "AA")

  For X = 0 TO 1
     Response.Write(B(X) & "-")
  Next
%>

Y este sería el resultado:

AA-AA-

Como podrás ver, en el bucle utilizado para mostrar el resultado, se ha escrito For X = 0 TO 1, evidentemente, porque a la vista del array inicial, ya sabíamos que el bucle se tiene que repetir dos veces. Pero, ¿qué hacer si el contenido inicial nos es desconocido, o es muy largo para andar contando? Pues utilizar, según convenga, alguna de las dos funciones siguientes:

Ubound(Matriz[, Dimensión])   -   Lbound(Matriz[, Dimensión])

Estas funciones permiten conocer los subíndices superior e inferior respectivamente, de una matriz. Opcionalmente, y si la matriz tiene más de una dimensión, puede indicarse de cual de ellas se desea obtener el subíndice. Por defecto es 1.

Sea el ejemplo anterior:

<%
  Dim A, B
  
  A = Array("AA", "BB", "CC", "DD", "AA")
  B = Filter(A, "AA")

  For X = 0 TO Ubound(B)
     Response.Write(B(X) & "-")
  Next
%>

Y este sería el resultado:

AA-AA-

Por último, y dentro del grupo de las funciones matriciales, tenemos:

IsArray(Variable)

Que como ya habrás supuesto, sirve para saber si una variable contiene un tipo array o no. Devuelve un tipo booleano, es decir, que si devuelve True, la variable contiene un array, y si devuelve False no.


Otras Funciones

RGB(rojo, verde, azul)

Devuelve un número entero que representa un valor de color RGB. Las siglas RGB son las iniciales de los tres colores básicos en inglés: Red (rojo), Green (verde) y Blue (azul). Como ya es sabido, se puede conseguir cualquier color mezclando estos tres colores básicos en las proporciones adecuadas. La cantidad de cada color tiene que estar en un rango de 0 a 255. Si algun valor es mayor de 255 se considera 255.


[Indice]