Sei sulla pagina 1di 5

Visual Basic Script

Bajo esta denominacin Microsoft presenta una versin del lenguaje de programacin Visual Basic, especialmente preparada para conectar con ASP. El conjunto de los objetos de ASP y VBScript permite programar aplicaciones internet para el IIS (Information Internet Server) tambin de Microsoft. VBScript no tiene todas las funcionalidades de Visual Basic, por ejemplo, carece de funciones intrnsecas de acceso a ficheros o a bases de datos, de ah la necesidad de recurrir a los objetos propios de ASP para determinadas tareas; algunos comandos estn modificados respecto a su original en Visual Basic para lograr una mejor conexin con ellos. Todo lo dicho respecto a cmo se escribe el ASP es vlido para VBScript, y como ya has visto en los temas sobre los objetos de ASP, se pueden mezclar ambas cosas como mejor convenga. VBScript no est reservado exclusivamente para ser utilizado en pginas ASP que se ejecutan en el servidor, tambin puede utilizarse en pginas HTML para que sean ejecutadas en el navegador. El nico problema es que solamente los navegadores de Microsoft (Internet Explorer) son capaces de interpretarlo. Esta es sin duda la gran virtud de ASP: no importa qu navegador tiene el cliente, ya que slo se le enva HTML estndard. Por ahora, el nico lenguaje de comandos compatible con todos los navegadores modernos es Java Script, aunque existen algunas incompatibilidades entre versiones. Por tipos de comandos, en VBScript tenemos:

Constantes Variables Operadores Instrucciones Funciones

En VBScript existen dos niveles de ejecucin de comandos: el nivel de procedimiento, que contiene instrucciones dentro de procedimientos Function (funciones) o Sub (sub rutinas), y el nivel de secuencia de comandos que consiste en cualquier cdigo escrito fuera de un procedimiento. Es decir, que el nivel de secuencia de comandos contiene al nivel de procedimientos, y un procedimiento no puede estar dentro de otro procedimiento. Un procedimiento si puede llamar a otro procedimiento, y por supuesto, pueden ser llamados desde el nivel de secuencia de comandos. En el siguiente ejemplo, que contiene los dos niveles, puede verse como desde el

nivel de secuencia de comandos se llama a un procedimiento Sub, que a su vez invoca una funcin: <SCRIPT LANGUAGE=VBScript Public Sub Rutina_hora Response.Write( Time() ) End </SCRIPT> <HTML> <HEAD><TITLE>Prueba <BODY> Bienvenidos al ASP. </BODY> </HTML> de Son las <% RUNAT=Server>

Sub

ASP</TITLE></HEAD> Call(Rutina_hora) %>

VBScript no aporta procedimientos Sub propios, que debern ser creados por el usuario, pero si posee gran cantidad de procedimientos Function intrnsecos que se vern en el apartado "Funciones".

Procedimientos Sub
Un procedimiento Sub es una serie de comandos VBScript, escritos entre una instruccin Sub y otra End Sub, que ejecutan acciones pero no devuelven ningn valor, cosa que si hacen las funciones, que en cambio, no ejecutan acciones. Como puedes ver en el ejemplo anterior, el procedimiento Rutina_hora no devuelve valor alguno; se limita a llamar al objeto Response de ASP para presentar en pantalla un valor que no produce l mismo, sino la funcin Time(). Un procedimiento Sub puede tener argumentos, es decir, unos valores o parmetros iniciales necesarios para ejecutar sus instrucciones. Estos valores pueden proceder de constantes, variables o expresiones que a su vez podran obtener los datos por una llamada a otro procedimiento. Por ejemplo, imagina un procedimiento que busca un registro en una base de datos; lgicamente necesitara, por lo menos, un argumento con el identificador del registro a buscar. Los procedimientos Sub, de forma predeterminada, son pblicos si no se indica lo contrario. Para cambiar eso se escribe la instruccion Public o Private delante del nombre del procedimiento. Un procedimiento pblico es visible a todos los otros procedimientos en la secuencia de comandos. El valor de las variables locales en un procedimiento Sub no se mantiene entre llamadas al procedimiento.

No se puede definir un procedimiento Sub dentro de otro procedimiento Sub o Function. Si es necesario programar una salida del procedimiento sin ejecutar todas sus instrucciones, como por ejemplo, cuando se produce un error, se utiliza la instruccin Exit Sub. Se pueden escribir cuantas instrucciones Exit Sub sean necesarias. Despus de ejecutar un procedimiento Sub (o despus de abandonarlo sin ejecutar por la razn que sea) la ejecucin del programa continua con la instruccin que sigue a la que llam el procedimiento. Se puede llamar a un procedimiento Sub de dos maneras: simplemente escribiendo su nombre seguido de los argumentos, si los hay, o utilizando la instruccin Call(). No est muy claro para qu sirve esta instruccin en el caso de los procedimientos Sub, ya que funcionan igual. La nica diferencia consiste en que si no se utiliza Call(), los argumentos van al lado del nombre del procedimiento sin ms, y si se utiliza hay que escribirlos dentro de un par de parntesis. Yo la utilizo por costumbre, ya que en otros lenguajes de programacin si es necesaria. Un procedimiento Sub puede llamarse a s mismo cuantas veces sea necesario. Utilizar esto con precaucin, ya que si falla algo, o no est adecuadamente programado, entrara en un bucle infinito y se puede colapsar el servidor.

Procedimientos Function
Un procedimiento Function, o simplemente funcin, es una serie de comandos VBScript, escritos entre una instruccin Function y otra End Function, que devuelven un valor. Los procedimientos Function, igual que los Sub, de forma predeterminada, son pblicos si no se indica lo contrario. Para cambiar su alcance se escribe la instruccion Public o Private delante del nombre del procedimiento. Un procedimiento pblico es visible a todos los otros procedimientos en la secuencia de comandos. El valor de las variables locales en un procedimiento Function no se mantiene entre llamadas al procedimiento. No se puede definir un procedimiento Function dentro de otro procedimiento Function. Si es necesario programar una salida del procedimiento sin ejecutar todas sus instrucciones, como por ejemplo, cuando se produce un error, se utiliza la instruccin Exit Function. Se pueden escribir cuantas instrucciones Exit Function sean necesarias. Despus de ejecutar un procedimiento Function (o despus de abandonarlo sin ejecutar por la razn que sea) la ejecucin del programa continua con la instruccin que sigue a la que llam el procedimiento. Dado que las funciones

devuelven valores, si por cualquier causa la funcin ha fallado, se debe tener previsto, ya que no aportar el valor esperado. Una funcin numrica, en caso de fallo devolver cero (0), una de cadena un string de longitud cero (""), y una funcin que devuelve una referencia a un objeto, devuelve Nothing. Un procedimiento Function puede tener argumentos, al igual que los procedimientos Sub. Si no tiene argumentos, se deber incluir un par de parntesis vacios junto al nombre, como puedes ver en el ejemplo de arriba, donde se invoca a la funcin Time(). Las funciones devuelven un valor asignndolo a su propio nombre en el cdigo del procedimiento. El tipo de datos devuelto por un procedimiento Function siempre es Variant, lo que permite utilizar la funcin en cualquier expresin o entorno adecuados. El tipo de datos de los argumentos puede ser distinto del tipo devuelto por la funcin. Se puede llamar a una funcin de dos maneras: simplemente escribiendo su nombre seguido de los argumentos, si los hay, o utilizando la instruccin Call(). Tampoco est muy claro para qu sirve esta instruccin, como en el caso de los procedimientos Sub, ya que funcionan igual. La nica diferencia consiste en que si no se utiliza Call(), los argumentos van al lado del nombre del procedimiento sin ms, y si se utiliza, hay que escribirlos dentro de un par de parntesis. Al igual que los procedimientos Sub, una funcin puede llamarse a s misma, y a otras funciones, pero no puede llamar a un procedimiento Sub. Veamos un ejemplo de escritura de una funcin definida por el usuario:
<SCRIPT LANGUAGE=VBScript Public Function Letra_NIF(DNI) RUNAT=Server>

Const Letras = "TRWAGMYFPDXBNJZSQVHLCKE" Letra_NIF = Mid(Letras, 1 + (DNI Mod 23), 1) End </SCRIPT> <HTML> <HEAD><TITLE>Prueba de <BODY> <% Response.Write "La & Letra_NIF(11111111) %> </BODY> </HTML> Function

ASP letra

y del

VBScript</TITLE></HEAD> DNI 11111111 es: "

Y este sera el resultado:


La letra del DNI 11111111 es: H

Como puedes ver, es muy simple: se comienza definiendo el nombre de la funcin: Letra_NIF() y su argumento: DNI. Eso significa que es necesario darle un valor al argumento DNI para que pueda trabajar la funcin. El procedimiento que realiza nuestra funcin para obtener el valor buscado consiste en dividir el argumento DNI entre 23 y obtener el resto (Mod). Ese resto, se utiliza como segundo argumento de otra funcin que proporciona VBScript: Mid(), que sirve para extraer un sub string de una cadena de texto. La funcin Mid() utiliza tres argumentos: en primer lugar el nombre de la cadena sobre la que hay que buscar, en este caso Letras; despus hay que darle el nmero de posicin donde comenzar el sub string, en este caso la letra H, que est en la posicin 19 de la cadena; y por ltimo, el tercer argumento indica cuantos caracteres hay que extraer de la cadena comenzando en la posicin que indica el segundo argumento, y que en este caso es 1. Ya tenemos la letra buscada. Ahora slo hay que asignarla a algo para que se pueda obtener desde donde sea necesario, y para ello la asignaremos al nombre de la propia funcin, que actuar como si fuese una variable cualquiera: Letra_NIF = Mid(Letras, 1 + (DNI Mod 23), 1) Seguramente te preguntars porqu hay que sumarle 1 al resultado de la divisin (DNI Mod 23). Ello se debe a que Mid() comienza a contar por el cero, lo que nos dara la letra V en lugar de la H, que es la correcta, si utilizamos el valor tal como se obtiene.

Potrebbero piacerti anche