|
VBScript |
CAPITULO 3: Datos y Variables en VBScript
Al contrario que en otros lenguajes de programación, en VB solo existe un tipo general de datos que se conoce con el nombre de Variant. En otros lenguajes existen datos de tipo String (Cadena) para almacenar contenidos alfanuméricos, distintos tipos de datos numéricos enteros y en coma flotante, datos booleanos, etc. Esta característica es muy útil, ya que permite reasignar un valor de un tipo a una variable de otro tipo. En la actualidad es el único lenguaje de alto nivel que implementa esta característica Los datos se clasifican en subtipos en función del contenido en un momento dado. Así se logra toda la funcionalidad de gestión de datos en lenguajes de alto nivel, pero con una mayor flexibilidad. Para cambiar una variable de un subtipo a otro, es suficiente con asignarle un dato de diferente tipo. Por ejemplo. El siguiente fragmento de código daría un error en lenguajes como C++ o Java; sin embargo, en VB es absolutamente correcto:
Variable = 1 ' más código ' más código ' más código ' más código Variable = "cadena"
Mas adelante veremos ejemplos operativos que ilustrarán esta cualidad. En el Apéndice B tienes un listado completo de los subtipos de datos aceptados por VB (y, por tanto, por VBScript). A lo largo de este temario veremos ejemplos de uso de los distintos subtipos, que ilustrarán su funcionamiento. Es necesario recalcar un hecho. Al pertenecer todos los datos a un tipo único, cuando le damos un valor a un dato se constituye, automáticamente, del subtipo adecuado para ese valor. Este proceso es totalmente transparente al programador quien, de esta forma, no necesita preocuparse de declarar un dato como de uno u otro tipo.
VARIABLES
Los datos que se manejan en un lenguaje de programación y cuyo valor puede cambiar durante la ejecución de un programa se conocen con el nombre genérico de variables. Podemos concebir una variable como una caja cuyo contenido varía a lo largo de la ejecución. La caja tiene un nombre que sirve para identificarla y poder utilizar el contenido o valor. Los nombres de variables deben empezar con una letra y pueden tener letras, números o el signo de subrayado (único signo de puntuación que se admite en el nombre de una variable). Las letras que formen parte del nombre de una variable deberán ser de la alfabetización internacional, no de la española o específica de algún idioma en particular. Así pues, no deberá haber en un nombre de variable letras como la ñ, letras acentuadas, la ç, etc. Un nombre de variable no deberá contener caracteres especiales (como p.e. $,%,&,^, etc.). Tampoco deberá contener espacios en blanco, puntos, comas, ni ningún otro signo de puntuación. Por supuesto, el contenido de una variable alfanumérica SI podrá contener cualquier cosa que deseemos. Además deberemos tener cuidado de no emplear como nombres de variable las palabras clave del lenguaje. Los siguientes ejemplos de variables serán correctos en VBScript y en VB:
Variable = "Esto está en una cadena." cosa = "*&%$*/87*/&)ñ" Edad2 = 74 Casado_si_o_no = true
Sin embargo, los siguientes ejemplos ilustran declaraciones de variables que el lenguaje no aceptará:
72Edad = 28 ' No lo admite por empezar con un número MsgBox = false ' No lo admite por ser una palabra reservada Año = 1977 ' No lo admite por contener el nombre una ñ Pitón& = "Esto no vale nada" ' No vale por tener una letra acentuada y un &
En otro orden de cosas, para usar una variable es necesario dar dos pasos: declararla e inicializarla. La declaración es la forma de decirle al lenguaje que se va a usar una variable y se hace con la palabra reservada DIM, seguida del nombre de la variable. Así:
DIM variable
Esto reserva espacio en memoria para la variable. Sin embargo aún no le hemos asignado ningún contenido. En realidad tiene un contenido de subtipo Null (nulo) . La inicialización de la variable será la que le asigne su primer contenido aunque, como ya sabemos, éste podrá cambiar a lo largo de la ejecución. La inicialización es, simplemente una asignación. Por ejemplo:
variable = "Cacharro"
La declaración de la variable es opcional. Es decir, si no se hace la declaración de una variable, ésta se llevará a cabo, de forma automática al realizar la inicialización. Sin embargo es conveniente realizar las declaraciones de forma manual (escribiendo la instrucción DIM), a fin de incrementar el nivel de estructuración de nuestros programas y facilitar la legibilidad de los mismos. La declaración debe ir SIEMPRE antes de la inicialización. Lo correcto es realizar la declaración de todas las variables al principio de nuestro código. Existe una forma de asegurarnos de que tengamos que hacer las oportunas declaraciones. Es incluyendo la instrucción OPTION EXPLICIT en nuestro código. Si incluimos esa línea, el programa no podrá usar ninguna variable que no haya sido declarada. Nosotros no la habíamos incluido en los ejemplos anteriores, ya que aún no habíamos hablado de ella, pero la incluiremos a partir de ahora en todos nuestros ejemplos, ya que constituye, sobre todo, una buena práctica de programación.
MATRICES
Hasta ahora hemos hablado de variables simples, que constituyen lo que se llama un par nombre-valor, es decir son un nombre de dato, con un valor asignado. Sin embargo no hay ninguna razón por la que no podamos formar y utilizar estructuras de datos mas complejas. Por ejemplo. Supongamos que necesitamos gestionar un conjunto de variables que contengan las edades de los niños de un colegio. Estas variables tienen todas algo en común, así que parece lógico tratar de establecer una relación de similitud entre ellas. Lo que hacemos es crear una tabla o matriz de variables. Una matriz es un conjunto de variables que reciben todas el mismo nombre. En el ejemplo que nos ocupa, este nombre podría ser, por ejemplo, edades. Ahora bien. Si todas las variables o elementos de la matriz reciben el mismo nombre ¿cómo los identificamos de forma inequívoca? Para ello usamos un índice. Un índice es un número de orden que identifica a cada elemento de la matriz. Así pues ya no nos referimos a cada variable con su nombre, si no con el nombre de la matriz en la que está la variable, seguido del número de orden, o lugar que ocupa, esa variable en la matriz. Asumimos que los distintos elementos está colocados uno detrás de otro en fila. El primer elemento se identifica con el número 0, el segundo con el 1, el tercero con el 2, y así sucesivamente. Bien esta es la teoría. Veamos como utilizamos matrices. En primer lugar vamos a declarar una matriz de cinco elementos. Para seguir con el ejemplo anterior, será una matriz donde introduciremos las edades de cinco niños. A la matriz la llamaremos edades:
DIM edades (4)
El lector pelín avispado ya se habrá dado cuenta de que hemos declarado la matriz con cuatro elementos, cuando habíamos dicho que la íbamos a declarar con cinco. Ocurre que, como el primer elemento se le conoce con el número 0, en realidad la instrucción anterior crea sitio para cinco elementos, del 0 al 4 (0, 1, 2, 3 y 4). Es importante reseñar que una matriz, una vez declarada, no podrá redimensionarse. Es decir, si hemos creado esta matriz con cinco elementos no podremos meter mas elementos en la misma. Esto no supone ningún problema si necesitamos menos de cinco elementos ya que, los que no necesitemos, podemos dejarlos vacíos (Null), pero no podremos usar NUNCA mas de cinco elementos en esa matriz. Así pues, una matriz debe ser declarada con el número MÁXIMO de elementos que deberá contener. Si no sabemos cuantos elementos podrá contener una matriz como máximo, no podremos usar matrices.
Bien. Ahora veamos como asignar contenidos a una matriz. El nombre de un elemento de una matriz está compuesto por el nombre de la matriz y el número de índice del elemento, este último entre paréntesis. Por lo tanto, la asignación de un valor a un elemento se realizará de la siguiente manera:
Edades (0) = 14
Las matrices, también llamadas arrays, son una herramienta muy potente y versátil. Puedes, por ejemplo, asignarle un contenido alfanumérico a un elemento de la matriz y un contenido numérico a otro elemento de la misma matriz. Sin embargo esta cualidad no es de uso muy frecuente, por la propia naturaleza. Recordemos que una matriz se emplea para almacenar un conjunto de datos relacionados entre sí. Mira el siguiente ejemplo:
<HTML>
<HEAD>
<TITLE>Prueba de Matrices de varios tipos</TITLE>
<SCRIPT LANGUAGE = "VBScript">
DIM matriz (1)
matriz (0) = "A ver que pasa"
matriz (1) = 6 * 3 ' El asterisco se usa como signo de multiplicación.
MSGBOX (matriz (0))
MSGBOX (matriz (1))
</SCRIPT>
</HEAD>
<BODY>
</BODY>
</HTML>
Este código da como resultado lo siguiente:

Al pulsar el botón Aceptar aparecerá lo siguiente:

Lo que nos demuestra que se respeta el contenido de cada elemento de la matriz.
Otra cosa respecto de las matrices. Hasta ahora hemos visto matrices que son, por así decirlo, una fila de elementos. Pero puede haber matrices de varias filas, de forma que constituyan un cuadro de elementos. Son las llamadas matrices bidimensionales. De la misma forma que un elemento de una matriz unidimensional se identifica por un índice que se refiere a su posición en la fila, un elemento de una matriz bidimensional se identifica por dos índices. Un indica la columna y otro la fila que ocupa el elemento en la tabla. La forma de declarar una matriz bidimensional es la siguiente:
DIM matriz_bidimensional (10,20)
Ten en cuenta que todo lo que hemos dicho de matrices unidimensionales es válido también para matrices bidimensionales, sólo que en este caso entre los paréntesis aparecen dos índices, separados por una coma.
Para asignar un contenido a un elemento de una matriz bidimensional se emplea el siguiente formato:
matriz_bidimensional (4,7) = "Esto es un elemento de una matriz"
Por supuesto se pueden usar matrices de mas de dos dimensiones (hasta un máximo de 60 dimensiones) indicando entre paréntesis un índice por cada dimensión. En la práctica se usan, como mucho, matrices de cuatro dimensiones.
Por lo demás, recuerda que con los elementos de una matriz se pueden efectuar las mismas operaciones que con variables simples. Hasta ahora solo hemos visto unas pocas posibilidades. Veremos más en próximos capítulos.
















































