Bienvenidos espero les guste la pagina

VBSCRIPT2

Procedimientos de VBScript        

 

Tipos de procedimientos

En VBScript hay dos tipos de procedimientos; el procedimiento Sub y el procedimiento Function.

 

Procedimientos Sub

Un procedimiento Sub es una serie de instrucciones de VBScript, entre instrucciones Sub y End Sub, que ejecutan acciones pero no devuelven ningún valor. Un procedimiento Sub puede tener argumentos (constantes, variables o expresiones que se transfieren por una llamada a un procedimiento). Si un procedimiento Sub no tiene argumentos, su instrucción Sub debe incluir un par de paréntesis vacíos ().

El siguiente procedimiento Sub utiliza dos funciones de VBScript intrínsecas o incorporadas, MsgBox y InputBox, para preguntar al usuario cierta información. Después muestra los resultados del cálculo en base a esa información. El cálculo se ejecuta en un procedimiento Function creado mediante VBScript. Se muestra en la explicación del procedimiento Function a continuación.

 Sub ConvertirTemp()

 temp = InputBox("Escriba la temperatura en grados Farenheit.", 1)

    MsgBox "La temperatura es de " & Celsius(temp) & " grados Celsius."

 End Sub

 

Procedimientos Function

Un procedimiento Function es una serie de instrucciones VBScript entre instrucciones Function y End Function. Un procedimiento Function es similar a un procedimiento Sub, pero también puede devolver un valor. Un procedimiento Function puede tener argumentos (constantes, variables o expresiones que se transfieren por una llamada a un procedimiento). Si un procedimiento Function no tiene argumentos, su instrucción Function debe incluir un par de paréntesis vacíos. Un procedimiento Function devuelve un valor asignando un valor a su nombre en una o más instrucciones del procedimiento. El tipo de datos devuelto por un procedimiento Function siempre es un tipo Variant.

En el siguiente ejemplo, la función Celsius calcula los grados Celsius a partir de grados Fahrenheit. Cuando se llama a la función desde el procedimiento Sub ConvertTemp, se transfiere a la función una variable que contiene el valor del argumento. El resultado del cálculo se devuelve al procedimiento que realizó la llamada y se muestra en un cuadro de mensajes.

 Sub ConvertirTemp()

     temp = InputBox("Escriba la temperatura en grados Farenheit.", 1)

     MsgBox "La temperatura es de " & Celsius(temp) & " grados Celsius."

 End Sub

 Function Celsius(fGrados)

     Celsius = (fGrados - 32) * 5 / 9

 End Function

 

Obtención de datos dentro y fuera de procedimientos

Cada fragmento de datos se transfiere a los procedimientos utilizando un argumento. Los argumentos sirven como marcadores de posición para los datos que desea transferir al procedimiento. Cuando crea un procedimiento utilizando la instrucción Sub o la instrucción Function, se deben incluir paréntesis después del nombre del procedimiento. Los argumentos se colocan dentro de estos paréntesis, separados por comas. En el siguiente ejemplo, fGrados es un marcador de posición para el valor que se va a transferir a la función Celsius para la conversión:

Function Celsius(fGrados)

    Celsius = (fGrados - 32) * 5 / 9

 End Function

Para obtener datos fuera de un procedimiento, debe utilizar un procedimiento Function. Recuerde que un procedimiento Function puede devolver un valor, mientras que un procedimiento Sub no puede hacerlo.

 

Uso de los procedimientos Sub y Function en código

Un procedimiento Function en el código, siempre se debe utilizar en la parte derecha de una asignación de variable o en una expresión. Por ejemplo:

 Temp = Celsius(fGrados)

o

 MsgBox "La temperatura Celsius es de " & Celsius(fGrados) & " grados."

 

Para llamar a un procedimiento Sub desde otro procedimiento, escriba sólo el nombre del procedimiento junto con los valores de los argumentos necesarios, separados por una coma. La instrucción Call no se necesita, pero si la utiliza, debe escrirbir los argumentos entre paréntesis.

El siguiente ejemplo muestra dos llamadas al procedimiento MiProc. Uno utiliza la instrucción Call en el código y el otro no. Ambos procedimientos hacen exactamente lo mismo.

 Call MiProc(primerarg, segundoarg)

 MiProc primerarg, segundoarg

Observe que los paréntesis se omiten en la llamada cuando no se utiliza la instrucción Call.

 

Convenciones de codificación de VBScript              

 

¿Qué son las convenciones de codificación?

Las convenciones de codificación son sugerencias que le pueden ayudar a escribir código utilizando Microsoft Visual Basic Scripting Edition. Las convenciones de codificación pueden incluir lo siguiente:

·      Convenciones de denominación de objetos, variables y procedimientos

·      Convenciones de comentarios

·      Formato de texto e instrucciones de sangría

La principal razón para utilizar un conjunto coherente de convenciones de codificación es normalizar la estructura y el estilo de codificación de una secuencia de comandos o un conjunto de secuencias de comandos de modo que se pueda leer y entender el código más fácilmente. Utilizar unas buenas convenciones de codificación dan como resultado un código de origen preciso, legible y no ambiguo que es coherente con otras convenciones de lenguaje y lo más intuitivas posibles.

 

Convenciones de denominación de constantes

Las versiones anteriores de VBScript carecían de mecanismos para crear constantes definidas por el usuario. Las constantes, si se utilizaron, se implementaron como variables y se diferenciaban de otras variables utilizando mayúsculas. Las palabras se separaban con signos de subrayado (_) entre sí. Por ejemplo:

MÁX_USUARIO_LISTA

NUEVA_LINEA

Ésta todavía es una forma adecuada de identificar las constantes, pero puede utilizar un esquema alternativo de denominación, ahora puede crear verdaderas constantes si utiliza la instrucción Const. Esta convención utiliza un formato mixto en el que los nombre de constantes tiene el prefijo "con". Por ejemplo:

conSuConstante

 

Convenciones de denominación de variables

Para obtener una mayor legibilidad y coherencia, utilice los siguientes prefijos con nombres descriptivos para variables en código VBScript.

Subtipo

Prefijo

Ejemplo

Boolean

Bln

blnEncontrado

Byte

Byt

bytDatosFuente

Date (Time)

Dtm

dtmInicio

Double

Dbl

dblTolerancia

Error

Err

errNúmOrden

Integer

Int

intCantidad

Long

Lng

lngDistancia

Object

obj

objActual

Single

sng

sngPromedio

String

str

strNombre

 

Alcance de variables

Las variables se deben definir siempre con el menor alcance posible. Las variables VBScript pueden tener el siguiente alcance.

 

Alcance

Dónde se declara la variable

Visibilidad

Nivel de procedimiento

Evento, Función o procedimiento Sub

Visible en el procedimiento donde se declaró.

Nivel de secuencia de comandos

Sección HEAD de una página HTML, fuera de un procedimiento

Visible en cada procedimiento de la secuencia de comandos.

 

Prefijos del alcance de variables

A medida que crece una secuencia de comandos, el valor es capaz de diferenciar rápidamente el alcance de las variables. Un prefijo de alcance de una letra precede al prefijo de tipo proporcionado, sin un incremento excesivo del tamaño de los nombres de variables.

 

Alcance

Prefijo

Ejemplo

Nivel de procedimiento

Ninguno

dblVelocidad

Nivel de secuencia de comandos

s

sblnCalculando

 

Nombres descriptivos de procedimientos y variables

El cuerpo del nombre de una variable o un procedimiento se debe utilizar mezclando mayúsculas y minúsculas, y debe ser tan completo como sea necesario para describir su propósito. Además, los nombres de procedimientos deben comenzar con un verbo, como IniciarNombreMatriz o CerrarDiálogo.

Para términos largos o utilizados frecuentemente, se recomiendan las abreviaturas estándar para ayudar a mantener una longitud del nombre razonable. En general, los nombres de variables de más de 32 caracteres pueden dificultar la lectura. Cuando utilice abreviaturas, asegúrese de que son coherentes a lo largo de toda la secuencia de comandos. Cambiar aleatoriamente entre Cnt y Contar dentro de una secuencia de comandos o un conjunto de secuencias de comandos puede llevar a errores.

 

Convenciones de denominación de objetos

La siguiente tabla enumera convenciones recomendadas para varios objetos que puede encontrar mientrar programa en VBScript.

 

 

Tipo de objeto

Prefijo

Ejemplo

Panel 3D

pnl

pnlGrupo

Botón animado

ani

aniBuzón

Casilla de verificación

chk

chkSóloLectura

Cuadro combinado, cuadro de lista desplegable

cbo

cboInglés

Botón de comando

cmd

cmdSalir

Diálogo común

dlg

dlgAbrirArchivo

Marco

fra

fraIdioma

Barra de desplazamiento horizontal

hsb

hsbVolumen

Imagen

img

imgIcono

Etiqueta

lbl

lblMensajeAyuda

Línea

lin

linVertical

Cuadro de lista

lst

lstCódigosPóliza

Botón de número

spn

spnPáginas

Cuadro de texto

txt

txtApellido

Barra de desplazamiento vertical

vsb

vsbTasa

Control deslizante

sld

sldEscala

 

Convenciones para comentar el código

Todos los procedimientos deben comenzar con un breve comentario que describa qué hacen. Esta descripción no debe describir los detalles de implementación (cómo se hace) porque frecuentemente cambian, resultando innecesaria la tarea de mantener comentarios o peor todavía, comentarios erróneos. El código propiamente dicho y cualquier comentario interno necesario describen la implementación.

Los argumentos transferidos a un procedimiento se deben describir cuando su propósito no es obvio y cuando el procedimiento espera que los argumentos estén en un intervalo específico. Los valores devueltos por las funciones y otras variables que cambia el procedimiento, especialmente mediante argumentos de referencia, también se deben describir al principio de cada procedimiento.

Los comentarios del encabezado del procedimiento deben incluir los siguientes encabezados de sección. Por ejemplo, vea la sección "Dar formato al código" a continuación.

 

Encabezado de sección

Contenido del comentario

Propósito

Qué hace el procedimiento (no cómo lo hace).

Supuestos

Lista de cualquier variable externa, control u otro elemento cuyo estado afecta a este procedimiento.

Efectos

Lista del efecto del procedimiento en cada variable externa, control u otro elemento.

Entradas

Explicación de cada argumento que no es obvio. Cada argumento debe estar en una línea distinta con los comentarios entre líneas.

Valores devueltos

Explicación del valor devuelto.

Recuerde lo siguiente:

 

Dar formato al código

El espacio de la pantalla se debe aprovechar lo máximo posible, de forma que se pueda dar formato al código para reflejar la estructura lógica y los anidamientos. Estas son algunas indicaciones:

·                     Los bloques anidados estándar se deben sangran cuatro espacios.

·                    Los comentarios de introducción de un procedimiento se deben sangran un espacio.

·                     Las instrucciones de más nivel que siguen a los comentarios de introducción se deben sangran cuatro espacios y cada bloque anidado se debe sangrar cuatro espacios más. Por ejemplo:

 '************************************************************

 ' Propósito:   Localiza la primera aparición de un usuario 

 '              especificado en la matriz ListaUsuario.

 ' Entradas:    strListaUsuario():   la lista de usuarios

 '                                                 en la que se va a buscar.

 '                       strUsuarioDestino:   el nombre del usuario 

 '                                                 que se va a buscar.

 ' Devuelve:              El índice de la primera aparición de

 '                         strUsuarioDestino en la matriz strListaUsuario. 

 '                       Si el usuario no se encuentra, devuelve -1

 '*************************************************************

 Function intBuscarUsuario (strListaUsuario(), strUsuarioDestino)

     Dim i                     ' Contador de bucle.

     Dim blnEncontrado                   ' Indicador de encontrado.

     intBuscarUsuario = -1

     i = 0                     ' Inicializa el contador de bucle

     Do While i <= Ubound(strListaUsuario) and Not blnEncontrado

         If strListaUsuario(i) = strUsuarioDestino Then 

             blnEncontrado = True   ' Establece el indicador a True

             intBuscarUsuario = i   ' Establece el valor devuelto al contador 

         End If

         i = i + 1             ' Incrementa el contador de bucle

     Loop

 End Function

 

 

Una página sencilla de VBScript                          

 

Una simple pagina

Con Microsoft® Internet Explorer, puede ver la página creada por el siguiente código de HTML. Si hace clic en el botón de la página, podrá ver VBScript en funcionamiento.

<HTML>

<HEAD><TITLE>Una primera página sencilla</TITLE>

<SCRIPT LANGUAGE="VBScript">

<!--

Sub Boton1_OnClick

        MsgBox "Mirabile visu."

End Sub

-->

</SCRIPT>

</HEAD>

<BODY>

<H3>Una primera página sencilla</H3><HR>

<FORM><INPUT NAME="Boton1" TYPE="BUTTON" VALUE="Haga clicaquí"></FORM>

</BODY>

</HTML>

El resultado es más bien descorazonador: se muestra un cuadro de diálogo con una frase en latín en él ("Maravillosa visión"). Sin embargo, hay una pequeña continuación.

Cuando Internet Explorer lee la página, encuentra las etiquetas <SCRIPT>, reconoce que es una parte de código de VBScript y guarda el código. Después, cuando hace clic en el botón, Internet Explorer establece la conexión entre el botón y el código, y ejecuta el procedimiento.

El procedimiento Sub en las etiquetas <SCRIPT> es un procedimiento de evento. Hay dos partes en el nombre del procedimiento: el nombre del botón, Boton1 (del atributo NAME en la etiqueta <INPUT>) y un nombre de evento, OnClick. Los dos nombres están unidos por un carácter de subrayado(_). Cuando se hace clic en el botón, Internet Explorer busca y ejecuta el procedimiento de evento correspondiente, Boton1_OnClick.

Internet Explorer define los eventos dispomibles para los controles del formulario en la documentación Modelo de objetos de secuencias de comandos de Internet Explorer.

También las páginas pueden utilizar combinaciones de controles y procedimientos. VBScript y los formularios muestra algunas interacciones sencillas entre controles.

 

siguiente