HTMLWEB
manuales - recursos - gráficos - programación...

Home - ASP - Subprogramas - 1 - 2 - 3

Subrutinas
por Luciano Moreno, del departamento de Diseño Web de BJS Software.


Subrutinas.-

Según hemos visto, una subrutina es un programa más o menos grande incluido dentro del código de otro programa padre, que posée un nombre propio y único que lo identifica, que puede ser llamado en cualquier momento de la ejecución del programa padre, tantas veces como sea necesario, y que no devuelve ningún valor trás su ejecución.

Por lo tanto, una subrutina es un procedimiento que ejecuta una serie de instrucciones en un momento dado, a requerimientos del código general del programa padre, y que finaliza su ejecución sin devolver ningún valor a la instrucción que lo ha llamado, y por éste motivo no se pueden usar dentro de una expresión, pero sí para sacar mensajes, pintar datos en pantalla, etc.

Como las subrutinas no se ejecutan directamente según el orden secuencial de escritura de código, si no cuando se les llama, es conveniente situar el código de las mismas al principio del código de la página, ya que así se cargarán en memoria al principio y estarán preparadas y disponibles cuando se les llame. Si llamamos a una subrutina ( o a una función) cuando todavía no ha sido cargada en memoria obtendremos un error.

La sintaxis general que adopta una subrutina es la siguiente:

Sub nombre (parametro1, parametro2,...,parametroN)

   ... instrucciones a ejecutar del procedimiento

End Sub

donde vemos que se comienza la subrutina con la declaración de la misma, mediante la palabra reservada Sub, seguida del nombre identificador de la subrutina (necesario para poder llamarla luego) y unos paréntesis en los que se declaran los parámetros que necesita recibir para ejecutar las instrucciones que contiene. Se establecen luego las instrucciones que va a ejecutar la subrutina y se cierra ésta mediante End Sub.

Puede darse el caso de que la subrutina no necesite recibir ningún parámetro para la ejecución de las instrucciones que contiene. En ese caso habrá que colocar los paréntesis vacíos, pero siempre hay que poner estos, para que se sepa que es un procedimiento:

<%

Sub DameFecha()

    Response.Write("Hoy es " & Date)

End Sub

%>

que imprime la fecha actual en la página.

Bien, ya tenemos nuestra subrutina, y ahora ¿cómo la llamamos desde otra parte del código del programa padre?. Muy fácil:

1) Podemos llamar a una subrutina con tan sólo escribir su nombre sin paréntesis, seguido por los parámetros necesarios (si los hay) separados por comas:

<%

  ...código del programa...

     DameFecha
     PintaMensaje "Hola Amigos"
     SubrutinaGeneral parametro1, parametro2,..., parametroN

%>

2) Si la subrutina precisa parámetros la llamamos mediante la palabra clave Call, seguida del nombre de la subrutina y sus parámetros entre paréntesis:

<%

  ...código del programa...

     Call DameTexto("Hola amigos")

%>

donde DameTexto será la subrutina previamente definida:

<%

Sub DameTexto(texto)

      Response.Write(texto)

End Sub

%>

Cuando intruducimos una subrutina en un programa es conveniente realizar, mediante comentarios, una explicación previa de la funcionalidad de la misma y de los parámetros que necesita, ya que así ganamos en claridad de código y estamos seguros de que posteriormente sabremos de forma rápida para qué la escribimos:

<%

    '-------------------------------------
   ' Subrutina PintaMensaje >> pinta un mensaje en pantalla
   ' param mensaje >> cadena de texto a pintar en pantalla
   '-------------------------------------

    Sub PintaMensaje(mensaje)

        .....................

    End Sub

%> 

Ruptura de una subrutina.-

Ya vimos en el tema de los bucles que era posible salirse de un bucle si era conveniente, y lo mismo pasa con las subrutinas.

Podemos pués detener la ejecución de un procedimiento y salir del mismo mediante la palabra reservada Exit Sub. Pero aunque es posible hacerlo, no es conveniente su uso, ya que se tiende a abusar de ella, construyéndose así un código lioso y chapucero, que suele traer al final más inconvenientes que ventajas. Existen otros métodos más claros y precisos para resolver éste tipo de necesidades.

 

anterior
siguiente

Home - ASP - Subprogramas - 1 - 2 - 3