Mundo Web
manuales - recursos - graficos - programación...

Home -  ASP -   Capítulo 2  -  1 -  2 -  3  -  4 -  5 -  6

Curso práctico de ASP (II). Subprogramas.
por Luciano Moreno, webmaster de HTMLWeb.


Subprogramas.-

Una página ASP es, en líneas generales, un conjunto de instrucciones de código de servidor y de etiquetas de HTML que se ejecutan y renderizan secuencialmente, una detrás de otra, presentando pues una cierta analogía con el clásico programa escrito en cualquier lenguaje. Es ésta una de las razones por las que manejamos el concepto de aplicación web, más que página web, a la hora de referirnos a nuestras entidades ASP.

Supongamos ahora que tenemos una serie de instrucciones de código que debemos ejecutar una o más veces a lo largo de la secuencia temporal de nuestra página. Si esta secuencia fuese totalmente inalterable deberíamos escribir varias veces las mismas instrucciones, y si nos hace falta ejecutarlas muchas veces, imaginaros cómo sobrecargaríamos el programa y lo complicado que podría resultar.

En casi todos los lenguajes de programación tenemos unas entidades especiales que nos permiten evitar este problema, mediante la declaración de una serie de instrucciones que se pueden ejecutar en cualquier momento a lo largo de la secuencia del programa, aunque no estén en el orden secuencial estricto, y esto se consigue definiendo mediante unas sentencias especiales el principio y el fin de estos trozos de código, y dándoles un nombre apropiado que los identifique. Estas porciones de código reciben el nombre genérico de subprogramas, ya que podemos considerarlos como programas dentro de otros.

Una vez definidos estos pedazos de código, para ejecutarlos desde cualquier punto de nuestro programa sólo es necesarios llamarlos por su nombre identificador, pasándoles los parámetros adecuados para la ejecución correcta de las instrucciones que contienen, si ese es el caso.

Esto mismo ocurre en las páginas ASP, pudiendo entonces definir en las mismas porciones de código, delimitadas por una etiquetas propias, que tienen la propiedad de poder ser invocadas o llamadas en cualquier momento de la ejecución del código de la página, y que conocemos con el nombre genérico de subprogramas.
En VBScript/ASP tenemos dos tipos de subprogramas, que se diferencian fundamentalmente en que unos no devuelven valores como resultado de la ejecución del código que contienen (los procedimientos o subrutinas), mientras que los otros (las funciones) sí que pueden devolverlos.

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 posee 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 tras 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 introducimos 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
%>

NOTA: Este tema forma parte del curso "Curso Práctico de Programación en ASP 3.0", cuyos temarios han sido desarrollados exclusivamente por HTMLWeb, que también se encarga de las tutorías del mismo. Un curso práctico, de calidad y económico, con un 10% de descuento para los usuarios de HTMLWeb.

 


siguiente

Home -  ASP -   Capítulo 2  -  1 -  2 -  3  -  4 -  5 -  6