Un procedimiento se parece much�simo en su concepci�n y uso a una funci�n, con la diferencia fundamental de que no devuelve ning�n resultado y algunas otras diferencias menores, que veremos en este apartado. En primer lugar los procedimientos se incluyen entre las palabras clave SUB y END SUB. Para invocar al procedimiento, simplemente teclearemos su nombre en una l�nea de comando, como si fuera una instrucci�n. Veamos un ejemplo:
<HTML> <HEAD> <TITLE>Ejemplo del uso de procedimientos</TITLE> <SCRIPT LANGUAGE = "VBScript"> SUB doble_mensaje() MSGBOX ("Este es el primer mensaje.") MSGBOX ("Este es el segundo mensaje.") END SUB </SCRIPT> </HEAD> <BODY> <SCRIPT LANGUAGE = "VBScript"> doble_mensaje </SCRIPT> </BODY> </HTML>
El resultado ser�a, como cabe esperar, que primero visualizaremos el mensaje:
Y a continuaci�n, tras pulsar el bot�n ACEPTAR, veremos:
Tras pulsar el bot�n aceptar, finaliza la ejecuci�n. Como vemos, el procedimiento no devuelve ning�n resultado. Simplemente ejecuta una acci�n. En este caso, adem�s hemos visto que se trata de un procedimiento que no recibe ning�n par�metro. Por eso, en la definici�n aparece el nombre del procedimiento con dos par�ntesis sin nada en medio y en la invocaci�n aparece, simplemente, el nombre del procedimiento. Si hubiera que pasar par�metros al procedimiento, existen dos formas de realizar la invocaci�n. La primera es la mas sencilla. El nombre del procedimiento seguido de los par�metros necesarios, separados por comas y sin par�ntesis. As�:
procedimiento par�m1, par�m2, par�m3, ... , par�mN
La segunda forma es mas elegante y mas adecuada al concepto de programaci�n estructurada. Consiste en anteponer al nombre de procedimiento la palabra reservada CALL y encerrar la lista de par�metros, separados por comas, entre par�ntesis. As�:
CALL procedimiento (par�m1, par�m2, par�m3, ... , par�mN)
<HTML> <HEAD> <TITLE>Ejemplo de llamadas a procedimiento</TITLE> <SCRIPT LANGUAGE = "VBScript"> SUB cuento (final) IF (final = "Bonito") THEN MSGBOX ("...y fueron felices y comieron perdices.") END IF IF (final = "Feo") THEN MSGBOX ("... les echaron del trabajo y les embargaron el piso.") END IF END SUB </SCRIPT> </HEAD> <BODY> <SCRIPT LANGUAGE = "VBScript"> cuento "Bonito" CALL cuento ("Feo") </SCRIPT> </BODY> </HTML>
El resultado de la ejecuci�n de este programa es el siguiente:
Y, al pulsar Aceptar veremos lo siguiente:
Con lo que termina la ejecuci�n del programa. Con esto hemos visto como operan las funciones de usuario y los procedimiento.
�RUPTURAS
Al igual que suced�a con los bucles, es posible interrumpir la ejecuci�n de una funci�n de usuario o de un procedimiento y devolver el control de la ejecuci�n al c�digo llamante. Para ello se utiliza, una vez m�s, la instrucci�n EXIT. Si se trata de una funci�n de usuario emplearemos EXIT FUNCTION. Si se trata de un procedimiento, emplearemos EXIT SUB. De todas formas no es bueno acostumbrarse a usar estas rupturas forzadas, porque se acaba abusando de ellas y escribiendo c�digos chapuceros. En realidad se puede resolver casi cualquier problema sin necesidad de rupturas. Solo deben incluirse como soluci�n de emergencia si se genera alg�n error indeseado, por ejemplo. Aclarado esto, es el momento adecuado para hablar de funciones del lenguaje.