Vamos a ver algunos ejemplos.
<HTML> <HEAD> <TITLE> Prueba de funciones de conversi�n. </TITLE> </HEAD> <BODY> <SCRIPT LANGUAGE = "VBScript"> OPTION EXPLICIT DIM variable variable = 1 MSGBOX (CBOOL (variable)) </SCRIPT> </BODY> </HTML>
El resultado de este c�digo ser� el siguiente:

La funci�n CBOOL en particular devuelve un valor falso si el argumento es 0 y un valor verdadero si el argumento es cualquier otro n�mero.
Una observaci�n acerca de las conversiones entre subtipos num�ricos. Si un n�mero que convertimos, p.e., a Byte es muy grande para caber en este subtipo, se truncar�. Supongamos la siguiente sentencia: numero = CBYTE (567.384.896.456,29) . Esto es claramente una irregularidad, ya que el n�mero es demasiado grande para ser di subtipo Byte.
Veamos mas ejemplos:
<HTML> <HEAD> <TITLE>Prueba de funciones de cadena.</TITLE> </HEAD> <BODY> <SCRIPT LANGUAGE = "VBScript"> OPTION EXPLICIT DIM variable DIM parte_central variable = CHR (65) DOCUMENT.WRITE ("Valor de CHR (65): " & variable & "<BR>") variable = "Alfa" parte_central = INSTR (variable,"l") DOCUMENT.WRITE (parte_central & "<BR>") Variable = "Manzana" Parte_central = MID (variable, 3, 2) DOCUMENT.WRITE (parte_central) </SCRIPT> </BODY> </HTML>
Como resultado nos aparece en pantalla lo siguiente:
Valor de CHR (65): A 2 nz
F�jate en la segunda l�nea. Es el resultado de la funci�n INSTR. Si analizamos la correspondiente l�nea de c�digo veremos que esta funci�n recibe dos argumentos. El primero es la cadena (o variable que la contiene) donde hay que buscar algo. El segundo es la cadena (o variable que la contiene) que hay que buscar dentro. El n�mero que devuelve como resultado (en este caso el 2) es la posici�n que ocupa la segunda cadena dentro de la primera.
Ahora observa la �ltima l�nea, con el texto nz. Es el resultado de aplicar la funci�n MID. Observa la correspondiente l�nea de c�digo. Ves que esta funci�n recibe tres argumentos. El primero es una cadena (o la variable que la contiene) de la que se extraer� una sub-cadena. El segundo es un n�mero (o una variable que contiene un n�mero), que indica que lugar de la cadena iniciar� la sub-cadena. El tercero es un n�mero (o una variable que contiene un n�mero) que indica cuantos caracteres se coger�n para la sub-cadena. Hay que puntualizar que la cadena original no sufre amputaci�n ni transformaci�n de ning�n tipo.
Otro ejemplo:
<HTML> <HEAD> <TITLE>Prueba de funciones matem�ticas.</TITLE> </HEAD> <BODY> <SCRIPT LANGUAGE = "VBScript"> OPTION EXPLICIT RANDOMIZE DIM numero numero = 0 DO UNTIL numero > 0 numero = INPUTBOX ("Introduzca un n�mero") IF (NOT ISNUMERIC (numero)) THEN numero = 0 END IF LOOP DOCUMENT.WRITE ("El n�mero es: " & numero & "<BR>") numero = INT (numero) DOCUMENT.WRITE ("La parte entera es: " & numero & "<BR>") DOCUMENT.WRITE ("El valor hexa es: " & HEX (numero) & "<BR>") DOCUMENT.WRITE ("Un n�mero aleatorio es: " & RND() & "<BR>") </SCRIPT> </BODY> </HTML>
Este programa nos pide un n�mero por teclado como ya conocemos. Supongamos que introducimos 45,7. Los resultados ser�n los siguientes:
El n�mero es: 45,7 La parte entera es: 45 El valor hexa es: 2D Un n�mero aleatorio es: 0,1896936
La primera l�nea nos muestra el n�mero que hemos introducido.
La segunda nos muestra el resultado de obtener la parte entera con la funci�n INT.
La tercera l�nea nos muestra el valor hexa de 45.
La cuarta l�nea es un n�mero aleatorio generado con RND(). Esta funci�n siempre genera un n�mero aleatorio que est� entre 0 y 1. Observa que el c�digo incluye la instrucci�n RANDOMIZE.
Observa tambi�n que se ha usado la funci�n ISNUMERIC para anular la entrada por teclado si lo que se introdujo no es un n�mero. En este caso se ha precedido la funci�n del operador l�gico NOT. Consulta el Ap�ndice C para obtener mas informaci�n respecto a los operadores.
Otro ejemplo mas:
<HTML> <HEAD> <TITLE>Prueba de una funci�n de fecha</TITLE> </HEAD> <BODY> <SCRIPT LANGUAGE = "VBScript"> OPTION EXPLICIT DIM fecha fecha = DATE () IF (WEEKDAY (fecha, VBMONDAY) = 7) THEN DOCUMENT.WRITE ("Hoy es domingo.") ELSE DOCUMENT.WRITE ("Hoy se trabaja.") END IF </SCRIPT> </BODY> </HTML>
Este c�digo recoge, en primer lugar, la fecha del sistema. Si la fecha corresponde a un domingo, muestra:
Hoy es domingo.
En caso contrario, muestra:
Hoy se trabaja.
Para hacer esto, utiliza la funci�n WEEKDAY, indicando, como primer d�a de la semana, el Lunes. GENERALIDADES FINALES
Recuerda. Las tres diferencias b�sicas entre funciones de usuario y procedimientos son:
- La funci�n de usuario se define entre las instrucciones FUNCTION y END FUNCTION. El procedimiento se define entre SUB y END SUB.
- Las funciones (de usuario y del lenguaje) devuelven un resultado. Los procedimientos, no.
- La forma de invocar una funci�n es con su nombre seguido de par�ntesis. Si la funci�n recibe argumentos, �stos van entre los par�ntesis. Para invocar un procedimiento hay dos formas. La primera es el nombre del procedimiento seguido de los argumentos, si los hay, separados por comas. La segunda es la palabra clave CALL, seguida del nombre del procedimiento, seguido �ste, a su vez de par�ntesis. Si hay argumentos, �stos van entre los par�ntesis, seguidos por comas.