manual del alumno - instituto wienertiempo de ejecución para vbscript. microsoft está trabajando...

111
INSTITUTO SUPERIOR TECNOLÓGICO NORBERT WIENER Manual del Alumno ASIGNATURA: Aplicativos V (Visual Basic Script y Javascript) PROGRAMA: S3C Lima-Perú

Upload: others

Post on 03-Aug-2020

1 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Manual del Alumno - Instituto Wienertiempo de ejecución para VBScript. Microsoft está trabajando con varios grupos de Internet para definir el estándar de ActiveX Scripting de modo

INSTITUTO SUPERIOR TECNOLÓGICO

NORBERT WIENER

Manual del Alumno

ASIGNATURA:

Aplicativos V (Visual Basic Script y Javascript)

PROGRAMA: S3C

Lima-Perú

Page 2: Manual del Alumno - Instituto Wienertiempo de ejecución para VBScript. Microsoft está trabajando con varios grupos de Internet para definir el estándar de ActiveX Scripting de modo

2

Manual del Alumno

INDICE

Introducción ................................................................................................................................................. 6

ActiveX Scripting ..................................................................................................................................... 6

VBScript en otras aplicaciones y exploradores ........................................................................................ 6

INTERPRETACIÓN ................................................................................................................................ 6

COMPILACIÓN ...................................................................................................................................... 7

Agregar código de VBScript a una página HTML ....................................................................................... 7

La etiqueta <SCRIPT> ............................................................................................................................. 7

Tipos de datos de VBScript ........................................................................................................................ 10

¿Cuáles son los tipos de datos de VBScript? .......................................................................................... 10

Subtipos de Variant ................................................................................................................................ 10

Variables de VBScript ................................................................................................................................ 11

¿Qué es una variable? ............................................................................................................................. 11

Declaración de variables ......................................................................................................................... 11

Restricciones de nombre ......................................................................................................................... 12

Alcance y vida de las variables ............................................................................................................... 12

Asignación de valores a variables .......................................................................................................... 12

Constantes de VBScript .............................................................................................................................. 13

¿Qué es una constante? ........................................................................................................................... 13

Creación de constantes ........................................................................................................................... 13

Variables escalares y variables de matrices ................................................................................................ 14

Instrucción Dim .......................................................................................................................................... 15

Descripción ............................................................................................................................................. 15

Sintaxis : Dim nombredevariable[([subíndices])][, nombredevariable[([subíndices])]] . . . ............... 15

Comentarios............................................................................................................................................ 15

Operadores de VBScript ............................................................................................................................. 17

Prioridad de los operadores .................................................................................................................... 17

Operadores de VBScript ............................................................................................................................. 18

Funciones ................................................................................................................................................... 18

Función Abs ........................................................................................................................................... 18

Función Array ......................................................................................................................................... 18

Función Asc ............................................................................................................................................ 19

Instrucción Call ...................................................................................................................................... 19

Función CBool ....................................................................................................................................... 19

Función CByte ........................................................................................................................................ 20

Función CCur ......................................................................................................................................... 20

Función CDate ........................................................................................................................................ 21

Función CDbl ......................................................................................................................................... 21

Función Chr ............................................................................................................................................ 21

Función CInt ........................................................................................................................................... 22

Función CLng ......................................................................................................................................... 22

Función CSng ......................................................................................................................................... 23

Función CStr........................................................................................................................................... 23

Función Exp ........................................................................................................................................... 24

Funciones Int y Fix ................................................................................................................................. 24

Función GetObject.................................................................................................................................. 24

Función Hour .......................................................................................................................................... 26

Función IsDate ....................................................................................................................................... 26

Función LBound ..................................................................................................................................... 27

Función LCase ........................................................................................................................................ 27

Función Left ........................................................................................................................................... 27

Función Len ............................................................................................................................................ 27

Función LoadPicture .............................................................................................................................. 28

Funciones LTrim, RTrim y Trim ............................................................................................................ 28

Función Mid ........................................................................................................................................... 28

Función Minute ...................................................................................................................................... 29

Función Month ....................................................................................................................................... 29

Función MonthName .............................................................................................................................. 29

Page 3: Manual del Alumno - Instituto Wienertiempo de ejecución para VBScript. Microsoft está trabajando con varios grupos de Internet para definir el estándar de ActiveX Scripting de modo

3

Manual del Alumno Función Now .......................................................................................................................................... 30

Función RGB .......................................................................................................................................... 30

Función Right ......................................................................................................................................... 30

Función Rnd ........................................................................................................................................... 31

Función Round ....................................................................................................................................... 32

Función Second ...................................................................................................................................... 32

Función Sgn ............................................................................................................................................ 32

Función Space ........................................................................................................................................ 33

Función Sqr ............................................................................................................................................ 33

Función String ........................................................................................................................................ 33

Función UBound .................................................................................................................................... 34

Función UCase ....................................................................................................................................... 34

Función VarType .................................................................................................................................... 35

Función Weekday ................................................................................................................................... 35

Función WeekdayName ......................................................................................................................... 36

Función Year .......................................................................................................................................... 37

Procedimientos de VBScript ...................................................................................................................... 38

Tipos de procedimientos ......................................................................................................................... 38

Procedimientos Sub .................................................................................................................................... 38

Instrucción Sub ....................................................................................................................................... 38

Procedimientos Function ............................................................................................................................ 39

Instrucción Function ............................................................................................................................... 40

Obtención de datos dentro y fuera de procedimientos ................................................................................ 42

Uso de los procedimientos Sub y Function en código ................................................................................ 42

Uso de instrucciones condicionales ............................................................................................................ 43

Control de la ejecución del programa ......................................................................................................... 43

Toma de decisiones utilizando If ... Then ... Else ....................................................................................... 43

Instrucción If...Then...Else ..................................................................................................................... 43

Ejecución de instrucciones si una condición es True ............................................................................. 44

Ejecución de ciertas instrucciones si la condición es True y ejecución de otras si es False ................... 44

Decisión entre varias alternativas ........................................................................................................... 45

Toma de decisiones utilizando Select Case ................................................................................................ 45

Instrucción Select Case............................................................................................................................... 46

Bucles mediante código .............................................................................................................................. 47

Uso de bucles para repetir código ............................................................................................................... 47

Uso de bucles Do ........................................................................................................................................ 47

Instrucción Do...Loop ............................................................................................................................. 47

Repetición de instrucciones mientras una condición es True ..................................................................... 48

Repetición de una instrucción hasta que una condición pasa a ser True .................................................... 49

Salida de una instrucción Do ... Loop desde dentro del bucle .................................................................... 49

Uso de While ... Wend................................................................................................................................ 50

Instrucción While...Wend ....................................................................................................................... 50

Uso de For ... Next ..................................................................................................................................... 50

Instrucción For...Next ............................................................................................................................. 51

Uso de For Each...Next............................................................................................................................... 52

Instrucción For Each...Next .................................................................................................................... 53

Operador de Concatenación & .................................................................................................................. 55

Operador +.................................................................................................................................................. 55

Operadores de comparación ....................................................................................................................... 56

Función InStr .......................................................................................................................................... 58

Función IsNumeric ................................................................................................................................. 58

Formateo de Números ................................................................................................................................ 59

Función FormatNumber ......................................................................................................................... 59

Función FormatCurrency ........................................................................................................................ 60

Función FormatPercent .......................................................................................................................... 62

InputBoxes y Message Box ........................................................................................................................ 63

Función InputBox ................................................................................................................................... 63

Función MsgBox .................................................................................................................................... 64

Función Date .......................................................................................................................................... 67

Page 4: Manual del Alumno - Instituto Wienertiempo de ejecución para VBScript. Microsoft está trabajando con varios grupos de Internet para definir el estándar de ActiveX Scripting de modo

4

Manual del Alumno Función DateAdd ................................................................................................................................... 67

Función DateDiff .................................................................................................................................... 68

Función Day ........................................................................................................................................... 69

Función Time ......................................................................................................................................... 69

Función TimeSerial ................................................................................................................................ 70

Función TimeValue ................................................................................................................................ 70

Tipos de eventos ......................................................................................................................................... 70

Eventos de ratón ..................................................................................................................................... 70

Eventos de teclado .................................................................................................................................. 71

Eventos de enfoque................................................................................................................................. 71

Eventos de formulario ............................................................................................................................ 71

Eventos de carga de página .................................................................................................................... 71

Modelo de Objetos ..................................................................................................................................... 72

Evento onMouseOver ......................................................................................................................... 72

Objeto form ............................................................................................................................................ 74

Objeto window ....................................................................................................................................... 74

Objeto document .................................................................................................................................... 75

Objeto form ............................................................................................................................................ 76

Objeto location ....................................................................................................................................... 76

Objeto navigator ..................................................................................................................................... 76

Objeto history ......................................................................................................................................... 77

Introducción a Java Script .......................................................................................................................... 78

Escritura de Código en Java Script ............................................................................................................. 78

Instrucciones ........................................................................................................................................... 78

Comentarios............................................................................................................................................ 79

Asignaciones e igualdad ......................................................................................................................... 79

Expresiones ............................................................................................................................................ 79

Caracteristicas ............................................................................................................................................ 80

Diferencia con JAVA ................................................................................................................................. 80

Principales aplicaciones.............................................................................................................................. 80

Donde incluirlo ........................................................................................................................................... 81

En el cuerpo del documento ................................................................................................................... 81

En archivo aparte .................................................................................................................................... 81

Usando manejadores de evento .............................................................................................................. 81

Haciendo una llamada a función ............................................................................................................ 82

Variables de Java Script ............................................................................................................................. 83

Declarar variables ................................................................................................................................... 83

Nombrar variables .................................................................................................................................. 83

Conversión.............................................................................................................................................. 84

Tipos de Datos ............................................................................................................................................ 85

¿Qué son los tipos de datos de JScript? .................................................................................................. 85

Tipo de dato Cadena ............................................................................................................................... 85

Tipo de dato numérico ............................................................................................................................ 85

Tipo Boolean .......................................................................................................................................... 86

Tipo de dato no definido ......................................................................................................................... 86

Tipo de dato Null .................................................................................................................................... 86

Operadores de Java Script .......................................................................................................................... 87

Precedencia de operadores...................................................................................................................... 87

Arreglos y Cadenas .................................................................................................................................... 89

Indexación de matrices ........................................................................................................................... 89

Referencias a matrices ............................................................................................................................ 89

Objetos Intrínsecos ..................................................................................................................................... 90

Objeto Array ........................................................................................................................................... 90

Objeto String .......................................................................................................................................... 91

Objeto Math ............................................................................................................................................ 91

Objeto Date............................................................................................................................................. 91

Objeto Number ....................................................................................................................................... 93

Control del Flujo del Programa .................................................................................................................. 94

¿Por qué controlar el flujo de la ejecución? ............................................................................................ 94

Page 5: Manual del Alumno - Instituto Wienertiempo de ejecución para VBScript. Microsoft está trabajando con varios grupos de Internet para definir el estándar de ActiveX Scripting de modo

5

Manual del Alumno Usar instrucciones condicionales ............................................................................................................ 94

Operador condicional ............................................................................................................................. 95

Usar repeticiones o bucles ...................................................................................................................... 95

Usar bucles for ........................................................................................................................................ 95

Usar bucles for...in.................................................................................................................................. 96

Usar bucles while ................................................................................................................................... 96

Usar instrucciones break y continue ....................................................................................................... 97

Objeto window ........................................................................................................................................... 98

open ........................................................................................................................................................ 98

close ........................................................................................................................................................ 98

alert ......................................................................................................................................................... 99

status ....................................................................................................................................................... 99

defaultStatus ........................................................................................................................................... 99

Objeto document ........................................................................................................................................ 99

write ........................................................................................................................................................ 99

lastModified............................................................................................................................................ 99

bgColor ................................................................................................................................................... 99

Objeto history ............................................................................................................................................. 99

Objeto form .............................................................................................................................................. 100

submit ................................................................................................................................................... 100

text ........................................................................................................................................................ 100

Objeto date ............................................................................................................................................... 100

Objeto math .............................................................................................................................................. 100

Objeto navigator ....................................................................................................................................... 100

Objeto screen ............................................................................................................................................ 100

Eventos ..................................................................................................................................................... 101

Lista de Eventos ................................................................................................................................... 101

Un ejemplo ........................................................................................................................................... 101

Objeto event ............................................................................................................................................. 102

DHTML .................................................................................................................................................... 103

Qué es CSS ............................................................................................................................................... 103

ANIMACIONES ...................................................................................................................................... 106

ESTILOS .............................................................................................................................................. 106

EJEMPLOS .......................................................................................................................................... 107

Cookies ..................................................................................................................................................... 110

Funciones básicas ..................................................................................................................................... 110

Un ejemplo ............................................................................................................................................... 111

Page 6: Manual del Alumno - Instituto Wienertiempo de ejecución para VBScript. Microsoft está trabajando con varios grupos de Internet para definir el estándar de ActiveX Scripting de modo

6

Manual del Alumno

Semana 1 : VBScript y la Web

Introducción

Microsoft Visual Basic Scripting Edition, el miembro más reciente de la familia de lenguajes de

programación Visual Basic, suministra una automatización activa a una amplia variedad de entornos,

incluidas las secuencias de comandos del cliente de Web en Microsoft Internet Explorer y las secuencias

de comandos del servidor de Web en Microsoft Internet Information Server.

Si ya conoce Visual Basic o Visual Basic for Applications, VBScript le será muy familiar. Incluso si no

conoce Visual Basic, una vez que lo haya aprendido podrá programar con toda la familia de lenguajes

Visual Basic.

ActiveX Scripting

VBScript se comunica con las aplicaciones de host mediante ActiveX™ Scripting. Con ActiveX

Scripting, evita que los exploradores y otras aplicaciones host necesiten escribir código especial de

integración para cada componente de la secuencia de comandos. ActiveX Scripting permite a un host

compilar una secuencia de comandos, obtener y llamar puntos de entrada, y administrar el espacio de

nombres disponible para el programador. Con ActiveX Scripting, los distribuidores de lenguajes pueden

crear run times de lenguaje estándar para la secuencia de comandos. Microsoft proporcionará soporte de

tiempo de ejecución para VBScript. Microsoft está trabajando con varios grupos de Internet para definir

el estándar de ActiveX Scripting de modo que se puedan intercambiar los motores de automatización.

ActiveX Scripting se utiliza en Microsoft® Internet Explorer y en Microsoft® Internet Information

Server.

VBScript en otras aplicaciones y exploradores

Como programador, puede licenciar su implementación de origen de VBScript sin cargo para utilizarla en

sus productos. Microsoft proporcionará implementaciones binarias de VBScript para la API de

Windows® de 32 bits, la API de Windows de 16 bits y la de Macintosh®. VBScript se integra con

exploradores de World Wide Web. VBScript y ActiveX Scripting también se pueden utilizar como un

lenguaje de automatización general en otras aplicaciones.

INTERPRETACIÓN

VENTAJAS INCONVENIENTES

El código es cómodo para depurar, ya

que no es necesario volver a compilar

tras un cambio.

No es necesario disponer de un

compilador, ya que el intérprete (que

forma parte del navegador) ejecuta el script.

El mantenimiento es fácil y rápido,

por parte del autor o de otro programador.

La ejecución se ralentiza, al

ser necesaria la interpretación

línea a línea cada vez.

El código es visible y puede

ser objeto de plagio por parte de otras personas.

El usuario tiene acceso al

código y puede modificarlo,

estropeando alguna operación.

Page 7: Manual del Alumno - Instituto Wienertiempo de ejecución para VBScript. Microsoft está trabajando con varios grupos de Internet para definir el estándar de ActiveX Scripting de modo

7

Manual del Alumno

COMPILACIÓN

VENTAJAS INCONVENIENTES

El código compilado se ejecuta

muy rápido, al no ser necesaria una traducción cada vez.

El código compilado no puede

ser "abierto" por otras personas.

No es necesario transmitir el

código fuente.

El código compilado puede

estar, íntegramente, incluido en un solo fichero.

Es necesario disponer de un

compilador-linkador para el proceso de la compilación.

El código compilado suele ocupar

bastante en disco, ya que incorpora

en el propio código algunas librerías del sistema.

Depurar un programa implica volver

a compilar tras los cambios.

El código en VBScript puede, además, estar diseñado para su ejecución en el lado

del cliente o en el del servidor. La diferencia es que un código que se ejecuta en el

lado del servidor no es visible en el lado del cliente. Este recibe los resultados, pero

no el código. El código que se debe de ejecutar en el lado del servidor estará

incluido en la página web correspondiente entre los tags <% y %> . Además

habrá que renombrar la página para aplicarle la extensión .asp (Active Server Page

-página activa en servidor-). El funcionamiento intrínseco de la ASP's está fuera de

los objetivos de éste temario, aunque lo comentaremos por encima al final. Este texto se refiere, por tanto, al lenguaje VBScript en el lado del cliente.

El lenguaje VBScript solo funciona correctamente con el navegador Internet

Explorer 4.0 y superiores, por lo que será necesario disponer del mismo. Los

usuarios de otros navegadores no podrán disfrutar de la potencia y versatilidad del

VBScript.

Agregar código de VBScript a una página HTML

Puede usar el elemento SCRIPT para agregar código de VBScript a una página

HTML.

La etiqueta <SCRIPT>

El código de VBScript se presenta en una página HTML dentro de una parejas de

etiquetas <SCRIPT>. Por ejemplo, un procedimiento que comprueba una fecha de

envío aparece como:

Page 8: Manual del Alumno - Instituto Wienertiempo de ejecución para VBScript. Microsoft está trabajando con varios grupos de Internet para definir el estándar de ActiveX Scripting de modo

8

Manual del Alumno

<SCRIPT LANGUAGE="VBScript">

<!--

Function PuedeEntregar(Dt)

PuedeEntregar = (CDate(Dt) - Now()) > 2

End Function

-->

</SCRIPT>

Las etiquetas <SCRIPT> de comienzo y fin rodean el código. El atributo LANGUAGE

indica el lenguaje de secuencia de comandos. Necesita especificar el lenguaje

porque los exploradores pueden utilizar otros lenguajes de secuencia de comandos.

Observe que la función PuedeEntregar aparece entre etiquetas de comentario (<!--

y -->). Esto evita que los exploradores que no entienden la etiqueta <SCRIPT>

muestra el código.

Como el ejemplo es una función general —no está vinculado a ningún control de

formulario en particular— puede incluirlo en la sección HEAD de la página:

<HTML>

<HEAD>

<TITLE>Haga su pedido</TITLE>

<SCRIPT LANGUAGE="VBScript">

<!--

Function PuedeEntregar(Dt)

PuedeEntregar = (CDate(Dt) - Now()) > 2

End Function

-->

</SCRIPT>

</HEAD>

<BODY>

...

Puede utilizar procedimientos en código en cualquier lugar de una página. Puede

colocar procedimientos en las secciones BODY y HEAD. Sin embargo, puede que

desee colocar todos los procedimientos en la sección HEAD para mantener todo el

código junto. Mantener el código en la sección HEAD asegura que todo el código se

lee y decodifica antes de que se necesite debido a una llamada dentro de la sección

BODY.

Una excepción destacable a esta regla es que puede desear proporcionar

formularios en línea con código de secuencia de comandos para responder a

eventos de objetos del formulario. Por ejemplo, puede incluir código de secuencia de comandos para responder a un clic en un botón en el formulario:

<HTML>

<HEAD>

<TITLE>Probar eventos de botón</TITLE>

</HEAD>

<BODY>

<FORM NAME="Formulario1">

<INPUT TYPE="Button" NAME="Boton1" VALUE="Clic">

Page 9: Manual del Alumno - Instituto Wienertiempo de ejecución para VBScript. Microsoft está trabajando con varios grupos de Internet para definir el estándar de ActiveX Scripting de modo

9

Manual del Alumno

<SCRIPT FOR="Boton1" EVENT="onClick"

LANGUAGE="VBScript">

MsgBox "¡Botón presionado!"

</SCRIPT>

</FORM>

</BODY>

</HTML>

La mayoría del código aparecerá en procedimientos Sub o Function y sólo se

llamará cuando el código que ha escrito provoca su ejecución. Sin embargo, puede

escribir código de VBScript fuera de procedimientos, pero dentro de un bloque

SCRIPT. Este código se ejecuta sólo una vez, cuando se carga la página HTML. Esto

le permite inicializar los datos o cambiar dinámicamente la apariencia de su página

Web cuando se carga.

Page 10: Manual del Alumno - Instituto Wienertiempo de ejecución para VBScript. Microsoft está trabajando con varios grupos de Internet para definir el estándar de ActiveX Scripting de modo

10

Manual del Alumno

Semana 2 : Bases de VBScript

Tipos de datos de VBScript

¿Cuáles son los tipos de datos de VBScript?

VBScript sólo tiene un tipo de datos que se llama Variant. Un tipo Variant es una

clase especial de tipo de datos que puede contener diferentes tipos de información,

dependiendo de cómo se utilice. Como Variant es el único tipo de datos en

VBScript, también es el único tipo de datos devuelto por todas las funciones en

VBScript.

En su forma más sencilla, un tipo Variant puede contener tanto información

numérica como de cadena. Un tipo Variant se comporta como un número cuando

se utiliza en un contexto numérico y como una cadena cuando se utiliza en un

contexto de cadena. Esto quiere decir que si trabaja con datos que parecen

números, VBScript asume que son números y realiza lo que es más adecuado para

números. Igualmente, si trabaja con datos que sólo pueden ser datos de cadena,

VBScript los trata como datos de cadena. Por supuesto, siempre puede hacer que los números se comporten como cadenas, escribiéndolos entre comillas (" ").

Subtipos de Variant

Más allá de las simples clasificaciones numéricas y de cadena, un tipo Variant

puede hacer más distinciones acerca de la naturaleza específica de la información

numérica. Por ejemplo, puede tener información numérica que representa una

fecha o una hora. Cuando se utiliza con datos de fecha u hora, el resultado se

expresa siempre como una fecha o una hora. Por supuesto, también puede tener

una amplia variedad de información numérica en el intervalo de tamaños de

sencillos valores Boolean a enormes números de signo flotante. Estas categorías

diferentes de información que puede contener un tipo Variant se llaman subtipos.

La mayoría de las veces sólo se puede establecer el tipo de datos que desea en un

tipo Variant y se comporta del modo más adecuado para el tipo de datos que

contiene.

La tabla siguiente muestra varios subtipos de datos que puede contener un tipo

Variant.

Subtipo Descripción

Empty Variant está sin inicializar. El valor es 0 para variables numéricas o una

cadena de longitud cero ("") para variables de cadena.

Null Variant contiene intencionadamente datos no válidos.

Boolean Contiene True o False.

Page 11: Manual del Alumno - Instituto Wienertiempo de ejecución para VBScript. Microsoft está trabajando con varios grupos de Internet para definir el estándar de ActiveX Scripting de modo

11

Manual del Alumno

Byte Contiene un entero entre 0 y 255.

Integer Contiene un entero -32.768 y 32.767.

Currency -922.337.203.685.477,5808 a 922.337.203.685.477,5807.

Long Contiene un entero -2.147.483.648 y 2.147.483.647.

Single Contiene un número de precisión simple y signo flotante entre -3,402823E38

y -1,401298E-45 para valores negativos, y entre 1,401298E-45 y

3.402823E38 para valores negativos.

Double Contiene un número de precisión doble y punto flotante en el intervalo de -

1,79769313486232E308 y -4,94065645841247E-324 para valores negativos,

y entre 4,94065645841247E-324 y 1,79769313486232E308 para valores

positivos.

Date

(Time) Contiene un número que representa una fecha entre el 1 de enero de 100 y el

31 de diciembre de 9999.

String Contiene una cadena de longitud variable que puede contener hasta 2 mil

millones de caracteres de longitud.

Object Contiene un objeto.

Error Contiene un número de error.

Puede usar las funciones de conversión para convertir datos un subtipo a otro.

Además la función VarType devuelve información acerca de cómo se almacenan los datos en un tipo Variant.

Variables de VBScript

¿Qué es una variable?

Una variable es un marcador de posición útil que hace referencia a una ubicación de

la memoria del equipo donde puede almacenar información de programa que puede

cambiar durante el tiempo en que se ejecuta la secuencia de comandos. Por

ejemplo, podría crear una variable llamada CuentaClics para almacenar el número

de veces que el usuario hizo clic en un objeto de una determinada página Web. El

lugar donde se ubica la variable en la memoria del equipo no es importante. Lo que

es importante es que sólo tiene que hacer referencia a su nombre para ver o

cambiar su valor. En VBScript, las variables siempre son de un tipo de datos

fundamental, Variant.

Declaración de variables

Declare variables explícitamente en la secuencia de comandos utilizando la

instrucción Dim, la instrucción Public y la instrucción Private. Por ejemplo:

Dim GradosFahrenheit

Declare múltiples variables separando cada nombre de variable por una coma. Por

ejemplo:

Page 12: Manual del Alumno - Instituto Wienertiempo de ejecución para VBScript. Microsoft está trabajando con varios grupos de Internet para definir el estándar de ActiveX Scripting de modo

12

Manual del Alumno

Dim Arriba, Abajo, Izquierda, Derecha

También puede declarar una variable implícitamente por el simple uso de su

nombre en alguna parte de la secuencia de comandos. Esto no se considera

adecuado, ya que podría escribir mal el nombre de la variable en uno o más lugares

provocando resultados inesperados cuando ejecuta el código. Por este motivo,

existe la instrucción Option Explicit para solicitar una declaración explícita de

todas las variables. La instrucción Option Explicit debe ser la primera instrucción

en la secuencia de comandos.

Restricciones de nombre

Los nombres de variables siguen las normas estándar de denominación en

VBScript. Un nombre de variable:

Debe comenzar con un carácter alfabético.

No puede contener un punto.

No debe superar 255 caracteres.

Debe ser único en el alcance donde se declara.

Alcance y vida de las variables

El alcance de una variable se determina cuando se declara. Cuando declara una

variable dentro de un procedimiento, sólo el código dentro de ese procedimiento

puede tener acceso o cambiar el valor de esa variable. Tiene scope local y se llama

variable de nivel de procedimiento. i declara una variable fuera de un

procedimiento, la hace reconocible en todos los procedimientos de la secuencia de

comandos. Este tipo de variable de nivel de secuencia de comandos y tiene alcance

de nivel de secuencia de comandos.

El tiempo que una variable existe es su vida. La vida de una variable de nivel de

secuencia de comandos se extiende desde el momento en que se declaró hasta el

momento en que finaliza la ejecución de la secuencia de comandos. A nivel de

procedimiento, una variable existe sólo cuando se encuentra en el procedimiento.

Cuando sale del procedimiento, la variable se destruye. Las variables locales son

adecuadas como espacio de almacenamiento temporal cuando se ejecuta un

procedimiento. Puede tener variables locales del mismo nombre en varios

procedimientos diferentes porque cada una sólo se reconoce en el procedimiento en

que se declaró.

Asignación de valores a variables

Los valores se asignan a variables creeando un expresión de la siguiente manera: la

variable está en la parte izquierda de la expresión y el valor que desea asignar a la

misma está a la derecha. Por ejemplo:

B = 200

Page 13: Manual del Alumno - Instituto Wienertiempo de ejecución para VBScript. Microsoft está trabajando con varios grupos de Internet para definir el estándar de ActiveX Scripting de modo

13

Manual del Alumno

Constantes de VBScript

¿Qué es una constante?

Una constante es un nombre significativo que contiene un número o una cadena

que nunca cambia. VBScript define un número de constantes intrínsecas. Puede

obtener información sobre estas constantes intrínsecas en Referencia del lenguaje

VBScript.

Creación de constantes

En VBScript puede crear constantes definidas por el usuario utilizando la instrucción

Const. Utilizando la instrucción Const, puede crear constantes numéricas o de

cadena con nombres significativos y asignarlas a valores literales. Por ejemplo:

Const MiCadena = "Esta es mi cadena."

Const MiEdad = 49

Observe que el literal de cadena se escribe entre comillas (" "). Las comillas son la

mejor y más clara forma de diferenciar valores de cadena y valores numéricos. Los

literales de fecha y los literales de hora se representan encerrándolos entre signos

de número (#). Por ejemplo:

Const FechaCorte = #6-1-97#

Puede que desee adoptar una combinación de nombres para diferenciar constantes

de variables. Esto impedirá que intente reasignar sus valores mientras se ejecuta la

secuencia de comandos. Por ejemplo, podría desear utilizar un prefijo "vb" en los

nombres de constantes o puede dar nombre a las constantes en mayúsculas. Al

diferenciar las constantes de las variables elimina la confusión cuando desarrolla

secuencias de comando complejas.

Page 14: Manual del Alumno - Instituto Wienertiempo de ejecución para VBScript. Microsoft está trabajando con varios grupos de Internet para definir el estándar de ActiveX Scripting de modo

14

Manual del Alumno

Semana 3 : Arreglos

Variables escalares y variables de matrices

Muchas veces, sólo desea asignar un único valor a una variable que ha declarado.

Una variable que contiene un único valor es una variable escalar. Otras veces, es

útil asignar más de un valor relacionado a una única variable. Entonces puede crear

una variable que pueda contener una serie de valores. Esto se llama una variable

de matriz. Las variables matriz se declaran de la misma forma que las variables

escalares. La diferencia es que una declaración de una variable de matriz utiliza

paréntesis ( ) a continuación del nombre de la variable. En el siguiente ejemplo se

declara una matriz de una dimensión que contiene 11 elementos:

Dim A(10)

Aunque el número que se muestra entre paréntesis es 10, todas las matrices en

VBScript son de base cero, por lo que la matriz realmente contiene 11 elementos.

En una matriz de base cero, el número de elementos de la misma siempre es el

número mostrado entre paréntesis más uno. Este tipo de matriz se llama una

matriz de tamaño fijo.

Asigne datos a cada elemento de la matriz utilizando un índice dentro de la matriz.

Comenzando en cero y terminando en 10, es posible asignar datos a los elementos

de una matriz del siguiente modo:

A(0) = 256

A(1) = 324

A(2) = 100

. . .

A(10) = 55

Del mismo modo, se pueden recuperar los datos de cualquier elemento utilizando el

índice que desee dentro del elemento de la matriz deseado. Por ejemplo:

. . .

AlgunaVariable = A(8)

. . .

Las matrices no están limitadas a una única dimensión. Puede tener hasta 60

dimensiones aunque la mayoría de las personas no pueden comprender más de tres

o cuatro. Las dimensiones múltiples se declaran separando con comas los números

de tamaño de la matriz dentro del paréntesis. En el siguiente ejemplo, la variable

MiTabla es una matriz bidimensional que consta de 6 filas y 11 columnas:

Dim MiTabla(5, 10)

En una matriz bidimensional, el primer número siempre es el número de filas y el

segundo el número de columnas.

Page 15: Manual del Alumno - Instituto Wienertiempo de ejecución para VBScript. Microsoft está trabajando con varios grupos de Internet para definir el estándar de ActiveX Scripting de modo

15

Manual del Alumno

Instrucción Dim

Descripción

Declara variables y asigna espacio de almacenamiento.

Sintaxis : Dim nombredevariable[([subíndices])][,

nombredevariable[([subíndices])]] . . .

La sintaxis de la instrucción Dim tiene las siguientes partes:

Parte Descripción

nombredevariable Nombre de la variable que cumple con las convenciones estándar de

asignación de nombres de variables.

subíndices Dimensiones de una variable de matriz; se pueden declarar hasta 60

dimensiones múltiples. El argumento subíndices usa la siguiente

sintaxis:

límitesuperior [,límitesuperior] . . .

El límite inferior de una matriz siempre es cero.

Comentarios

Las variables declaradas con Dim a nivel de secuencia de comandos están

disponibles para todos los procedimientos dentro de la secuencia de comandos. A

nivel de procedimiento, las variables sólo están disponibles dentro del

procedimiento.

También puede usar la instrucción Dim con paréntesis vacíos para declarar una

matriz dinámica. Después de declarar una matriz dinámica, use la instrucción

ReDim dentro de un procedimiento para definir el número de dimensiones y

elementos de la matriz. Si intenta volver a declarar una dimensión para una

variable de matriz cuyo tamaño se especificó explícitamente en una instrucción Dim, se produce un error.

Cuando se inician las variables, una variable numérica se inicia a 0 y una cadena se

inicia a una cadena de longitud cero ("").

Sugerencia Al usar la instrucción Dim en un procedimiento, generalmente se coloca la instrucción Dim

al principio del procedimiento.

Los siguientes ejemplos muestran el uso de la instrucción Dim:

Dim Nombres(9) ' Declara una matriz con 10 elementos.

Dim Nombres() ' Declara una matriz dinámica

Dim MiVar, MiNum ' Declara dos variables

Page 16: Manual del Alumno - Instituto Wienertiempo de ejecución para VBScript. Microsoft está trabajando con varios grupos de Internet para definir el estándar de ActiveX Scripting de modo

16

Manual del Alumno

También puede declarar una matriz cuyo tamaño cambia durante el tiempo en que

se ejecuta la secuencia de comandos. Esto se llama una matriz dinámica. La matriz

inicialmente se declara dentro de un procedimiento utilizando la instrucción Dim

como con cualquier tipo de matriz o la instrucción ReDim. Sin embargo, en una

matriz dinámica, no se establece un tamaño o un número de dimensiones dentro

del paréntesis.

Por ejemplo:

Dim MiMatriz()

ReDim OtraMatriz()

Para utilizar una matriz dinámica, debe utilizar a continuación ReDim para

determinar el número de dimensiones y el tamaño de cada una de ellas. En el

siguiente ejemplo, ReDim establece el tamaño inicial de la matriz dinámica a 25.

La siguiente instrucción ReDim cambia el tamaño de la matriz a 30, pero utiliza la

palabra clave Preserve para conservar el contenido de la matriz cuando se produce

el cambio de tamaño.

ReDim MiMatriz(25)

. . .

ReDim Preserve MiMatriz(30)

No hay límite en cuanto al número de veces que puede cambiar el tamaño de una

matriz dinámica, pero debe saber que si hace una matriz más pequeña de lo que

era, pierde los datos de los elementos eliminados.

Page 17: Manual del Alumno - Instituto Wienertiempo de ejecución para VBScript. Microsoft está trabajando con varios grupos de Internet para definir el estándar de ActiveX Scripting de modo

17

Manual del Alumno

Semana 4 : Operadores y Funciones en VBScript

Operadores de VBScript

VBScript tiene un completo conjunto de operadores, incluyendo operadores

aritméticos, operadores de comparación, operadores de concatenación y

operadores lógicos.

Prioridad de los operadores

Cuando se producen varias operaciones en una expresión, cada parte se evalúa y

se resuelve en un orden predeterminado. Este orden se conoce como prioridad de

los operadores. Puede utilizar paréntesis para invalidar el orden de prioridad y

forzar que se evalúen algunas partes de una expresión antes que otras. Las

operaciones entre paréntesis siempre se ejecutan antes que las de fuera. Sin

embargo, dentro de los paréntesis se mantiene la prioridad de los operadores.

Cuando las expresiones contienen operadores de más de una categoría, se evalúan

primero los operadores aritméticos, a continuación los operadores de comparación

y por último los lógicos. Todos los operadores de comparación tienen la misma

prioridad; esto quiere decir que se evalúan en el orden en que aparecen, de

izquierda a derecha. Los operadores aritméticos y lógicos se evalúan en el siguiente orden de prioridad.

Aritmético De comparación Lógico

Descripción Símbolo Descripción Símbolo Descripción Símbolo

Exponenciación ^ Igualdad = Logical

negation Not

Negación unaria - Desigualdad <> Logical

conjunction And

Multiplicación * Menor que < Disyunción

lógica Or

División / Mayor que > Exclusión

lógica Xor

División entera \ Menor o igual

que <= Equivalencia

lógica Eqv

Módulo aritmético Mod Mayor o igual

que >= Implicación

lógica Imp

Suma + Equivalencia de

objeto Is

Resta -

Concatenación de

cadenas &

Page 18: Manual del Alumno - Instituto Wienertiempo de ejecución para VBScript. Microsoft está trabajando con varios grupos de Internet para definir el estándar de ActiveX Scripting de modo

18

Manual del Alumno

Cuando una multiplicación y una división se producen juntas en una expresión,

cada operación se evalúa como ocurre de izquierda a derecha. Del mismo modo,

cuando una suma y una resta se producen juntas en una expresión, cada operación

se evalúa según el orden de aparición, de izquierda a derecha.

El operador de concatenación de cadenas (&) no es un operador aritmético, pero en

la prioridad se ejecuta después de todos los operadores aritméticos y antes de

todos los operadores de comparación. El operador Is es un operador de

comparación de referencia de objeto. No compara objetos o sus valores; sólo se

comprueba para determinar si dos referencias a objetos se refieren al mismo

objeto.

Operadores de VBScript

Función Abs Devuelve el valor absoluto de un número.

Sintaxis : Abs(número)

El argumento número puede ser cualquier expresión numérica válida. Si número

contiene Null, se devuelve Null ; si es un valor no iniciado, se devuelve cero.

El valor absoluto de un número es su magnitud sin signo. Por ejemplo, Abs(-1) y

Abs(1) devuelven 1.

El siguiente ejemplo usa la función Abs para compute the absolute value of a

number:

Dim MiNumero

MiNumero = Abs(50.3) 'Devuelve 50.3

MiNumero = Abs(-50.3) 'Devuelve 50.3

Función Array Devuelve un objeto Variant que contiene una matriz.

Sintaxis : Array(listadeargumentos)

El argumento requerido listadeargumentos es una lista de valores separados por

comas, que se asignan a los elementos de una matriz contenida en el objeto

Variant. Si no se especifica ningún argumento, se crea una matriz de longitud cero.

La notación usada para hacer referencia a un elemento de una matriz, consta del

nombre de la variable seguido de paréntesis que contienen un número de índice

que indica el elemento deseado. En el siguiente ejemplo, la primera instrucción crea

una variable llamada A. La segunda instrucción asigna una matriz a la variable A.

La última instrucción asigna el valor contenido en la segunda matriz a otra variable.

Dim A

A = Array(10,20,20)

Page 19: Manual del Alumno - Instituto Wienertiempo de ejecución para VBScript. Microsoft está trabajando con varios grupos de Internet para definir el estándar de ActiveX Scripting de modo

19

Manual del Alumno

B = A(2)

Función Asc Devuelve el código de carácter ANSI que corresponde a la primera letra de una

cadena.

Sintaxis : Asc(cadena)

El argumento cadena es cualquier expresión de cadena válida. Si cadena no

contiene ningún carácter, se produce un error en tiempo de ejecución.

En el ejemplo siguiente, Asc devuelve el código de carácter ANSI de la primera

letra de cada cadena:

Dim MiNumero

MiNumero = Asc("A") 'Devuelve 65

MiNumero = Asc("a") 'Devuelve 97

MiNumero = Asc("Azúcar") 'Devuelve 65

Instrucción Call Transfiere el control a un procedimiento Sub o Function.

Sintaxis : [Call] nombre [listadeargumentos]

La sintaxis de la instrucción Call tiene las siguientes partes:

Parte Descripción

Call Palabra clave opcional. Si se especifica, debe encerrar

listadeargumentosentre paréntesis. Por ejemplo:

Call MiProc(0)

nombre Requerido. Nombre del procedimiento al que se llama.

listadeargumentos Opcional. List de variables, matrices o expresiones delimitada por

comas que se pasa al procedimiento.

No necesita usar la palabra clave Call al llamar a un procedimiento. Sin embargo, si

usa la palabra clave Call para llamar a un procedimiento que necesita argumentos,

listadeargumentos debe estar encerrado entre paréntesois. Si omite la palabra

clave Call, también debe omitir los paréntesis que encierran a listadeargumentos.

Con cualquier sintaxis de Call que use para llamar a cualquier función intrínseca o

definida por el usuario, se descarta el valor devuelto por la función.

Call MiFuncion("Hola mundo")

Function MiFuncion(texto)

MsgBox texto

End Function

Función CBool Devuelve una expresión convertida en Variant de subtipo Boolean.

Sintaxis : CBool(expresión)

El argumento expresión es cualquier expresión válida.

Page 20: Manual del Alumno - Instituto Wienertiempo de ejecución para VBScript. Microsoft está trabajando con varios grupos de Internet para definir el estándar de ActiveX Scripting de modo

20

Manual del Alumno

Si expresión es cero, se devuelve False; de lo contrario, se devuelve True. Si

expresiónno se puede interpretar como valor numérico, se produce un error en

tiempo de ejecución.

El siguiente ejemplo usa la función CBool para convertir una expresión en

Boolean. Si la expresión se evalúa como un valor distinto de cero, CBool devuelve

True; de lo contrario, devuelve False.

Dim A, B, Comprobacion

A = 5: B = 5 ' Inicia variables

Comprobacion = CBool(A = B) ' Comprobacion contiene True

A = 0 ' Define la variable

Comprobacion = CBool(A) ' Comprobacion contiene

False

Función CByte

Devuelve una expresión que se convirtió en Variant de subtipo Byte.

Sintaxis : CByte(expresión)

El argumento expresión es cualquier expresión válida.

En general, puede documentar su código con las funciones de conversión de

subtipos para mostrar que el resultado de alguna operación se debe expresar como

un tipo de datos particular, en lugar del tipo de datos predeterminado. Por ejemplo,

use CByte para forzar aritmética de tipo byte en casos en los que normalmente se

usaría aritmética de moneda, precisión simple, precisión doble o entero.

Si expresión está fuera del intervalo aceptable para el subtipo Byte, se produce un

error. El siguiente ejemplo usa la función CByte para convertir una expresión en byte:

Dim MiDoble, MiByte

MiDoble = 125.5678 ' MiDoble es un Double

MiByte = CByte(MiDoble) ' MiByte contiene 126

Función CCur Devuelve una expresión que se convirtió en Variant de subtipo Currency.

Sintaxis : CCur(expresión)

El argumento expresión es cualquier expresión válida.

Debe usar la función CCur para proporcionar conversiones internacionales estándar

desde cualquier tipo de datos al subtipo Currency. Por ejemplo, distintos

separadores de decimales o de miles se reconocen correctamente según la configuración local de su sistema.

El siguiente ejemplo usa la función CCur para convertir una expresión en tipo de

datos Currency:

Dim MiDoble, MiMoneda

MiDoble = 543.214588 ' MiDoble es de tipo Double

MiMoneda = CCur(MiDoble * 2) ' Convierte el resultado de

MiDoble * 2 (1086.429176)

' en tipo de datos Currency

(1086.4292)

Page 21: Manual del Alumno - Instituto Wienertiempo de ejecución para VBScript. Microsoft está trabajando con varios grupos de Internet para definir el estándar de ActiveX Scripting de modo

21

Manual del Alumno

Función CDate Devuelve una expresión que se convirtió en Variant del subtipo Date.

Sintaxis : CDate(fecha)

El argumento fecha es cualquier expresión de fecha válida.

Use la función IsDate para determinar si se puede convertir fecha en una fecha u

hora. CDate reconoce literales de fecha y literales de hora, así como algunos

números que se encuentran dentro del rango de fechas aceptable. Al convertir un

número a fecha, la parte entera del número se convierte en una fecha. Cualquier

parte fraccionaria del número se convierte en una hora del día, a partir de

medianoche.

En el siguiente ejemplo se usa la función CDate para convertir una cadena en una

fecha. En general, no se recomienda establecer fechas y horas como cadenas

mediante programación (como se muestra en este ejemplo). En su lugar, use literales de fecha y hora, como #10/19/1962# o #4:45:23 PM#.

MiFecha = "19 de octubre de 1962" ' Define la fecha

MiHoraCorta = CDate(MiFecha) ' Convierte al tipo de

datos Date

MiHoraCompleta = "4:35:47 PM" ' Define la hora

completa

MiHoraCorta = CDate(MiHoraCompleta) ' Convierte al

tipo de datos Date

Función CDbl Devuelve una expresión que se convirtió en Variant de subtipo Double.

Sintaxis : CDbl(expresión)

El argumento expresión es cualquier expresión válida.

En general, puede documentar su código con las funciones de conversión de

subtipos para mostrar que el resultado de alguna operación se debe expresar como

un tipo de datos particular, en lugar del tipo de datos predeterminado. Por ejemplo,

use CDbl o CSng para forzar aritmética de doble precisión o simple precisión en

casos en los que normalmente se usaría aritmética de moneda o de entero.

Este ejemplo usa la función CDbl para convertir una expresión en Double.

Dim MiMoneda, MiDoble

MiMoneda = CCur(234.456784) ' MiMoneda es de

tipo Currency.

MiDoble = CDbl(MiMoneda * 8.2 * 0.01) ' Convierte el

resultado en Double.

Función Chr

Devuelve el carácter asociado al código de carácter ANSI especificado.

Sintaxis : Chr(códigodecarácter)

El argumento códigodecarácter es un número que identifica un carácter.

Los números entre 0 y 31 son iguales a los códigos ASCII estándar, no imprimibles.

Por ejemplo, Chr(10) devuelve un carácter de avance de línea.

Page 22: Manual del Alumno - Instituto Wienertiempo de ejecución para VBScript. Microsoft está trabajando con varios grupos de Internet para definir el estándar de ActiveX Scripting de modo

22

Manual del Alumno

El siguiente ejemplo usa la función Chr para devolver el carácter asociado al código

de carácter especificado:

Dim MiCaracter

MiCaracter = Chr(65) ' Devuelve A.

MiCaracter = Chr(97) ' Devuelve a.

MiCaracter = Chr(62) ' Devuelve >.

MiCaracter = Chr(37) ' Devuelve %.

Función CInt Devuelve una expresión que se convirtió enVariant del subtipo Integer.

Sintaxis : CInt(expresión)

El argumento expresión es cualquier expresión válida.

En general, puede documentar su código con las funciones de conversión de

subtipos para mostrar que el resultado de alguna operación se debería expresar

como un tipo de datos particular, en lugar del tipo de datos predeterminado. Por

ejemplo, use CInt o CLng para forzar aritmética de enteros en casos en los que

normalmente se usaría aritmética de moneda, precisión simple o precisión doble.

Si expresión está fuera del intervalo aceptable para el subtipo Integer, se produce un error.

El siguiente ejemplo usa la función CInt para convert a value to an Integer:

Dim MiDoble, MiEntero

MiDoble = 2345.5678 ' MiDoble es de tipo Double.

MiEntero = CInt(MiDoble) ' MiEntero contiene 2346.

Función CLng Devuelve una expresión que se convirtió en Variant del subtipo Long.

Sintaxis : CLng(expresión)

El argumento expresión es cualquier expresión válida.

En general, puede documentar su código con las funciones de conversión de

subtipos para mostrar que el resultado de alguna operación se debería expresar

como un tipo de datos particular, en lugar del tipo de datos predeterminado. Por

ejemplo, use CInt o CLng para forzar aritmética de enteros en casos en los que,

normalmente, se usaría aritmética de precisión simple o precisión doble.

Si expresión está fuera del intervalo aceptable para el subtipo Long, se produce un

error.

El siguiente ejemplo usa la función CLng para convertir un valor en Long:

Dim MiVal1, MiVal2, MiLong1, MiLong2

MiVal1 = 25427.45: MiVal2 = 25427.55 ' MiVal1, MiVal2

are Doubles.

MiLong1 = CLng(MiVal1) ' MiLong1 contiene 25427.

MiLong2 = CLng(MiVal2) ' MiLong2 contiene 25428.

Page 23: Manual del Alumno - Instituto Wienertiempo de ejecución para VBScript. Microsoft está trabajando con varios grupos de Internet para definir el estándar de ActiveX Scripting de modo

23

Manual del Alumno

Función CSng Devuelve una expresión que se convirtió en Variant del subtipo Single.

Sintaxis : CSng(expresión)

El argumento expresión es cualquier expresión válida.

En general, puede documentar su código con las funciones de conversión de tipos

de datos para mostrar que el resultado de algunas operaciones se debería expresar

como un tipo de datos particular, en lugar del tipo de datos predeterminado. Por

ejemplo, use CDbl o CSng para forzar aritmética de precisión doble o precisión

simple en casos en los que, normalmente, se usaría aritmética de moneda o de

enteros.

Si expresión está fuera del intervalo aceptable para el subtipo Single, se produce

un error.

El siguiente ejemplo usa la función CSng para convertir un valor en Single:

Dim MiDoble1, MiDoble2, MiSimple1, MiSimple2 ' MiDoble1,

MiDoble2 are Doubles.

MiDoble1 = 75.3421115: MiDoble2 = 75.3421555

MiSimple1 = CSng(MiDoble1) ' MiSimple1 contiene

75.34211.

MiSimple2 = CSng(MiDoble2) ' MiSimple2 contiene

75.34216.

Función CStr Devuelve una expresión que se convirtió en Variant del subtipo String.

Sintaxis : CStr(expresión)

El argumento expresión es cualquier expresión válida.

En general, puede documentar su código con funciones de conversión de tipos de

datos para mostrar que el resultado de alguna operación se debería expresar como

un tipo de datos particular, en lugar del tipo de datos predeterminado. Por ejemplo,

use CStr para forzar que el resultado se exprese como String.

Los datos almacenados en expresión determinan el valor devuelto de acuerdo con

la siguiente tabla:

Si expresión es CStr devuelve

Boolean Un valor de tipo String que contiene True o False.

Date Un valor de tipo String que contiene una fecha en formato de fecha

corta de su sistema.

Null Un error en tiempo de ejecución.

Empty Un valor de tipo String de longitud cero ("").

Error Un valor de tipo String que contiene la palabra Error seguido por el

número de error.

Otro valor

numérico Un valor de tipo String contiene el número.

Page 24: Manual del Alumno - Instituto Wienertiempo de ejecución para VBScript. Microsoft está trabajando con varios grupos de Internet para definir el estándar de ActiveX Scripting de modo

24

Manual del Alumno

El siguiente ejemplo usa la función CStr para convertir un valor numérico en

String:

Dim MiDoble, MiCadena

MiDoble = 437.324 ' MiDoble es de tipo Double.

MiCadena = CStr(MiDoble) ' MiCadena contiene "437.324".

Función Exp Devuelve e (la base de los logaritmos naturales) elevado a una potencia.

Sintaxis : Exp(número)

El argumento número puede ser cualquier expresión numérica válida.

Si el valor de número supera 709.782712893, se produce un error. La constante e

aproximadamente igual a 2.718282.

El siguiente ejemplo usa la función Exp para devolver e elevado a una potencia:

Dim MiAngulo, MiSenoH ' Define el ángulo en radianes.

MiAngulo = 1.3 ' Calcula el seno hiperbólico.

MiSenoH = (Exp(MiAngulo) - Exp(-1 * MiAngulo)) / 2

Funciones Int y Fix

Devuelve la parte entera de un número.

Sintaxis : Int(número) Fix(número)

El argumento número puede ser cualquier expresión numérica válida. Si número

contiene Null, se devuelve Null.

Int y Fix quitan la parte fraccional de número y devuelven el valor entero

resultante.

La diferencia entre Int y Fix es que si número es negativo, Int devuelve el primer

entero negativo menor o igual a número, mientras que Fix devuelve el primer

entero negativo mayor o igual a número. Por ejemplo, Int convierte -8.4 a -9, y Fix convierte -8.4 a -8.

Fix(número) es equivalente a:

Sgn(número) * Int(Abs(número))

Los siguientes ejemplo muestran cómo devuelven partes enteras de números las

funciones Int y Fix:

MiNumero = Int(99.8) ' Devuelve 99.

MiNumero = Fix(99.2) ' Devuelve 99.

MiNumero = Int(-99.8) ' Devuelve -100.

MiNumero = Fix(-99.8) ' Devuelve -99.

MiNumero = Int(-99.2) ' Devuelve -100.

MiNumero = Fix(-99.2) ' Devuelve -99.

Función GetObject Devuelve una referencia a un objeto de automatización desde un archivo.

Sintaxis : GetObject([nombrederuta] [, clase])

La sintaxis de la función GetObject tiene las siguientes partes:

Page 25: Manual del Alumno - Instituto Wienertiempo de ejecución para VBScript. Microsoft está trabajando con varios grupos de Internet para definir el estándar de ActiveX Scripting de modo

25

Manual del Alumno

Parte Descripción

nombrederuta Opcional; String. Ruta y nombre completos del archivo que contiene el

objeto que desea recuperar. Si se omite nombrederuta, se requiere clase.

clase Opcional; String. Clase del objeto.

El argumento claseusa la sintaxis nombredeaplicación.tipodeobjeto y tiene las

siguientes partes:

Parte Descripción

nombredeaplicación Requerido; String. Nombre de la aplicación que proporciona el

objeto.

tipodeobjeto Requerido; String. Tipo o clase de objeto que desea crear.

Use la función GetObject para tener acceso a un objeto de automatización desde

un archivo y asignar el objeto a una variable de objeto. Use la instrucción Set para

asignar el objeto devuelto por GetObject a la variable de objeto. Por ejemplo:

Dim CADObject

Set CADObject = GetObject("C:\CAD\SCHEMA.CAD")

Cuando se ejecuta este código, se inicia la aplicación asociada con el nombre de

ruta especificado y el objeto del archivo especificado se activa. Si nombrederuta es

una cadena de longitud cero (""), GetObject devuelve una nueva instancia de

objeto del tipo especificado. Si se omite el argumento nombrederuta, GetObject

devuelve un objeto activo del tipo especificado. Si no existe ningún objeto del tipo

especificado, se produce un error.

Algunas aplicaciones le permiten activar parte de un archivo. Agregue un signo de

admiración (!) al final del nombre del archivo y, a continuación, agregue una

cadena que identifique la parte del archivo que desea activar. Para obtener

información acerca de cómo crear esta cadena, consulte la documentación de la

aplicación que creó el objeto.

Por ejemplo, en una aplicación de dibujo podría tener varias capas de un dibujo

almacenado en un archivo. Podría usar el siguiente código para activar una capa de

un dibujo llamado SCHEMA.CAD:

Set ObjetoCapa = GetObject("C:\CAD\SCHEMA.CAD!Layer3")

Si no especifica la clase de objeto, la automatización determina la aplicación que

debe iniciar el objeto para activarlo, basado en el nombre de archivo

proporcionado. Sin embargo, es posible que algunos archivos admitan más de una

clase de objeto. Por ejemplo, un dibujo puede admitir tres tipos de objeto distintos:

un objeto Application, un objeto Drawing y un objeto Toolbar, y todos forman parte

del mismo archivo. Para especificar qué objeto desea activar en un archivo, use el

argumento opcional clase. Por ejemplo:

Dim MiObjeto

Set MiObjeto = GetObject("C:\DIBUJOS\EJEMPLO.DRW",

"FIGMENT.DRAWING")

Page 26: Manual del Alumno - Instituto Wienertiempo de ejecución para VBScript. Microsoft está trabajando con varios grupos de Internet para definir el estándar de ActiveX Scripting de modo

26

Manual del Alumno

En el ejemplo anterior, FIGMENT es el nombre de una aplicación de dibujo y

DRAWING es uno de los tipos de objeto que admite. Una vez activado un objeto, se

hace referencia a él en el código mediante la variable de objeto definida. En el

ejemplo anterior, se tiene acceso a las propiedades y métodos del nuevo objeto con

la variable de objeto MiObjeto. Por ejemplo:

MiObjeto.Line 9, 90

MiObjeto.InsertText 9, 100, "Hola mundo."

MiObjeto.SaveAs "C:\DIBUJOS\EJEMPLO.DRW"

Función Hour

Devuelve un número entero entre 0 y 23, ambos incluidos, que representa la hora

del día.

Sintaxis : Hour(hora)

El argumento hora es cualquier expresión que pueda representar una hora. Si hora

contiene Null, se devuelve Null.

El siguiente ejemplo usa la función Hour para obtener la hora a partir de la hora

actual:

Dim MiHoraCompleta, MiHora

MiHoraCompleta = Now

MiHora = Hour(MiHoraCompleta) ' MiHora contiene el número

que representa la hora actual.

Función IsDate Devuelve un valor de tipo Boolean que indica si una expresión se puede o no

convertir en una fecha.

Sintaxis : IsDate(expresión)

El argumento expresión puede ser cualquier expresión de fecha o expresión de cadena reconocible como fecha u hora.

IsDate devuelve True si la expresión es una fecha o si se puede convertir en una

fecha válida. De lo contrario, devuelve False. En Microsoft Windows, el intervalo

válido de fechas es desde el 1 de enero del año 100 hasta el 31 de diciembre del

año 9999; los intervalos varían según el sistema operativo.

El siguiente ejemplo usa la función IsDate para determinar si una expresión se puede o no convertir en una fecha:

Dim MiFecha, SuFecha, NingunaFecha, MiComprobacion

MiFecha = "October 19, 1962": SuFecha = #10/19/62#:

NingunaFecha = "Hola"

MiComprobacion = IsDate(MiFecha) ' Devuelve True.

MiComprobacion = IsDate(SuFecha) ' Devuelve True.

MiComprobacion = IsDate(NingunaFecha) ' Devuelve False.

Page 27: Manual del Alumno - Instituto Wienertiempo de ejecución para VBScript. Microsoft está trabajando con varios grupos de Internet para definir el estándar de ActiveX Scripting de modo

27

Manual del Alumno

Función LBound

Devuelve el subíndice más pequeño disponible para la dimensión indicada de una

matriz.

Sintaxis : LBound(nombredematriz[, dimensión])

La sintaxis de la función LBound tiene las siguientes partes:

Parte Descripción

nombredematriz Nombre de la variable de matriz, que cumple con las convenciones

estándar de asignación de nombres de variables.

dimensión Número entero que indica de qué dimensión se devuelve el límite

inferior. Use 1 para la primera dimensión, 2 para la segunda y así

sucesivamente. Si se omite dimensión, se asume 1.

Función LCase

Devuelve una cadena convertida a minúsculas.

Sintaxis : LCase(cadena)

El argumento cadena es cualquier expresión de cadena válida. Si cadena contiene

Null, se devuelve Null.

Función Left Devuelve un número de caracteres especificado a partir del lado izquierdo de una

cadena.

Sintaxis : Left(cadena, longitud)

La sintaxis de la función Left tiene los siguientes argumentos:

Parte Descripción

cadena Expresión de cadena a partir de la que se devuelven los caracteres que están más

a la izquierda. Si cadena contiene Null, se devuelve Null.

longitud Expresión numérica que indica cuántos caracteres se van a devolver. Si es igual a

0, se devuelve una cadena de longitud cero (""). Si es mayor o igual al número de

caracteres de cadena, se devuelve la cadena completa.

Función Len

Devuelve el número de caracteres en una cadena o el número de bytes necesarios

para almacenar una variable.

Sintaxis : Len(cadena | nombredevariable)

La sintaxis de la función Len tiene las siguientes partes:

Parte Descripción

cadena Cualquier expresión de cadena válida. Si cadena contiene Null, se

devuelve Null.

nombredevariable Cualquier nombre de variable válido. Si nombrevariable contiene Null,

se devuelve Null.

Page 28: Manual del Alumno - Instituto Wienertiempo de ejecución para VBScript. Microsoft está trabajando con varios grupos de Internet para definir el estándar de ActiveX Scripting de modo

28

Manual del Alumno

En el siguiente ejemplo se usa la función Len para devolver el número de

caracteres que contiene una cadena:

Dim MiCadena

MiCadena = Len("VBSCRIPT") MiCadena contiene 8.

Función LoadPicture

Devuelve un objeto de imagen. Sólo está disponible en plataformas de 32 bits.

Sintaxis : LoadPicture(nombredeimagen)

El argumento nombredeimagen es una expresión de cadena que indica el nombre

del archivo de imagen que se va a cargar.

Los formatos gráficos reconocidos por LoadPicture incluyen archivos de mapa de

bits (.bmp), archivos de iconos (.ico), archivos cifrados de longitud continua (.rle),

metaarchivos (.wmf), metaarchivos mejorados (.emf), archivos GIF (.gif) y archivos

JPEG (.jpg).

Funciones LTrim, RTrim y Trim

Devuelve una copia de una cadena sin espacios iniciales (LTrim), espacios finales

(RTrim) o ambos (Trim).

Sintaxis : LTrim(cadena) RTrim(cadena) Trim(cadena)

El argumento cadena es cualquier expresión de cadena válida. Si cadena contiene

Null, se devuelve Null.

Los siguientes ejemplos usan las funciones LTrim, RTrim y Trim para recortar

espacios iniciales, espacios finales y ambos, respectivamente:

Dim MiVar

MiVar = LTrim(" vbscript ") 'MiVar contiene "vbscript ".

MiVar = RTrim(" vbscript ") 'MiVar contiene " vbscript".

MiVar = Trim(" vbscript ") 'MiVar contiene "vbscript".

Función Mid

Devuelve un números especificado de caracteres a partir de una cadena.

Sintaxis : Mid(cadena, inicio[, longitud])

La sintaxis de la función Mid tiene los siguientes argumentos:

Parte Descripción

cadena Expresión de cadena a partir de la que se devuelven los caracteres. Si cadena

contiene Null, se devuelve Null.

inicio Posición de carácter en cadena en la que comienza la parte que se va a obtener.

Si inicio es mayor que el número de caracteres que hay en cadena, Mid devuelve

una cadena de longitud cero ("").

longitud Número de caracteres que se va a devolver. Si se omite o si hay menos caracteres

que longitud en el texto (incluido el carácter que está en la posición inicio), se

devuelven todos los caracteres desde la posición inicio hasta el final de la

cadena.

Para determinar el número de caracteres que hay en cadena, use la función Len.

Page 29: Manual del Alumno - Instituto Wienertiempo de ejecución para VBScript. Microsoft está trabajando con varios grupos de Internet para definir el estándar de ActiveX Scripting de modo

29

Manual del Alumno

El siguiente ejemplo usa la función Mid para devolver seis caracteres, comenzando

en el cuarto carácter, en una cadena:

Dim MiVar

MiVar = Mid("VB Script es divertido", 4, 6) 'MiVar contiene

"Script".

Función Minute

Devuelve un número entero entre 0 y 59, ambos incluidos, que representa el

minuto de la hora.

Sintaxis : Minute(hora)

El argumento hora es cualquier expresión que puede representar una hora. Si hora

contiene Null, se devuelve Null.

El siguiente ejemplo usa la función Minute para devolver el minuto de la hora:

Dim MiVar

MiVar = Minute(Now)

Función Month

Devuelve un número entero entre 1 y 12, ambos incluidos, que representa el mes

del año.

Sintaxis : Month(fecha)

El argumento fecha es cualquier expresión que pueda representar una fecha. Si

fecha contien Null, se devuelve Null.

El siguiente ejemplo usa la función Mes para devolver el mes actual:

Dim MiVar

MiVar = Month(Now) ' MiVar contiene el número

correspondiente al mes actual.

Función MonthName Devuelve una cadena que indica el mes especificado.

Sintaxis : MonthName(mes[, abreviar])

La sintaxis de la función MonthName tiene las siguientes partes:

Parte Descripción

mes Requerido. La designación numérica del mes. Por ejemplo, enero es 1,

febrero es 2 y así sucesivamente.

abreviar Opcional. Valor de tipo Boolean que indica si el nombre del mes se debe

abreviar. Si se omite, el valor predeterminado es False, que significa que el

nombre del mes no se debe abreviar.

El siguiente ejemplo usa la función MonthName para devolver un nombre de mes

abreviado para una expresión de fecha:

Dim MiVar

MiVar = MonthName(10, True) ' MiVar contiene "Oct".

Page 30: Manual del Alumno - Instituto Wienertiempo de ejecución para VBScript. Microsoft está trabajando con varios grupos de Internet para definir el estándar de ActiveX Scripting de modo

30

Manual del Alumno

Función Now

Devuelve la fecha y hora actuales según la configuración de la fecha y hora de su

sistema.

Sintaxis : Now

El siguiente ejemplo usa la función Now para devolver la fecha y hora actuales:

Dim MiVar

MiVar = Now ' MiVar contiene la fecha y hora actuales.

Función RGB Devuelve un número entero que representa un valor de un color RGB.

Sintaxis : RGB(rojo, verde, azul)

La función RGB tiene las siguientes partes:

Parte Descripción

rojo Requerido. Número en el intervalo entre 0 y 255 que representa el componente rojo

del color.

verde Requerido. Número en el intervalo entre 0 y 255 que representa el componente

verde del color.

azul Requerido. Número en el intervalo entre 0 y 255 que representa el componente azul

del color.

Los métodos y propiedades de aplicaciones que aceptan una especificación de color

esperan que la especificación sea un número que represente un valor de un color

RGB. Un valor de un color RGB especifica la intensidad relativa de rojo, verde y azul

para producir la visualización de un color específico.

El byte menos significativo contiene el valor del rojo, el byte del medio contiene el

valor del verde y el byte más significativo contiene el valor del azul.

Para aplicaciones que requieren que el orden de los bytes se invierta, la siguiente

función proporcion la misma información con los bytes invertidos:

Function InvertirRGB(rojo, verde, azul)

InvertirRGB= CLng(azul + (verde * 256) + (rojo *

65536))

End Function

Se asume que el valor de cualquier argumento RGB que exceda 255, es 255.

Función Right Devuelve un número de caracteres especificado a partir del lado derecho de una

cadena.

Sintaxis : Right(cadena, longitud)

La sintaxis de la función Right tiene los siguientes argumentos:

Page 31: Manual del Alumno - Instituto Wienertiempo de ejecución para VBScript. Microsoft está trabajando con varios grupos de Internet para definir el estándar de ActiveX Scripting de modo

31

Manual del Alumno

Parte Descripción

cadena Expresión de cadena desde la que se devuelven los caracteres que están más a la

derecha. Si cadena contiene Null, se devuelve Null.

longitud Expresión numérica que indica cuántos caracteres se van a devolver. Si es igual a

0, se devuelve una cadena de longitud cero. Si es mayor o igual al número de

caracteres que hay en cadena, se devuelve toda la cadena.

Para determinar el número de caracteres que hay en cadena, use la función Len.

El siguiente ejemplo usa la función Right para devolver un número especificado de

caracteres a partir del lado derecho de una cadena:

Dim CualquierCadena, MiCad

CualquierCadena = "Hola mundo" 'Define la cadena.

MiCad = Right(CualquierCadena, 1) ' Devuelve "d".

MiCad = Right(CualquierCadena, 6) ' Devuelve " mundo".

MiCad = Right(CualquierCadena, 20) ' Devuelve "Hola mundo".

Función Rnd Devuelve un número aleatorio.

Sintaxis : Rnd[(número)]

El argumento número puede ser cualquier expresión numérica válida.

La función Rnd devuelve un valor menor que 1 pero mayor o igual a 0. El valor de

número determina cómo Rnd genera un número aleatorio:

Si número es Rnd genera

Menor que cero El mismo número cada vez, con número como semilla.

Mayor que cero El siguiente número aleatorio de la secuencia.

Igual a cero El último número generado.

No suministrado El siguiente número aleatorio de la secuencia.

Para cualquier semilla inicial proporcionada, se genera la misma secuencia de

números porque cada llamada sucesiva a la función Rnd usa el número anterior como semilla para el siguiente número de la secuencia.

Antes de llamar a Rnd, use la instrucción Randomize sin ningún argumento para

iniciar el generador de números aleatorios con una semilla basada en el reloj del sistema.

Para producir enteros aleatorios dentro de un intervalo específico, use esta fórmula:

Int((límitesuperior - límiteinferior + 1) * Rnd +

límiteinferior)

Aquí, límitesuperior es el número más alto del intervalo y límiteinferior es el

número más bajo del intervalo.

Page 32: Manual del Alumno - Instituto Wienertiempo de ejecución para VBScript. Microsoft está trabajando con varios grupos de Internet para definir el estándar de ActiveX Scripting de modo

32

Manual del Alumno

Función Round

Devuelve un número redondeado a un número especificado de posiciones

decimales.

Sintaxis : Round(expresión[, posicionesdecimales])

La sintaxis de la función Round tiene las siguientes partes:

Parte Descripción

expresión Requerido. Expresión numérica que se va a redondear.

posicionesdecimales Opcional. Número que indica cuántas posiciones a la derecha del

decimal se incluyen en el redondeo. Si se omite, la función Round

devuelve enteros.

El siguiente ejemplo usa la función Round para redondear un número a dos

posiciones decimales:

Dim MiVar, pi

pi = 3.14159

MiVar = Round(pi, 2) 'MiVar contiene 3.14.

Función Second

Devuelve un número entero entre 0 y 59, ambos incluidos, que representa el

segundo del minuto.

Sintaxis : Second(hora)

El argumento hora es cualquier expresión que pueda representar una hora. Si hora

contiene Null, se devuelve Null.

El siguiente ejemplo usa la función Second para devolver el segundo actual:

Dim MiSeg

MiSeg = Second(Now) 'MiSeg contiene el número que

representa el segundo actual.

Función Sgn

Devuelve un entero que indica el signo de un número.

Sintaxis : Sgn(número)

El argumento número puede ser cualquier expresión numérica válida.

Valores devueltos La función Sgn devuelve los siguientes valores:

Si número es Sgn devuelve

Mayor que cero 1

Igual a cero 0

Menor que cero -1

El signo del argumento número determina el valor devuelto de la función Sgn.

El siguiente ejemplo usa la función Sgn para determinar el signo de un número:

Dim MiVar1, MiVar2, MiVar3, MiSigno

Page 33: Manual del Alumno - Instituto Wienertiempo de ejecución para VBScript. Microsoft está trabajando con varios grupos de Internet para definir el estándar de ActiveX Scripting de modo

33

Manual del Alumno

MiVar1 = 12: MiVar2 = -2.4: MiVar3 = 0

MiSigno = Sgn(MiVar1) ' Devuelve 1.

MiSigno = Sgn(MiVar2) ' Devuelve -1.

MiSigno = Sgn(MiVar3) ' Devuelve 0.

Función Space

Devuelve una cadena que consta del número de espacios especificado.

Sintaxis : Space(número)

El argumento número es el número de espacios que desea en la cadena.

El siguiente ejemplo usa la función Space para devolver una cadena que consta de

un número de espacios especificado:

Dim MiCadena

MiCadena = Space(10) ' Devuelve una

cadena con 10 espacios.

MiCadena = "Hola" & Space(10) & "mundo" ' Inserta 10

espacios entre las dos cadenas.

Función Sqr Devuelve la raíz cuadrada de un número.

Sintaxis : Sqr(número)

El argumento número puede ser cualquier expresión numérica válida mayor o igual

a 0.

El siguiente ejemplo usa la función Sqr para calcular la raíz cuadrada de un

número:

Dim MyRaiz

MyRaiz = Sqr(4) ' Devuelve 2.

MyRaiz = Sqr(23) ' Devuelve 4.79583152331272.

MyRaiz = Sqr(0) ' Devuelve 0.

MyRaiz = Sqr(-4) ' Genera un error en tiempo de ejecución.

Función String Devuelve una cadena de caracteres repetidos de la longitud especificada.

Sintaxis : String(número, carácter)

La sintaxis de la función String tiene los siguientes argumentos:

Parte Descripción

número Longitud de la cadena devuelta. Si número contiene Null, se devuelve Null.

carácter Código de carácter que especifica el carácter o expresión de cadena cuyo primer

carácter se usa para generar la cadena devuelta. Si carácter contiene Null, se

devuelve Null.

Si especifica un número para carácter mayor que 255, String convierte el número

en un código de carácter válido con la fórmula:

carácter Mod 256

El siguiente ejemplo usa la función String para devolver cadenas de caracteres

repetidos de la longitud especificada:

Page 34: Manual del Alumno - Instituto Wienertiempo de ejecución para VBScript. Microsoft está trabajando con varios grupos de Internet para definir el estándar de ActiveX Scripting de modo

34

Manual del Alumno

Dim MiCadena

MiCadena = String(5, "*") ' Devuelve "*****".

MiCadena = String(5, 42) ' Devuelve "*****".

MiCadena = String(10, "ABC") ' Devuelve "AAAAAAAAAA".

Función UBound

Devuelve el mayor subíndice disponible para la dimensión indicada de una matriz.

Sintaxis : UBound(nombredematriz[, dimensión])

La sintaxis de la función UBound tiene las siguientes partes:

Parte Descripción

nombredematriz Requerido. nombre de la variable de matriz que cumple con el estándar

de asignación de nombres de variables.

dimensión Opcional. Número entero que indica para qué dimensión se va a devolver

el límite superior. Use 1 para la primera dimensión, 2 para la segunda y

así sucesivamente. Si se omite dimensión, se asume que es igual a 1.

La función UBound se usa con la función LBound para determinar el tamaño de

una matriz. Use la función LBound para buscar el límite inferior de una dimensión

de una matriz.

El límite inferior de cualquier dimensión siempre es igual a 0. Como resultado,

UBound devuelve los siguientes valores para una matriz con estas dimensiones:

Dim A(100,3,4)

Instrucción Valor devuelto

UBound(A, 1) 100

UBound(A, 2) 3

UBound(A, 3) 4

Función UCase

Devuelve una cadena que se convirtió en mayúsculas.

Sintaxis : UCase(cadena)

El argumento cadena es cualquier expresión de cadena válida. Si cadena contiene

Null, se devuelve Null.

Sólo se convierten en mayúsculas las letras minúsculas; todas las letras

mayúsculas y caracteres que no son letras no cambian.

El siguiente ejemplo usa la función UCase para devolver una versión en

mayúsculas de una cadena:

Dim MiPalabra

MiPalabra = UCase("Hola mundo") ' Devuelve "HOLA MUNDO".

Page 35: Manual del Alumno - Instituto Wienertiempo de ejecución para VBScript. Microsoft está trabajando con varios grupos de Internet para definir el estándar de ActiveX Scripting de modo

35

Manual del Alumno

Función VarType

Devuelve un valor que indica el subtipo de una variable.

Sintaxis : VarType(nombredevariable)

El argumento nombredevariable puede ser cualquier variable.

Valores devueltos La función VarType devuelve los siguientes valores:

Constante Valor Descripción

vbEmpty 0 Empty (no iniciado)

vbNull 1 Null (datos no válidos)

vbInteger 2 Entero

vbLong 3 Entero largo

vbSingle 4 Número de coma flotante de precisión simple

vbDouble 5 Número de coma flotante de precisión doble

vbCurrency 6 Moneda

vbDate 7 Fecha

vbString 8 Cadena

vbObject 9 objeto de automatización

vbError 10 Error

vbBoolean 11 Valor de tipo Boolean

vbVariant 12 Valor de tipo Variant (sólo se usa con matrices de valores de tipo

Variant)

vbDataObject 13 Un objeto de acceso a datos

vbByte 17 Valor de tipo Byte

vbArray 8192 Matriz

Nota Estas constantes las especifica VBScript. Como resultado, los nombres se pueden usar en cualquier

parte del código en lugar de los valores reales.

Función Weekday

Devuelve un número entero que representa el día de la semana.

Sintaxis : Weekday(fecha, [primerdíasemana])

La sintaxis de la función Weekday tiene los siguientes argumentos:

Parte Descripción

fecha Cualquier expresión que pueda representar una fecha. Si fecha contiene

Null, se devuelve Null.

primerdíasemana Una constante que especifica el primer día de la semana. Si se omite, se

asume vbSunday.

Page 36: Manual del Alumno - Instituto Wienertiempo de ejecución para VBScript. Microsoft está trabajando con varios grupos de Internet para definir el estándar de ActiveX Scripting de modo

36

Manual del Alumno

Valores El argumento primerdíasemana tiene los siguientes valores:

Constante Valor Descripción

vbUseSystem 0 Usar configuración de API NLS.

vbSunday 1 Domingo

vbMonday 2 Lunes

vbTuesday 3 Martes

vbWednesday 4 Miércoles

vbThursday 5 Jueves

vbFriday 6 Viernes

vbSaturday 7 Sábado

Valores devueltos La función Weekday puede devolver cualquiera de los siguientes valores:

Constante Valor Descripción

vbSunday 1 Domingo

vbMonday 2 Lunes

vbTuesday 3 Martes

vbWednesday 4 Miércoles

vbThursday 5 Jueves

vbFriday 6 Viernes

vbSaturday 7 Sábado

El siguiente ejemplo usa la función Weekday para obtener el día de la semana de

una fecha especificada:

Dim MiFecha, MiDiaDeLaSemana

MiFecha = #19 de octubre de 1962# ' Asigna una fecha.

MiDiaDeLaSemana = Weekday(MiFecha) ' MiDiaDeLaSemana

contiene 6 porque MiFecha representa un viernes.

Función WeekdayName

Devuelve una cadena que indica el día de la semana especificado.

Sintaxis : WeekdayName(díasemana, abreviar, primerdíasemana)

La sintaxis de la función WeekdayName tiene las siguientes partes:

Parte Descripción

díasemana Requerido. La designación numérica para el día de la semana. El valor

numérico de cada día depende de la configuración del valor

primerdíasemana.

abreviar Opcional. Valor de tipo Boolean que indica si el nombre del día de la

semana se debe abreviar. Si se omite, el valor predeterminado es False,

que significa que el nombre del día de la semana no se abrevia.

Page 37: Manual del Alumno - Instituto Wienertiempo de ejecución para VBScript. Microsoft está trabajando con varios grupos de Internet para definir el estándar de ActiveX Scripting de modo

37

Manual del Alumno

primerdíasemana Opcional. Valor numérico que indica el primer día de la semana.

Consulte la sección Valores para saber cuáles son los valores

permitidos.

Valores El argumento primerdíasemana puede tener los siguientes valores:

Constante Valor Descripción

vbUseSystem 0 Usar configuración de API NLS.

vbSunday 1 Domingo (predeterminado)

vbMonday 2 Lunes

vbTuesday 3 Martes

vbWednesday 4 Miércoles

vbThursday 5 Jueves

vbFriday 6 Viernes

vbSaturday 7 Sábado

El siguiente ejemplo usa la función WeekDayName para devolver el día

especificado:

Dim MiFecha

MiFecha = WeekDayName(6, True) 'MiFecha contiene Vie.

Función Year Devuelve un número entero que representa el año.

Sintaxis : Year(fecha)

El argumento fecha es cualquier expresión que pueda representar una fecha. Si

fecha contiene Null, se devuelve Null.

El siguiente ejemplo usa la función Year para obtener el año a partir de una fecha

especificada:

Dim MiFecha, MiAno

MiFecha = #19 de octubre de 1962# ' Asigna una fecha.

MiAno = Year(MiFecha) ' MiAno contiene 1962.

Page 38: Manual del Alumno - Instituto Wienertiempo de ejecución para VBScript. Microsoft está trabajando con varios grupos de Internet para definir el estándar de ActiveX Scripting de modo

38

Manual del Alumno

Semana 5 : Procedimientos en VBScript

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

Instrucción Sub

Declara el nombre, argumentos y código de que forman el cuerpo de un

procedimiento Sub.

Sintaxis : [Public | Private] Sub nombre [(listadeargumentos)]

[instrucciones]

[Exit Sub]

[instrucciones]

End Sub

La sintaxis de la instrucción Sub tiene las siguientes partes:

Parte Descripción

Public Indica que el procedimiento Sub es accesible desde todos los demás

procedimientos en todas las secuencias de comandos.

Private Indica que el procedimiento Sub es accesible sólo desde los

procedimientos de la secuencia de comandos en la que se declara.

nombre Nombre del procedimiento Sub; sigue la convención de nomenclatura

estándar de variables.

listadeargumentos Lista de variables que representan los argumentos pasados al

procedimiento Sub al ser llamado. Las distintas variables se separan

Page 39: Manual del Alumno - Instituto Wienertiempo de ejecución para VBScript. Microsoft está trabajando con varios grupos de Internet para definir el estándar de ActiveX Scripting de modo

39

Manual del Alumno

con comas.

instrucciones Cualquier grupo de instrucciones para ser ejecutadas dentro del cuerpo

del procedimiento Sub.

El argumento listadeargumentos tiene las siguiente sintaxis y las siguientes partes:

[ByVal | ByRef] nombredevariable[( )]

Parte Descripción

ByVal Indica que el argumento se pasa por valor.

ByRef Indica que el argumento se pasa por referencia.

nombredevariable Nombre de la variable que representa el argumento; sigue la

convención de nomenclatura estándar de variables.

Si no se especifica explícitamente mediante Public o Private, los procedimientos

Sub son públicos de forma predeterminada, esto es, son visibles a todos los demás

procedimientos en la secuencia de comandos. El valor de las variables en un

procedimiento Sub no se preserva entre llamadas al procedimiento.

Todo el código ejecutable debe estar contenido en procedimientos. No se puede

definir un procedimiento Sub dentro de otro procedimiento Sub o Function.

La instrucción Exit Sub produce la salida inmediata del procedimiento Sub. La

ejecución del programa continúa con la instrucción siguiente a la que llamó al

procedimiento Sub. Puede aparecer cualquier número de instrucciones Exit Sub en cualquier parte de un procedimiento Sub.

Como un procedimiento Function, un procedimiento Sub es un procedimiento

independiente que puede tomar argumentos, ejecutar una serie de instrucciones y

cambiar el valor de sus argumentos. Sin embargo, a diferencia de un procedimiento

Function, que devuelve un valor, un procedimiento Sub no puede utilizarse en una

expresión.

Puede llamar un procedimiento Sub mediante el nombre del procedimiento seguido

por la lista de argumentos. Vea la instrucción Call para obtener información

específica acerca de como llamar procedimientos 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

Page 40: Manual del Alumno - Instituto Wienertiempo de ejecución para VBScript. Microsoft está trabajando con varios grupos de Internet para definir el estándar de ActiveX Scripting de modo

40

Manual del Alumno

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

Instrucción Function

Declara el nombre, argumentos y código que forma el cuerpo de un procedimiento

Function.

Sintaxis : [Public | Private] Function nombre [(listadeargumentos)]

[instrucciones]

[nombre = expresión]

[Exit Function]

[instrucciones]

[nombre = expresión]

End Function

La sintaxis de la instrucción Function tiene las siguientes partes:

Parte Descripción

Public Indica que el procedimiento Function es accesible para todos los

demás procedimientos de todas las secuencias de comandos.

Private Indica que el procedimiento Function es accesible sólo para los demás

procedimientos de la secuencia de comandos donde está declarado.

nombre Nombre de Function que cumple con las convenciones estándar de

asignación de nombres de variables.

listadeargumentos Lista de variables que representa los argumentos que se pasan al

procedimiento Function cuando se llama. Múltiples variables se

separan con comas.

instrucciones Cualquier grupo de instrucciones que se va a ejecutar dentro del cuerpo

del procedimiento Function.

expresión Valor devuelto por Function.

El argumento listadeargumentos tiene la siguiente sintaxis y partes:

[ByVal | ByRef] nombredevariable[( )]

Parte Descripción

ByVal Indica que el argumento se pasa por valor.

ByRef Indica que el argumento se pasa por referencia.

nombredevariable Nombre de la variable que representa el argumento. Cumple con las

convenciones estándar de asignación de nombres de variables.

Page 41: Manual del Alumno - Instituto Wienertiempo de ejecución para VBScript. Microsoft está trabajando con varios grupos de Internet para definir el estándar de ActiveX Scripting de modo

41

Manual del Alumno

Si no se especifica explícitamente mediane Public o Private, los procedimientos

Function son públicos de manera predeterminada, es decir, son visibles a todos los

demás procedimientos de su secuencia de comandos. El valor de las variables

locales de un procedimiento Function no se mantiene entre llamadas al

procedimiento.

Todo el código ejecutable debe estar contenido en procedimientos. No se puede

definir un procedimiento Function dentro de otro procedimiento Function o Sub.

La instrucción Exit Function produce una salida inmediata desde un procedimiento

Function. La exjecución del programa continúa con la instrucción siguiente a la

instrucción que llamó al procedimiento Function. Puede aparecer cualquier número de instrucciones Exit Function en cualquier parte de un procedimiento Function.

Al igual que los procedimientos Sub, un procedimiento Function es un

procedimiento separado que puede recibir argumentos, realizar una seria de

instrucciones y cambiar los valores de sus argumentos. Sin embargo, a diferencia

de un procedimiento Sub, puede usar un procedimiento Function en la parte

derecha de una expresión de la misma forma que usa las funciones intrínsecas, como Sqr, Cos o Chr, cuando desee usar el valor devuelto por la función.

Para llamar a un procedimiento Function se usa el nombre de la función, seguido

de la lista de argumentos entre paréntesis, en una expresión. Vea la instrucción

Call para obtener información específica acerca de cómo llamar procedimientos

Function.

Precaución Los procedimientos Function pueden ser recursivos; es decir, se pueden llamar a ellos

mismos para realizar una tarea determinada. Sin embargo, la recursividad puede producir un

desbordamiento de la pila.

Para devolver un valor desde una función, asigne el valor al nombre de la función.

Puede aparecer cualquier cantidad de asignaciones de ese tipo en cualquier lugar,

dentro del procedimiento. Si no se asigna ningún valor a nombre, el procedimiento

devuelve un valor predeterminado: una función numérica devuelve 0 y una función

de cadena devuelve una cadena de longitud cero (""). Una función que devuelve

una referencia a un objeto devuelve Nothing si no se asigna ninguna referencia de objeto a nombre (mediante el uso de Set) dentro de Function.

El siguiente ejemplo muestra cómo asignar un valor devuelto a una función llamada

BusquedaBinaria. En este caso, se aigna False al nombre para indicar que no se

encontró algún valor.

Function BusquedaBinaria(. . .)

. . .

' Valor no encontrado. Devuelve un valor False.

If inferior > superior Then

BusquedaBinaria = False

Exit Function

End If

. . .

End Function

Las variables usadas en procedimientos Function pueden ser de dos categorías:

las que se declaran explícitamente dentro del procedimiento y las que no. Las

variables que se declaran explícitamente en un procedimiento (mediante el uso de

Dim o el equivalente) son siempre locales al procedimiento. Las variables que se

usan pero no se declaran explícitamente en un procedimiento también son locales a

Page 42: Manual del Alumno - Instituto Wienertiempo de ejecución para VBScript. Microsoft está trabajando con varios grupos de Internet para definir el estándar de ActiveX Scripting de modo

42

Manual del Alumno

menos que se declaren explícitamente en un nivel superior desde fuera del

procedimiento.

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.

Page 43: Manual del Alumno - Instituto Wienertiempo de ejecución para VBScript. Microsoft está trabajando con varios grupos de Internet para definir el estándar de ActiveX Scripting de modo

43

Manual del Alumno

Semana 6 : Estructuras de control.

Uso de instrucciones condicionales

Control de la ejecución del programa

YPuede controlar el flujo de su secuencia de comandos con instrucciones

condicionales e instrucciones de bucle. Utilizando instrucciones condicionales, puede

escribir código de VBScript que tome decisiones y repita acciones. Las siguientes

instrucciones condicionales están disponibles en VBScript:

Instrucción If...Then...Else

Instrucción Select Case

Toma de decisiones utilizando If ... Then ... Else

La instrucción If...Then...Else sse utiliza para evaluar si una condición es True o

False y después especificar qué instrucciones ejecutar, dependiendo del resultado.

Normalmente, la condición es una expresión que utiliza un operador de

comparación para comparar un valor o una variable con otra. Para obtener más

información acerca de los operadores de comparación, consulte Operadores de

comparación. Las instrucciones If...Then...Else se pueden anidar en tantos niveles

como necesite.

Instrucción If...Then...Else

Ejecuta de manera condicional un grupo de instrucciones, según el valor de una

expresión.

Sintaxis :

If condición Then instrucciones[Else instruccioneselse]

O puede usar la sintaxis en forma de bloque:

If condición Then

[instrucciones]

[ElseIf condición-n Then

[instruccioneselseif]] . . .

[Else

[instruccioneselse]]

End If

La sintaxis de la instrucción If...Then...Else tiene las siguientes partes:

Parte Descripción

condición Uno o más de los siguientes dos tipos de expresiones:

Una expresión numérica o expresión de cadena que se evalúa a True o

False. Si condición es Null, condición se trata como False.

Una expresión de la forma TypeOf nombredeobjeto Is tipodeobjeto.

nombredeobjeto es cualquier referencia a un objeto y tipodeobjetoes

Page 44: Manual del Alumno - Instituto Wienertiempo de ejecución para VBScript. Microsoft está trabajando con varios grupos de Internet para definir el estándar de ActiveX Scripting de modo

44

Manual del Alumno

cualquier tipo de objeto válido. La expresión es igual a True si

nombredeobjeto es el tipo de objeto especificado por tipodeobjeto; en

caso contrario es igual a False.

instrucciones Una o más instrucciones separadas por dos puntos; que se ejecuta si

condición es True.

condición-n Igual que condición.

instruccioneselseif Una o más instrucciones que se ejecutan si la condición-n asociada es

True.

instruccioneselse Una o más instrucciones que se ejecutan si ninguna expresión

condición o condición-n anterior es igual a True.

Ejecución de instrucciones si una condición es True

Si sólo necesita ejecutar una instrucción cuando una condición es True, puede

utilizar la sintaxis de linea única de la instrucción If...Then...Else. El siguiente

ejemplo muestra la sintaxis de línea única; observe que este ejemplo omite la

palabra clave Else.

Sub FechaFija()

Dim miFecha

miFecha = #12/05/95#

If miFecha < Now Then miFecha = Now

End Sub

Si desea ejecutar más de una línea de código, debe utilizar la sintaxis de múltiples

líneas (o de bloque). Esta sintaxis incluye la instrucción End If, como se muestra

en el siguiente ejemplo:

Sub AvisoUsuario(valor)

If valor = 0 Then

EtiquetaAviso.ForeColor = vbRojo

EtiquetaAviso.Font.Bold = True

EtiquetaAviso.Font.Italic = True

End If

End Sub

Ejecución de ciertas instrucciones si la condición es True y ejecución de otras si es False

Puede utilizar una instrucción If...Then...Else para definir dos bloques de

instrucciones ejecutables: un bloque que se ejecuta si la condición es True y otro

que se ejecuta si la condición es False.

Sub AvisoUsuario(valor)

If valor = 0 Then

EtiquetaAviso.ForeColor = vbRojo

EtiquetaAviso.Font.Bold = True

EtiquetaAviso.Font.Italic = True

Else

EtiquetaAviso.Forecolor = vbNegro

EtiquetaAviso.Font.Bold = False

Page 45: Manual del Alumno - Instituto Wienertiempo de ejecución para VBScript. Microsoft está trabajando con varios grupos de Internet para definir el estándar de ActiveX Scripting de modo

45

Manual del Alumno EtiquetaAviso.Font.Italic = False

End If

End Sub

Decisión entre varias alternativas

Una variación en la instrucción If...Then...Else le permite elegir entre varias

alternativas. Agregar la cláusula ElseIf amplía la funcionalidad de la instrucción

If...Then...Else para que pueda controlar el flujo del programa basándose en

diferentes posibilidades. Por ejemplo:

Sub ValorDevuelto(valor)

If valor = 0 Then

MsgBox valor

ElseIf value = 1 Then

MsgBox valor

ElseIf value = 2 then

Msgbox valor

Else

Msgbox "¡Valor fuera de límites!"

End If

Puede agregar tantas cláusulas ElseIf como necesite para proporcionar opciones

alternativas. El uso intensivo de cláusulas ElseIf frecuentemente llega a ser

voluminosos. La mejor forma de elegir entre varias alternativas es la instrucción

Select Case.

Toma de decisiones utilizando Select Case

La estructura Select Case proporciona una alternativa a la ejecución de

If...Then...ElseIf selectivamente en un bloque de instrucciones de entre múltiples

bloques de instrucciones. Una instrucción Select Case proporciona una

funcionalidad similar a la instrucción If...Then...Else, pero hace el códgio más

eficiente y legible.

Una estructura Select Case trabaja con una expresión de comprobación sencilla

que se calcula una vez, al comienzo de la estructura. Después el resultado de la

expresión se compara con los valores para cada Case. Si existe una coincidencia, se ejecuta el bloque de instrucciones asociado con ese Case:

Select Case Document.Formulario1.TipoTarjeta.Options(ÍndiceSeleccionado).Text

Case "MasterCard"

MostrarLogoMC

ValidarCuentaMC

Case "Visa"

MostrarLogoVisa

ValidarCuentaVisa

Case "American Express"

MostrarLogoAMEXCO

ValidarCuentaAMEXCO

Case Else

MostrarOtraImagen

VolverAPedir

End Select

Page 46: Manual del Alumno - Instituto Wienertiempo de ejecución para VBScript. Microsoft está trabajando con varios grupos de Internet para definir el estándar de ActiveX Scripting de modo

46

Manual del Alumno

Observe que la estructura Select Case calcula una expresión una vez al comienzo

de la estructura. Por el contrario, la estructura If...Then...ElseIf puede evaluar

una expresión diferente en cada instrucción ElseIf. Sólo puede reemplazar una

estructura If...Then...ElseIf con una estructura Select Case si cada instrucción

ElseIf calcula la misma expresión.

Instrucción Select Case

Ejecuta uno de varios grupos de instrucciones, según el valor de una expresión.

Sintaxis

Select Case expresióndecomprobación

[Case listadeexpresiones-n

[instrucciones-n]] . . .

[Case Else listadeexpresiones-n

[instruccioneselse-n]]

End Select

La sintaxis de la instrucción Select Case tiene las siguientes partes:

Parte Descripción

expresióndecomprobación Cualquier expresión numérica o expresión de cadena.

listadeexpresiones-n Requerido si aparece Case. Lista delimitada de una o más

expresiones.

instrucciones-n Una o más instrucciones que se ejecutan si

expresióndecomprobación coincide con cualquier parte de

listadeexpresiones-n.

instruccioneselse-n Una o más instrucciones ejecutadas si

expresióndecomprobación no coincide con ninguna de las

cláusulas Case.

Si expresióndecomprobación coincide con alguna expresión Case

listadeexpresiones, las instrucciones que aparecen a continuación de la cláusula

Case se ejecutan hasta la siguiente cláusula Case, o para la última cláusula, hasta

End Select. Luego, el control pasa a la instrucción que sigue a End Select. Si

expresióndecomprobación coincide con una expresión listadeexpresiones en más de

una cláusula Case, sólo se ejecutan las instrucciones que siguen a la primera

coincidencia.

La cláusula Case Else se usa para indicar que se ejecute instruccioneselse si no se

encuentra ninguna coincidencia entre expresióndecomprobación y una

listadeexpresiones en cualquier otra selección Case. Aunque no es necesario, es

una buena idea tener una instrucción Case Else en su bloque Select Case para

controlar los valores de expresióndecomprobación imprevistos. Si ningún Case

listadeexpresiones coincide con expresióndecomprobación y no hay una instrucción Case Else, la ejecución continúa en la instrucción siguiente a End Select.

Las instrucciones Select Case se pueden anidar. cada instrucción Select Case

anidada debe tener una instrucción End Select correspondiente.

El siguiente ejemplo muestra el uso de la instrucción Select Case:

Page 47: Manual del Alumno - Instituto Wienertiempo de ejecución para VBScript. Microsoft está trabajando con varios grupos de Internet para definir el estándar de ActiveX Scripting de modo

47

Manual del Alumno Dim Color, MiVar

Sub CambiarFondo (Color)

MiVar = lcase (Color)

Select Case MiVar

Case "rojo" document.bgColor = "red"

Case "verde" document.bgColor = "green"

Case "azul" document.bgColor = "blue"

Case Else MsgBox "seleccione otro color"

End Select

End Sub

Bucles mediante código Uso de bucles para repetir código

Los bucles le permiten ejecutar un grupo de instrucciones de forma repetida.

Algunos bucles repiten instrucciones hasta que una condición es False; otros

repiten instrucciones hasta que la condición es True. También hay bucles que

repiten instrucciones un número de veces específico.

En VBScript están disponibles las siguientes instrucciones de bucles:

Do...Loop: ejecuta el bucle mientras o hasta que una condición es

True

While...Wend: ejecuta el bucle mientras una condición es True

For...Next: utiliza un contador para ejecutar instrucciones un

número de veces específico

For Each...Next: Repite un grupo de instrucciones para cada

elemento de una colección o para cada elemento de una matriz.

Uso de bucles Do

Puede utilizar las instrucciones Do...Loop para ejecutar un bloque de instrucciones

un número de veces indefinido. Las instrucciones se repiten mientras una condición

es True o hasta que una condición pasa a ser True.

Instrucción Do...Loop

Repite un bloque de instrucciones mientras una condición es True o hasta que una

condición es True.

Page 48: Manual del Alumno - Instituto Wienertiempo de ejecución para VBScript. Microsoft está trabajando con varios grupos de Internet para definir el estándar de ActiveX Scripting de modo

48

Manual del Alumno

Sintaxis

Do [{While | Until} condición]

[instrucciones]

[Exit Do]

[instrucciones]

Loop

O puede usar la sintaxis:

Do

[instrucciones]

[Exit Do]

[instrucciones]

Loop [{While | Until} condición]

La sintaxis de la instrucción Do...Loop tiene las siguientes partes:

Parte Descripción

condición Expresión numérica o expresión de cadena que es True o False. Si

condición es Null, condición se trata como False.

instrucciones Una o más instrucciones que se repiten mientras o hasta que condición es

True.

Repetición de instrucciones mientras una condición es True

Utilice la palabra clave While para comprobar una condición en una instrucción

Do...Loop. Puede comprobar la condición antes de entrar en el bucle (como se

muestra en el ejemplo CompPrimerWhile a continuación) o puede comprobarla

después de que el bucle se haya ejecutado al menos una vez (como se muestra en

el ejemplo CompUltimoWhile). En el procedimiento CompPrimerWhile, si miNum se

establece a 9 en lugar de 20, las instrucciones que hay dentro del bucle nunca se

ejecutarían. En el procedimiento CompUltimoWhile, las instrucciones que hay

dentro del bucle sólo se ejecutan una vez porque la condición ya es False.

Sub CompPrimerWhile()

Dim contador, miNum

contador = 0

miNum = 20

Do While miNum > 10

miNum = miNum - 1

contador = contador + 1

Loop

MsgBox "El bucle realizó " & contador & " repeticiones."

End Sub

Sub CompUltimoWhile()

Dim contador, miNum

contador = 0

Page 49: Manual del Alumno - Instituto Wienertiempo de ejecución para VBScript. Microsoft está trabajando con varios grupos de Internet para definir el estándar de ActiveX Scripting de modo

49

Manual del Alumno miNum = 9

Do

miNum = miNum - 1

contador = contador + 1

Loop While miNum > 10

MsgBox "El bucle realizó " & contador & " repeticiones."

End Sub

Repetición de una instrucción hasta que una condición pasa a ser True

Puede utilizar la palabra clave Until de dos formas para comprobar una condición

en una instrucción Do...Loop. Puede comprobar la condición antes de entrar en el

bucle (como se muestra en el ejemplo CompPrimerUntil) o puede comprobarla

después de que el bucle se haya ejecutado al menos una vez (como se muestra en

el ejemplo CompUltimoUntil). Mientras la condición es False se ejecuta el bucle.

Sub CompPrimerUntil()

Dim contador, miNum

contador = 0

miNum = 20

Do Until miNum = 10

miNum = miNum - 1

contador = contador + 1

Loop

MsgBox "El bucle realizó " & contador & " repeticiones."

End Sub

Sub CompUltimoUntil()

Dim contador, miNum

contador = 0

miNum = 1

Do

miNum = miNum + 1

contador = contador + 1

Loop Until miNum = 10

MsgBox "El bucle realizó " & contador & " repeticiones."

End Sub

Salida de una instrucción Do ... Loop desde dentro del bucle

Puede salir de una instrucción Do ... Loop utilizando la instrucción Exit Do. Puesto

que normalmente desea salir sólo en ciertas situaciones, como evitar un bucle sin

fin, debe utilizar la instrucción Exit Do en el bloque de instrucciones True de una

instrucción If...Then...Else. Si la condición es False, el bucle se ejecuta

normalmente.

En el siguiente ejemplo, miNum se asigna a un valor que crea un bucle sin fin. La

instrucción If...Then...Else comprueba esta condición, impidiendo la repetición infinita.

Sub EjemploSalir()

Dim contador, miNum

contador = 0

miNum = 9

Page 50: Manual del Alumno - Instituto Wienertiempo de ejecución para VBScript. Microsoft está trabajando con varios grupos de Internet para definir el estándar de ActiveX Scripting de modo

50

Manual del Alumno Do Until miNum = 10

miNum = miNum - 1

contador = contador + 1

If miNum < 10 Then Exit Do

Loop

MsgBox "El bucle realizó " & contador & " repeticiones."

End Sub

Uso de While ... Wend

La instrucción While ... Wend se proporciona en VBScript para las personas que

están familiarizadas con su uso. Sin embargo, se recomienda que utilice Do ...

Loop debido a la escasa flexibilidad de la instrucción While ... Wend.

Instrucción While...Wend

Ejecuta una serie de instrucciones mientras un condición dada se evalúe como

True.

Sintaxis :

While condición

[instrucciones]

Wend

La sintaxis de la instrucción While...Wend tiene las siguientes partes:

Parte Descripción

condición expresión numérica o expresión de cadena que se evalúa como True o

False. Si condición es Null, condición se trata como False.

instrucciones Una o más instrucciones ejecutadas mientras la condición se evalúe como

True.

Si condición se evalúa como True, todas las instrucciones en instrucciones se

ejecutan hasta que se encuentre la instrucción Wend. Entonces el control vuelve a

la instrucción While y condición se comprueba de nuevo. Si condición se sigue

evaluando como True, el proceso se repite. Si no se evalúa como True, la

ejecución continua con la instrucción que sigue a la instrucción Wend.

Los bucles While...Wend se pueden anidar en cualquier nivel. Cada Wend coincide

con el While más cercano.

Uso de For ... Next

Puede utilizar las instrucciones For...Next para ejecutar un bloque de instrucciones

un número de veces específico. Para bucles, utilice una variable de tipo contador

cuyo valor aumente o disminuya con cada repetición del bucle.

Page 51: Manual del Alumno - Instituto Wienertiempo de ejecución para VBScript. Microsoft está trabajando con varios grupos de Internet para definir el estándar de ActiveX Scripting de modo

51

Manual del Alumno

Por ejemplo, el siguiente procedimiento ejecuta 50 veces un procedimiento llamado

MiProc. La instrucción For especifica la variable de tipo contador x y los valores

inicial y final de la misma. La instrucción Next aumenta la variable de tipo contador

de 1 en 1.

Sub HazMiProc50Veces()

Dim x

For x = 1 To 50

MiProc

Next

End Sub

Utilizando la palabra clave Step puede aumentar o disminuir la variable tipo

contador en el valor que especifique. En el siguiente ejemplo, la variable tipo

contador aumenta de 2 en 2 cada vez que se repite el bucle. Cuando el bucle

finaliza, total es la suma de 2, 4, 6, 8 y 10.

Sub TotalesdePares()

Dim j, total

For j = 2 To 10 Step 2

total = total + j

Next

MsgBox "El total es " & total

End Sub

Para disminuir la variable tipo contador, utilice un valor Step negativo. Cuando lo

haga, debe especificar un valor final que sea menor que el valor inicial. En el

siguiente ejemplo, la variable tipo contador miNum disminuye de 2 en 2 cada vez

que se repite el bucle. Cuando el bucle termina, total es la suma de 16, 14, 12, 10,

8, 6, 4 y 2.

Sub NuevoTotal()

Dim miNum, total

For miNum = 16 To 2 Step -2

total = total + miNum

Next

MsgBox "El total es " & total

End Sub

Puede salir de cualquier instrucción For...Next antes de que el contador alcance su

valor final utilizando la instrucción Exit For. Como normalmente desea salir sólo en

ciertas situaciones, como cuando se produce un error, debe utilizar la instrucción

Exit For en el bloque de instrucciones True de una instrucción If...Then...Else. Si

la condición es False, el bucle se ejecuta normalmente.

Instrucción For...Next Repite un grupo de instrucciones un número especificado de veces.

Sintaxis :

For contador = inicio To fin [Step paso]

[instrucciones]

[Exit For]

[instrucciones]

Next

Page 52: Manual del Alumno - Instituto Wienertiempo de ejecución para VBScript. Microsoft está trabajando con varios grupos de Internet para definir el estándar de ActiveX Scripting de modo

52

Manual del Alumno

La sintaxis de la instrucción For...Next tiene las siguientes partes:

Parte Descripción

contador Variable numérica que se usa como contador de bucle. La variable no puede

ser un elemento de una matriz o un elemento de un tipo definido por el

usuario.

inicio Valor inicial de contador.

fin Valor final de contador.

paso Cantidad que se cambia contador cada vez que se ejecuta el bucle. Si no se

especifica, el valor predeterminado de paso es uno.

instrucciones Una o más instrucciones entre For y Next que se ejecutan el número de

veces especificado.

El argumento paso puede ser positivo o negativo. El valor del argumento paso

determina el procesamiento del bucle como se indica a continuación:

Valor El bucle se ejecuta si

Positivo o 0 contador <= fin

Negativo contador >= fin

Una vez iniciado el bucle y una vez se comienzan a ejecutar todas las instrucciones

del bucle, se suma paso a contador. En este punto, las instrucciones del bucle se

vuelven a ejecutar (basado en la misma comprobación que produjo la ejecución

inicial del bucle), o se sale del bucle y continúa la ejecución con la instrucción que sigue a la instrucción Next.

Uso de For Each...Next

Un bucle For Each...Next es parecido a un bucle For...Next. En lugar de repetir

las instrucciones un número determinado de veces , un bucle For Each...Next

repite un grupo de instrucciones para cada elemento de una colección de objetos

para cada elemento de una matriz. Esto es especialmente útil si no desea conocer

cuántos elementos hay en una colección.

En el ejemplo de código HTML completo siguiente, el contenido de un objeto

Dictionary se utiliza para colocar texto en varios cuadros de texto:

<HTML>

<HEAD><TITLE>Formularios y elementos</TITLE></HEAD>

<SCRIPT LANGUAGE="VBScript">

<!--

Sub cmdCambiar_OnClick

Dim d 'Crea una variable

Set d = CreateObject("Scripting.Dictionary")

d.Add "0", "Atenas" 'Agrega algunas claves y elementos

d.Add "1", "Belgrado"

d.Add "2", "El Cairo"

For Each I in d

Page 53: Manual del Alumno - Instituto Wienertiempo de ejecución para VBScript. Microsoft está trabajando con varios grupos de Internet para definir el estándar de ActiveX Scripting de modo

53

Manual del Alumno Document.frmForm.Elements(I).Value = D.Item(I)

Next

End Sub

-->

</SCRIPT>

<BODY>

<CENTER>

<FORM NAME="frmForm"

<Input Type = "Text"><p>

<Input Type = "Text"><p>

<Input Type = "Text"><p>

<Input Type = "Text"><p>

<Input Type = "Button" NAME="cmdCambiar" VALUE="Haga clic aquí"><p>

</FORM>

</CENTER>

</BODY>

</HTML>

Instrucción For Each...Next Repite un grupo de instrucciones para cada elemento de una matriz o colección.

Sintaxis :

For Each elemento In grupo

[instrucciones]

[Exit For]

[instrucciones]

Next [elemento]

La sintaxis de la instrucción For Each...Next tiene las siguientes partes:

Parte Descripción

elemento Variable que se usa para iterar por los elementos de la colección o matriz.

Para colecciones, elemento sólo puede ser una variable Variant, una

variable Object genérica o cualquier variable de objeto de automatización

específica. Para matrices, elemento sólo puede ser una variable Variant.

grupo Nombre de una matriz o colección de objetos.

instrucciones Una o más instrucciones que se ejecutan en cada elemento de grupo.

Se entra en el bloque For Each si al menos hay un elemento en grupo. Una vez

que se ha entrado en el bucle, se ejecutan todas las instrucciones del bucle para el

primer elemento de grupo. Mientras haya más elementos en grupo, las

instrucciones del bucle se siguen ejecutando para cada elemento. Cuando no hay

más elementos en grupo, se sale del bucle y continúa la ejecución con la instrucción

que sigue a la instrucción Next.

Exit For sólo se puede usar dentro de una estructura de control For Each...Next o

For...Next para proporcionar una forma alternativa de salir. Se puede colocar

cualquier cantidad de instrucciones Exit For en cualquier parte del bucle. Exit For

se suele usar con la evaluación de algunas condiciones (por ejemplo, If...Then), y transfiere el control a la instrucción siguiente a Next.

Page 54: Manual del Alumno - Instituto Wienertiempo de ejecución para VBScript. Microsoft está trabajando con varios grupos de Internet para definir el estándar de ActiveX Scripting de modo

54

Manual del Alumno

Puede anidar bucles For Each...Next colocando un bucle For Each...Next dentro

de otro. Sin embargo, cada elemento del bucle debe ser único.

Nota Si omite elemento en una instrucción Next, la ejecución continúa como si lo hubiera incluido. Si se

encuentra una instrucción Next antes de su instrucción For correspondiente, se produce un error.

El siguiente ejemplo muestra el uso de la instrucción For Each...Next:

Function MostrarListaDeCarpetas(especificaciondecarpeta)

Dim fso, f, f1, fc, s

Set fso = CreateObject("Scripting.FileSystemObject")

Set f = fso.GetFolder(especificaciondecarpeta)

Set fc = f.Files

For Each f1 in fc

s = s & f1.name

s = s & "<BR>"

Next

MostrarListaDeCarpetas = s

End Function

Page 55: Manual del Alumno - Instituto Wienertiempo de ejecución para VBScript. Microsoft está trabajando con varios grupos de Internet para definir el estándar de ActiveX Scripting de modo

55

Manual del Alumno

Semana 7 : Cadenas y números.

Operador de Concatenación &

Se utiliza para forzar la concatenación de las cadenas de dos expresiones.

Sintaxis : resultado = expresión1 & expresión2

La sintaxis del operador & consta de las siguientes partes:

Parte Descripción

resultado Cualquier variable.

expresión1 Cualquier expresión.

expresión2 Cualquier expresión.

Si una expresión no es una cadena de caracteres, se convierte en un tipo String. Si

ambas expresiones son Null, el resultado también es Null. Sin embargo, si sólo

una expresión es Null, esa expresión se considera como una cadena de longitud

cero al concatenarse con la otra expresión. Cualquier expresión Empty se considera

también una cadena de longitud cero.

Null

Un valor que indica que una variable no contiene datos válidos. Null es el

resultado de:

Una asignación explícita de Null a una variable.

Cualquier operación entre expresiones que contienen Null.

Empty

Un valor que indica que una variable no tiene asignado ningún valor inicial.

Las variables Empty son iguales a 0 en un contexto numérico o de longitud

cero ("") en un contexto de cadena.

Operador + Se utiliza para sumar dos números.

Sintaxis : resultado = expresión1+expresión2

La sintaxis del operador + consta de estas partes:

Page 56: Manual del Alumno - Instituto Wienertiempo de ejecución para VBScript. Microsoft está trabajando con varios grupos de Internet para definir el estándar de ActiveX Scripting de modo

56

Manual del Alumno

Parte Descripción

resultado Cualquier variable numérica.

expresión1 Cualquier expresión.

expresión2 Cualquier expresión.

Cuando utilice el operador + para concatenar dos cadenas de tipo carácter, debería

utilizar el operador & para que la concatenación elimine la ambigüedad y

proporcione código de documentación propia.

Cuando utilice el operador +, no será capaz de determinar si se producirá una

suma o una concatenación de cadenas.

El subtipo base de las expresiones determina el comportamiento del operador + del

siguiente modo:

Si Entonces

Ambas expresiones son numéricas Suma.

Ambas expresiones son del tipo String Concatenación.

Una expresión es de un tipo de datos numérico y la otra de tipo String Suma.

Si una de las expresiones o ambas son expresiones de tipo Null, resultado es Null.

Si ambas expresiones son Empty, resultado es Integer. Sin embargo, sólo una de

las expresiones es Empty, se devuelve la otra sin modificaciones como resultado.

Operadores de comparación

Utilizado para comparar expresiones.

Sintaxis :

resultado = expresión1 operadorcomparación expression2

resultado = objeto1 Is objeto2

Los operadores de comparación constan de las siguientes partes:

Parte Descripción

resultado Cualquier variable numérica.

expresión Cualquier expresión.

operadorcomparación Cualquier operador de comparación.

objeto Cualquier nombre de objeto.

Page 57: Manual del Alumno - Instituto Wienertiempo de ejecución para VBScript. Microsoft está trabajando con varios grupos de Internet para definir el estándar de ActiveX Scripting de modo

57

Manual del Alumno

El operador Is tiene una funcionalidad de comparación específica que se diferencia

de los operadores en la siguiente tabla. Ésta contiene una lista de operadores de

comparación y las condiciones que determinan si resultado es True, False o Null:

Operador Descripción True si False si Null si

< Menor que expresión1 <

expresión2 expresión1 >=

expresión2 expresión1 o

expresión2 = Null

<= Menor o igual

que expresión1 <=

expresión2 expresión1 >

expresión2 expresión1 o

expresión2 = Null

> Mayor que expresión1 >

expresión2 expresión1 <=

expresión2 expresión1 o

expresión2 = Null

>= Mayor o igual

que expresión1 >=

expresión2 expresión1 <

expresión2 expresión1 o

expresión2 = Null

= Igual a expresión1 =

expresión2 expresión1 <>

expresión2 expresión1 o

expresión2 = Null

<> Distinto de expresión1 <>

expresión2 expresión1 =

expresión2 expresión1 o

expresión2 = Null

Cuando compara dos expresiones, puede no ser capaz de determinar fácilmente si

las expresiones se están comparando como números o como cadenas.

La siguiente tabla muestra cómo se comparan las expresiones o qué resulta de la

comparación, dependiendo del subtipo base:

Si entonces

Las dos expresiones son

numéricas Realiza una comparación numérica.

Las dos expresiones son

cadenas Realiza una comparación de cadena.

Una expresión es numérica y la

otra es una cadena La expresión numérica es menor que la expresión de

cadena.

Una expresión es Empty y la

otra es numérica Ejecuta una comparación numérica, utilizando 0 para la

expresión Empty.

Una expresión es Empty y la

otra es una cadena Ejecuta una comparación de cadena, utilizando una

cadena de longitud cero para la expresión Empty.

Las dos expresiones son

Empty Las expresiones son iguales.

Page 58: Manual del Alumno - Instituto Wienertiempo de ejecución para VBScript. Microsoft está trabajando con varios grupos de Internet para definir el estándar de ActiveX Scripting de modo

58

Manual del Alumno

Función InStr

Devuelve la posición de la primera coincidencia de una cadena dentro de otra.

Sintaxis : InStr([inicio, ]cadena1, cadena2[, comparación])

La sintaxis de la función InStr tiene los siguientes argumentos:

Parte Descripción

inicio Opcional. Expresión numéricaque establece la posición inicial para cada

búsqueda. Si se omite, la búsqueda comienza en la posición del primer

carácter. Si inicio contiene Null, se produce un erro. El argumento inicio se

requiere si se especifica comparación.

cadena1 Requerido. Expresión de cadena en la que se busca.

cadena2 Requerido. Expresión de cadena buscada.

comparación Opcional. Valor numérico que indica el tipo de comparación que se va a

usar al evaluar subcadenas. Consulte la sección Valores para saber cuáles

son los valores permitidos. Si se omite, se realiza una comparación binaria.

Valores El argumento comparación puede tener los siguientes valores:

Constante Valor Descripción

vbBinaryCompare 0 Realiza una comparación binaria.

vbTextCompare 1 Realiza una comparación de texto.

Valores devueltos La función InStr devuelve los siguientes valores:

Si InStr devuelve

cadena1 es de longitud cero 0

cadena1 es Null Null

cadena2 es de longitud cero inicio

cadena2 es Null Null

cadena2 no se encuentra 0

cadena2 se encuentra dentro de cadena1 Posición en la que se encuentra la coincidencia

inicio > Len(cadena2) 0

Función IsNumeric

Devuelve un valor de tipo Boolean que indica si una expresión se puede evaluar

como un número.

Page 59: Manual del Alumno - Instituto Wienertiempo de ejecución para VBScript. Microsoft está trabajando con varios grupos de Internet para definir el estándar de ActiveX Scripting de modo

59

Manual del Alumno

Sintaxis : IsNumeric(expresión)

El argumento expresión puede ser cualquier expresión.

IsNumeric devuelve True si toda la expresión se reconoce como un número. De lo

contrario, devuelve False. IsNumeric devuelve False si expresión es una

expresión de fecha.

El siguiente ejemplo usa la función IsNumeric para determinar si una variable se

puede evaluar como un número:

Dim MiVar, MiComprobacion

MiVar = 53 ' Asigna un valor.

MiComprobacion = IsNumeric(MiVar) ' Devuelve True.

MiVar = "459.95" ' Asigna un valor.

MiComprobacion = IsNumeric(MiVar) ' Devuelve True.

MiVar = "45 Help" ' Asigna un valor.

MiComprobacion = IsNumeric(MiVar) ' Devuelve False.

Formateo de Números

Función FormatNumber

Devuelve una expresión con formato de número.

Sintaxis :

FormatNumber(Expresión [,NúmDígitosDespuésDeDecimal

[,IncluirDígitoInicio [,UsarParéntesisParaNúmerosNegativos

[,GrupoDígitos]]]])

La sintaxis de la función FormatNumber tiene las siguientes partes:

Parte Descripción

Expresión Requerido. Expresión a la que se va a aplicar

formato.

NúmDígitosDespuésDeDecimal Opcional. Valor numérico que indica cúantos

lugares se muestran a la derecha del decimal. El

valor predeterminado es -1, que indica que se usa

la configuración regional del equipo.

IncluirDígitoInicio Opcional. Constante de tres estados que indica si

se debe mostrar o no un cero inicial para valores

fraccionarios. Consulte la sección Valores para

saber cuáles son los valores permitidos.

Page 60: Manual del Alumno - Instituto Wienertiempo de ejecución para VBScript. Microsoft está trabajando con varios grupos de Internet para definir el estándar de ActiveX Scripting de modo

60

Manual del Alumno

UsarParéntesisParaNúmerosNegativos Opcional. Constante de tres estados que indica si

se deben encerrar o no los valores negativos entre

paréntesis. Consulte la sección Valores para saber

cuáles son los valores permitidos.

GrupoDígitos Opcional. Constante de tres estados que indica si

se deben agrupar o no los números con el

delimitador de grupos especificado en el Panel de

control. Consulte la sección Valores para saber

cuáles son los valores permitidos.

Valores

Los argumentos IncluirDígitoInicio, UsarParéntesisParaNúmerosNegativos y

GrupoDígitos tienen los siguientes valores:

Constante Valor Descripción

TristateTrue -1 True

TristateFalse 0 False

TristateUseDefault -2 Usa la configuración regional del equipo.

Cuando se omiten uno o más de los argumentos opcionales, los valores de los

argumentos omitidos los proporciona la configuración regional del equipo.

Nota Toda la información de configuración y valores se obtiene de la ficha Número de Configuración

regional.

El siguiente ejemplo usa la función FormatNumber para dar formato a un número

para que tenga cuatro lugares decimales:

Function EjemploDeFormatNumber

Dim MiAngulo, MiSecante, MiNumero

MiAngulo = 1.3 ' Define un ángulo en radianes.

MiSecante = 1 / Cos(MiAngulo) ' Calcula la secante.

EjemploDeFormatNumber = FormatNumber(MiSecante,4) ' Da formato a MiSecante para que

tenga cuatro lugares decimales.

End Function

Función FormatCurrency

Devuelve una expresión con formato como una valor de moneda, que usa el

símbolo de moneda definido en el panel de control del sistema.

Page 61: Manual del Alumno - Instituto Wienertiempo de ejecución para VBScript. Microsoft está trabajando con varios grupos de Internet para definir el estándar de ActiveX Scripting de modo

61

Manual del Alumno

Sintaxis :

FormatCurrency(Expresión[,NúmDígitosDespuésDeDecimal

[,IncluirDígitoInicio [,UsarParéntesisParaNúmerosNegativos

[,GrupoDígitos]]]])

La sintaxis de la función FormatCurrency tiene las siguientes partes:

Parte Descripción

Expresión Requerido. Expresión a la que se va a aplicar el

formato.

NúmDígitosDespuésDeDecimal Opcional. Valor numérico que indica cúantos

lugares se muestran a la derecha del decimal. El

valor predeterminado es -1, que indica que se usa

la configuración regional del equipo.

IncluirDígitoInicio Opcional. Constante de tres estados que indica si

se debe mostrar o no un cero inicial para valores

fraccionarios. Consulte la sección Valores para

saber cuáles son los valores permitidos.

UsarParéntesisParaNúmerosNegativos Opcional. Constante de tres estados que indica si

se deben encerrar o no los valores negativos entre

paréntesis. Consulte la sección Valores para saber

cuáles son los valores permitidos.

GrupoDígitos Opcional. Constante de tres estados que indica si

se deben agrupar o no los números con el

delimitador de grupos especificado en la

configuración regional del equipo. Consulte la

sección Valores para saber cuáles son los valores

permitidos.

Valores

Los argumentos IncluirDígitoInicio, UsarParéntesisParaNúmerosNegativos y

GrupoDígitos tienen los siguientes valores:

Constante Valor Descripción

TristateTrue -1 True

TristateFalse 0 False

TristateUseDefault -2 Usa la configuración regional del equipo.

Cuando se omiten uno o más argumentos opcionales, los valores de los argumentos

omitidos los proporciona la configuración regional del equipo. La posición del signo

Page 62: Manual del Alumno - Instituto Wienertiempo de ejecución para VBScript. Microsoft está trabajando con varios grupos de Internet para definir el estándar de ActiveX Scripting de modo

62

Manual del Alumno

de moneda relativa al valor de moneda se determina con la configuración regional

del sistema.

Nota Toda la información de configuración se obtiene de la ficha Moneda de Configuración regional,

excepto el cero inicial que se obtiene de la ficha Número.

El siguiente ejemplo usa la función FormatCurrency para dar formato de moneda

a la expresión y asignarlo a MiMoneda:

Dim MiMoneda

MiMoneda = FormatCurrency(1000) 'MiMoneda contiene $1000.00

Función FormatPercent

Devuelve una expresión con formato de porcentaje (multiplicada por 100) con una

carácter % inicial.

Sintaxis :

FormatPercent(Expresión[,NúmDígitosDespuésDeDecimal

[,IncluirDígitoInicio [,UsarParéntesisParaNúmerosNegativos

[,GrupoDígitos]]]])

La sintaxis de la función FormatPercent tiene las siguientes partes:

Parte Descripción

Expresión Requerido. Expresión a la que se va a aplicar

formato.

NúmDígitosDespuésDeDecimal Opcional. Valor numérico que indica cúantos

lugares se muestran a la derecha del decimal. El

valor predeterminado es -1, que indica que se usa

la configuración regional del equipo.

IncluirDígitoInicio Opcional. Constante de tres estados que indica si

se debe mostrar o no un cero inicial para valores

fraccionarios. Consulte la sección Valores para

saber cuáles son los valores permitidos.

UsarParéntesisParaNúmerosNegativos Opcional. Constante de tres estados que indica si

se deben encerrar o no los valores negativos entre

paréntesis. Consulte la sección Valores para saber

cuáles son los valores permitidos.

GrupoDígitos Opcional. Constante de tres estados que indica si

se deben agrupar o no los números con el

delimitador de grupos especificado en el Panel de

control. Consulte la sección Valores para saber

cuáles son los valores permitidos.

Page 63: Manual del Alumno - Instituto Wienertiempo de ejecución para VBScript. Microsoft está trabajando con varios grupos de Internet para definir el estándar de ActiveX Scripting de modo

63

Manual del Alumno

Valores

Los argumentos IncluirDígitoInicio, UsarParéntesisParaNúmerosNegativos y

GrupoDígitos tienen los siguientes valores:

Constante Valor Descripción

TristateTrue -1 True

TristateFalse 0 False

TristateUseDefault -2 Usa la configuración regional del equipo.

Cuando se omiten uno o más argumentos opcionales, los valores de los argumentos

omitidos los proporciona la configuración regional del sistema.

Nota Toda la información de configuración y valores se obtiene de la ficha Número de Configuración

regional.

El siguiente ejemplo usa la función FormatPercent para dar formato a una

expresión como porcentaje:

Dim MiPorcentaje

MiPorcentaje = FormatPercent(2/32) 'MiPorcentaje contiene 6.25%

InputBoxes y Message Box

Función InputBox Muestra una solicitud en un cuadro de diálogo, espera a que el usuario escriba

texto o haga clic en un botón y devuelve el contenido del cuadro de texto.

Sintaxis : InputBox(solicitud[, título][, predeterminado][, posx][,

posy][, archivodeayuda, contexto])

La sintaxis de la función InputBox tiene los siguientes argumentos:

Parte Descripción

solicitud Expresión de cadena mostrada como mensaje en el cuadro de diálogo. La

longitud máxima de solicitud es, aproximadamente, 1024 caracteres,

dependiendo del ancho de los caracteres usados. Si solicitud consta de

más de una línea, puede separar las líneas con un carácter de retorno de

carro (Chr(13)), un carácter de avance de línea (Chr(10)) o la

combinación de retorno de carro y avance de línea (Chr(13) & Chr(10))

entre cada línea.

título Expresión de cadena que se muestra en la barra de título del cuadro de

diálogo. Si omite título, el nombre de la aplicación se muestra en la barra

de título.

predeterminado Expresión de cadena en el cuadro de texto que aparece como respuesta

Page 64: Manual del Alumno - Instituto Wienertiempo de ejecución para VBScript. Microsoft está trabajando con varios grupos de Internet para definir el estándar de ActiveX Scripting de modo

64

Manual del Alumno

predeterminada si no se proporciona ningún otro texto. Si omite

predeterminado, el cuadro de texto se muestra vacío.

posx Expresión numérica que especifica, en twips, la distancia horizontal

desde el borde izquierdo del cuadro de diálogo hasta el borde izquierdo

de la pantalla. Si se omite posx, el cuadro de diálogo se centra

horizontalmente.

posy Expresión numérica que especifica, en twips, la distancia vertical desde

el borde superior del cuadro de diálogo hasta el borde superior de la

pantalla. Si se omite posy, el cuadro de diálogo se centra verticalmente,

aproximadamente a la altura de un tercio de la pantalla.

archivodeayuda Expresión de cadena que identifica el archivo de Ayuda que se va a usar

para proporcionar Ayuda contextual para el cuadro de diálogo. Si se

proporciona archivodeayuda, también se debe proporcionar contexto.

contexto Expresión numérica que identifica el número de contexto de Ayuda

asignado por el creador de la Ayuda al tema de Ayuda adecuado. Si se

proporciona contexto, también se debe proporcionar archivodeayuda.

Función MsgBox

Muestra un mensaje en un cuadro de diálogo, espera a que el usuario haga clic en

un botón y devuelve un valor que indica en qué botón hizo clic el usuario.

Sintaxis : MsgBox(solicitud[, botones][, título][, archivodeayuda,

contexto])

La sintaxis de la función MsgBox tiene los siguientes argumentos:

Parte Descripción

solicitud Expresión de cadena que se muestra como mensaje en el cuadro de

diálogo. La longitud máxima de solicitud es aproximadamente igual a

1024 caracteres, según el ancho de los caracteres usados. Si solicitud

consta de más de una línea, puede seperar las líneas con un carácter de

retorno de carro (Chr(13)), un carácter de avance de línea (Chr(10)) o la

combinación de caracteres de retorno de carro y avance de línea

(Chr(13) y Chr(10)) entre cada línea.

botones Expresión numérica que es igual a la suma de los valores que especifican

la cantidad y el tipo de botones que se van a mostrar, el estilo de icono

que se va a usar, la identidad del botón predeterminado y el modo de

cuadro de diálogo. Consulte la sección Valores para saber cuáles son los

valores permitidos. Si se omite, el valor predeterminado de botones es 0.

título Expresión de cadena que se muestra en la barra de título del cuadro de

diálogo. Si omite título, el nombre de la aplicación aparece en la barra de

título.

archivodeayuda Expresión de cadena que identifica el archivo de Ayuda que se va a usar

para proporcionar Ayuda contextual para el cuadro de diálogo. Si se

proporciona archivodeayuda, también se debe proporcionar contexto. No

está disponible en plataformas de 16 bits.

contexto Expresión numérica que identifica el número de contexto de Ayuda

asignado por el creador de la Ayuda al tema de Ayuda adecuado. Si se

proporciona contexto, también se debe proporcionar archivodeayuda. No

está disponible en plataformas de 16 bits.

Page 65: Manual del Alumno - Instituto Wienertiempo de ejecución para VBScript. Microsoft está trabajando con varios grupos de Internet para definir el estándar de ActiveX Scripting de modo

65

Manual del Alumno

Valores

Los valores del argumento botones son:

Constante Valor Descripción

vbOKOnly 0 Sólo muestra el botón Aceptar.

vbOKCancel 1 Muestra los botones Aceptar y Cancelar.

vbAbortRetryIgnore 2 Muestra los botones Anular, Reintentar e Ignorar.

vbYesNoCancel 3 muestra los botones Sí, No y Cancelar.

vbYesNo 4 Muestra los botones Sí y No.

vbRetryCancel 5 Muestra los botones Reintentar y Cancelar.

vbCritical 16 Muestra el icono de mensaje crítico.

vbQuestion 32 Muestra el icono de consulta de advertencia.

vbExclamation 48 Muestra el icono de mensaje de advertencia.

vbInformation 64 Muestra el icono de mensaje de información.

vbDefaultButton1 0 El primer botón es el botón predeterminado.

vbDefaultButton2 256 El segundo botón es el botón predeterminado.

vbDefaultButton3 512 El tercer botón es el botón predeterminado.

vbDefaultButton4 768 El cuarto botón es el botón predeterminado.

vbApplicationModal 0 Aplicación modal; el usuario debe responder al cuadro de

mensaje antes de seguir trabajando en la aplicación actual.

vbSystemModal 4096 Sistema modal; todas las aplicaciones se suspenden hasta

que el usuario responde al cuadro de mensaje.

El primer grupo de valores (0 a 5) describe el número y el tipo de botones

mostrados en el cuadro de diálogo; el segundo grupo (16, 32, 48, 64) describe el

estilo de iconos; el tercer grupo (0, 256, 512, 768) determina cuál es el botón

predeterminado y el cuarto grupo (0, 4096) determina el modo del cuadro de

mensaje. Al sumar números para crear un valor final para el argumento botones, use sólo un número de cada grupo.

Valores devueltos La función MsgBox devuelve los siguientes valores:

Constante Valor Botón

vbOK 1 Aceptar

vbCancel 2 Cancelar

vbAbort 3 Anular

vbRetry 4 Reintentar

vbIgnore 5 Ignorar

vbYes 6 Sí

vbNo 7 No

Page 66: Manual del Alumno - Instituto Wienertiempo de ejecución para VBScript. Microsoft está trabajando con varios grupos de Internet para definir el estándar de ActiveX Scripting de modo

66

Manual del Alumno

Cuando se proporcionan archivodeayuda y contexto, el usuario puede presionar F1

para ver el tema de Ayuda que corresponde al contexto.

Si el cuadro de diálog muestra un botón Cancelar, si presiona la tecla ESC tiene el

mismo efecto que si hace clic en Cancelar. Si el cuadro de diálogo contiene un

botón Ayuda, se proporcionar Ayuda contextual para el cuadro de diálogo. Sin

embargo, no se devuelve ningún valor hasta que no se presiona cualquiera de los otros botones.

El siguiente ejemplo usa la función MsgBox para mostrar un cuadro de mensaje y

devolver un valor que describe qué botón se presionó:

Dim MiVar

MiVar = MsgBox ("Hola mundo", 65, "Ejemplo de MsgBox") '

MiVar contiene 1 o 2 según el botón en el que se haga clic.

Page 67: Manual del Alumno - Instituto Wienertiempo de ejecución para VBScript. Microsoft está trabajando con varios grupos de Internet para definir el estándar de ActiveX Scripting de modo

67

Manual del Alumno

Semana 8 : Fecha / hora y Controladores de Eventos.

Función Date

Devuelve la fecha actual del sistema.

Sintaxis : Date

El siguiente ejemplo usa la función Date para devolver la fecha actual del sistema:

Dim MiFecha

MiFecha = Date ' MiFecha contiene la fecha actual del

sistema.

Función DateAdd Devuelve una fecha a la que se agregó un intervalo de tiempo especificado.

Sintaxis : DateAdd(intervalo, número, fecha)

La sintaxis de la función DateAdd tiene las siguientes partes:

Parte Descripción

intervalo Requerido. Expresión de cadena que es el intervalo que desea agregar. Consulte

la sección Valores para saber cuáles son los valores permitidos.

número Requerido. Expresión numérica que es el número de intervalo que desea

agregar. La expresión numérica puede ser positiva, para fechas futuras, o

negativas, para fechas pasadas.

fecha Requerido. Variant o literal que representa la fecha a la que se agrega intervalo.

Valores :

El argumento intervalo puede tener los siguientes valores:

Valor Descripción

yyyy Año

q Trimestre

m Mes

y Día del año

d Día

w Día de la

semana

ww Semana del

año

h Hora

n Minuto

s Segundo

Puede usar la función DateAdd para sumar o restar un intervalo de tiempo

especificado a una fecha. Por ejemplo, puede usar DateAdd para calcular una

fecha 30 días a partir de hoy o una hora 45 minutos desde ahora. Para agregar días

a fecha, puede usar Día del año ("y"), Día ("d") o Día de la semana ("w").

Page 68: Manual del Alumno - Instituto Wienertiempo de ejecución para VBScript. Microsoft está trabajando con varios grupos de Internet para definir el estándar de ActiveX Scripting de modo

Instituto Superior Tecnológico 68

Norbert Wiener Manual del Alumno

La función DateAdd no devolverá una fecha no válida. El siguiente ejemplo suma

un mes al 31 de enero:

Nuevafecha = DateAdd("m", 1, "31-Ene-95")

En este caso, DateAdd devuelve 28-Feb-95, no 31-Feb-95. Si fecha es 31-Ene-96,

devuelve 29-Feb-96 porque 1996 es un año bisiesto.

Si la fecha calculada es anterior al año 100, se produce un error.

Si el número no es un valor de tipo Long, se redondea al número entero más

cercano antes de evaluarlo.

Función DateDiff Devuelve el número de intervalos entre dos fechas.

Sintaxis : DateDiff(intervalo, fecha1, fecha2 [,primerdíasemana[,

primerasemanaaño]])

La sintaxis de la función DateDiff tiene las siguientes partes:

Parte Descripción

intervalo Requerido. Expresión de cadena que es el intervalo que desea usar

para calcular las diferencias entre fecha1 y fecha2. Consulte la

sección Valores para saber cuáles son los valores permitidos.

fecha1, fecha2 Requerido. Expresiones de fecha. Dos fechas que desea usar en el

cálculo.

primerdíasemana Opcional. Constante que especifica el día de la semana. Si no se

especifica, se asume Domingo. Consulte la sección Valores para saber

cuáles son los valores permitidos.

primerasemanaaño Opcional. Constante que especifica la primera semana del año. Si no

se especifica, se asume que la primera semana es la semana del 1 de

enero. Consulte la sección Valores para saber cuáles son los valores

permitidos.

Valores

El argumento intervalo puede tener los siguientes valores:

Valor Descripción

yyyy Año

q Trimestre

m Mes

y Día del año

d Día

w Día de la semana

ww Semana del año

h Hora

n Minuto

s Segundos

Page 69: Manual del Alumno - Instituto Wienertiempo de ejecución para VBScript. Microsoft está trabajando con varios grupos de Internet para definir el estándar de ActiveX Scripting de modo

Instituto Superior Tecnológico 69

Norbert Wiener Manual del Alumno

El argumento primerdíasemana puede tener los siguientes valores:

Constante Valor Descripción

vbUseSystem 0 Usar la configuración de API NLS.

vbSunday 1 Domingo (predeterminado)

vbMonday 2 Lunes

vbTuesday 3 Martes

vbWednesday 4 Miércoles

vbThursday 5 Jueves

vbFriday 6 Viernes

vbSaturday 7 Sábado

El argumento primerasemanaaño puede tener los siguientes valores:

Constante Valor Descripción

vbUseSystem 0 Usar configuración de API NLS.

vbFirstJan1 1 Comienza con la semana del 1 de enero(predeterminado).

vbFirstFourDays 2 Comienza con la semana que tiene al menos cuatro días en el

nuevo año.

vbFirstFullWeek 3 Comienza con la primera semana completa del nuevo año.

Función Day

Devuelve un número entero entre 1 y 31, ambos incluidos, que representa el día

del mes.

Sintaxis : Day(fecha)

El argumento fecha es cualquier expresión que puede representar una fecha. Si

fecha contiene Null, se devuelve Null.

El siguiente ejemplo usa la función Day para obtener el día del mes a partir de una

fecha especificada:

Dim MiDia

MiDia = Day("19 de octubre de 1962") 'MiDia contiene 19.

Función Time Devuelve un valor Variant del subtipo Date que indica la hora actual del sistema.

Sintaxis : Time

El siguiente ejemplo usa la función Time para devolver la hora actual del sistema:

Dim MiHoraCompleta

MiHoraCompleta = Time ' Devuelve la hora actual del

sistema.

Page 70: Manual del Alumno - Instituto Wienertiempo de ejecución para VBScript. Microsoft está trabajando con varios grupos de Internet para definir el estándar de ActiveX Scripting de modo

Instituto Superior Tecnológico 70

Norbert Wiener Manual del Alumno

Función TimeSerial Devuelve un valor Variant del subtipo Date que contiene la hora para una hora,

minuto y segundo específicos.

Sintaxis : TimeSerial(hora, minuto, segundo)

La sintaxis de la función TimeSerial tiene los siguientes argumentos:

Parte Descripción

hora Número entre 0 (12:00 a.m.) y 23 (11:00 p.m.), ambos inluidos, o una expresión

numérica.

minuto Cualquier expresión numérica.

segundo Cualquier expresión numérica.

Para especificar una hora, como 11:59:59, el intervalo de números para cada

argumento TimeSerial debería estar dentro del intervalo aceptado para la unidad;

es decir, entre 0 y 23 para las horas y entre 0 y 59 para los minutos y segundos.

Sin embargo, también puede especificar horas ralativas para cada argumento,

mediante el uso de cualquier expresión numérica que represente algún número de

horas, minutos o segundos antes o después de una hora determinada.

Los siguientes ejemplos usan expresiones en lugar de números de hora absolutos.

La función TimeSerial devuelve una hora para 15 minutos antes (-15) de seis

horas antes del mediodía (12 - 6) o 5:45:00 a.m.

TimeSerial(12 - 6, -15, 0)

Cuando cualquier argumento excede el intervalo aceptado para ese argumento, se

incrementa hasta la siguiente unidad mayor según sea adecuado. Por ejemplo, si

especifica 75 minutos, se evalúa como una hora y 15 minutos. Sin embargo, si

cualquier argumento está fuera del intervalo entre -32768 y 32767 o si la hora

especificada por los tres argumentos, directamente o a través de una expresión,

hace que la fecha exceda el intervalo de fechas permitido, se produce un error.

Función TimeValue

Devuelve un valor Variant del subtipo Date containing the time.

Sintaxis : TimeValue(hora) Normalmente, el argumento hora es una expresión de cadena que representa una

hora desde 0:00:00 (12:00:00 a.m.) hasta 23:59:59 (11:59:59 p.m.), ambas

incluidas. Sin embargo, hora también puede ser cualquier expresión que represente

una hora en ese intervalo. Si hora contiene Null, se devuelve Null.

Tipos de eventos Aquí se listan los principales eventos que se pueden asociar a una imagen,

hipervínculo, cadena de texto, etc. A continuación aparecen agrupados según

donde se originen (ratón teclado, etc). Estos eventos son los mas usados. Existen

otros, pero no siempre funcionan bien con los dos navegadores, y además son bastantes exóticos, académicos y de uso poco práctico. No los veremos aquí.

Eventos de ratón

ONCLICK Se activa con un botón del ratón.

ONDBLCLICK Se activa si se hace un doble click.

Page 71: Manual del Alumno - Instituto Wienertiempo de ejecución para VBScript. Microsoft está trabajando con varios grupos de Internet para definir el estándar de ActiveX Scripting de modo

Instituto Superior Tecnológico 71

Norbert Wiener Manual del Alumno

ONMOUSEDOWN Se activa si se pulsa el botón izquierdo del mouse.

ONMOUSEMOVE Se activa si se mueve el mouse.

ONMOUSEOVER Se activa cuando el puntero se sitúa sobre el objeto que incluye

al evento.

ONMOUSEOUT Se activa cuando el puntero sale del objeto que incluye al evento.

ONMOUSEUP Se activa si se suelta un botón pulsado en el mouse (es contrario

a ONCLICK).

ONDRAGSTART Se activa cuando se inicia un arrastre.

ONSELECTSTART Se activa cuando se inicia una selección con el ratón.

ONSELECT Se activa cuando se ha realizado una selección con el ratón.

Eventos de teclado

ONKEYDOWN Se activa si se pulsa una tecla cualquiera.

ONKEYPRESS Se activa si se pulsa y suelta una tecla.

ONKEYUP Se activa cuando se suelta una tecla pulsada.

ONHELP Se activa si se pulsa la tecla de ayuda (normalmente F1).

Eventos de enfoque

ONFOCUS Se activa cuando se entra en el ámbito de un elemento al que está

asociado el evento.

ONBLUR Se activa al abandonar el ámbito del elemento al que está asociado.

Eventos de formulario

ONRESET Se activa al pulsar un botón de reset de un formulario.

ONSUBMIT Se activa al enviar un formulario.

Eventos de carga de página

ONABORT Se activa cuando se aborta la carga de la página.

ONERROR Se activa cuando se produce un error inesperado durante la

carga de la página.

ONLOAD Se activa cuando se carga la página.

ONUNLOAD Se activa cuando el usuario descarga la página (es decir, carga

otra o pretende salir del navegador).

ONAFTERUPDATE Se activa si se actualiza o recarga la página.

Semana 9 : Modelo de Objetos del Documento.

Page 72: Manual del Alumno - Instituto Wienertiempo de ejecución para VBScript. Microsoft está trabajando con varios grupos de Internet para definir el estándar de ActiveX Scripting de modo

Instituto Superior Tecnológico 72

Norbert Wiener Manual del Alumno

Modelo de Objetos

En éste apéndice vamos a listar los objetos de que disponemos en VBScript, así

como sus distintas propiedades, métodos y eventos. Este apéndice está dedicado a

los objetos en el lado del Cliente. En el lado del servidor, la lista se amplía

bastante. Como hemos comentado, este manual está orientado a VBScript en el

lado del Cliente. Sin embargo, he incluido una breve introducción a la tecnología

ASP en el mismo. Bien. Empecemos asegurando posiciones. Vamos a puntualizar

cuatro conceptos cuya comprensión es vital para entender el funcionamiento de la POO y la jerarquía de objetos.

OBJETO: Es cada una de los elementos que se gestionan en una página web o

en cualquier aplicación informática que tienen una identidad propia. Un objeto

podría ser la ventana de navegación, o el documento activo, o un campo de un

formulario, o una tabla, etc. La lista de los objetos que podemos manejar en

VBScript de Cliente se incluyen en este Apéndice.

PROPIEDAD: Es cada una de las características de un objeto. Una propiedad

sería el color de fondo de una tabla, la barra de estado de la ventana de

navegación, etc. También llamamos propiedad a un objeto derivado de otro. Se dice que el objeto derivado es propiedad del objeto padre.

METODO: Es una operación que se puede realizar dentro de un objeto. Por

ejemplo. Cerrar una ventana sería un método del objeto ventana. Poner el foco en

un campo de formulario sería un método del objeto que representa a ese campo en concreto.

EVENTO: Un evento es la previsión de que el usuario realice una determinada

acción. En realidad el usuario puede realizar la acción o no realizarla, pero se deja

prevista en la programación la posibilidad de que la realice. De esta forma, si la

realiza sucederá algo (lo que hayamos programado) como respuesta a esa acción.

Un evento sería pasar el ratón sobre una imagen determinada, hacer clic en una

parte de la pantalla, pulsar una tecla, etc. También existe la posibilidad de prever

eventos del sistema. Un evento de sistema es, por ejemplo, la carga de una página,

o un error en un proceso. Resumiendo: un evento se dispara cuando ocurre la

acción prevista por el mismo. Supongamos el siguiente código. Utiliza el evento

ONMOUSEOVER, asociado al hiperenlace. Cuando el usuario va a pulsar el enlace y

coloca el puntero del ratón sobre el mismo, se dispara el evento, que llama a la

función mensaje(). Esta genera un cuadro de aviso en la pantalla y obliga al usuario a pulsar el botón Aceptar. Con lo que nunca podrá usar el enlace.

Evento onMouseOver

<HTML>

<HEAD>

<TITLE>Prueba de evento ONMOUSEOVER</TITLE>

<SCRIPT LANGUAGE = "VBScript">

FUNCTION mensaje()

MSGBOX ("Nunca podrás pulsarlo")

END FUNCTION

</SCRIPT>

</HEAD>

<BODY>

Page 73: Manual del Alumno - Instituto Wienertiempo de ejecución para VBScript. Microsoft está trabajando con varios grupos de Internet para definir el estándar de ActiveX Scripting de modo

Instituto Superior Tecnológico 73

Norbert Wiener Manual del Alumno <H1>

Intenta pulsar el enlace... <BR>

si puedes.

</H1>

<A HREF = "http://www.gratisweb.com/infomegacine" ONMOUSEOVER =

"mensaje()">

Acceder a la página de Latinmail

</A>

</BODY>

</HTML>

Para referirse a una propiedad o un método de un objeto usamos una notación de

puntos. Así:

OBJETO.PROPIEDAD

O bien:

OBJETO.METODO()

Observa que el método lleva unos paréntesis y la propiedad no. Esto es así porque,

en definitiva, los métodos son casos particulares de funciones, asociadas a objetos.

Y, como cabría esperar, algunos métodos reciben argumentos y otros no. Bien. Veamos la lista de objetos de VBScript de Cliente.

Veamos otro ejemplo, para afianzar conceptos:

VBScript en el navegador <HTML>

<HEAD>

<TITLE>Otra prueba de POO</TITLE>

</HEAD>

<BODY>

<A HREF = "http://www.gratisweb.com/infomegacine" ONMOUSEOVER

= "window.status = 'El mejor site de cine';return true">

Pulsa aquí para ver infomegacine

</A>

</BODY>

</HTML>

Aquí podemos ver varias cosas que van mas allá de todo lo estudiado hasta ahora.

En primer lugar vamos a aclarar lo que hace el código. Muestra un hiperenlace y,

cuando el usuario pasa el ratón por encima, muestra un mensaje en la barra de

estado, que ya permanece ahí. Bien. Analicemos el código para ver como funciona.

Realmente toda la gracia está en esta línea:

<A HREF = "http://www.gratisweb.com/infomegacine" ONMOUSEOVER

="window.status = 'El mejor site de cine';return true">

La primera parte es un hiperenlace normal de HTML sin mas. Lo primero que nos

interesa ahora es la palabra ONMOUSEOVER, que indica al navegador que detecte

la presencia del cursor del ratón sobre el texto que constituye el hiperenlace.

ONMOUSEOVER es el evento que queremos detectar. A la derecha el signo igual

aparece la acción que queremos desencadenar si se produce el evento especificado.

Esta acción aparece entre comillas dobles. En concreto se trata de establecer un

valor para la propiedad status del objeto window; es decir, el contenido de la barra

de estado de la ventana de navegación. En este caso hemos programado que

aparezca en la barra de estado una cadena literal (el mejor site de cine). Fíjate que

la cadena de texto aparece encerrada entre comillas simples. A continuación

aparece un signo de punto y coma y la instrucción return true. Esta última sirve, en

este caso, para que el cambio de la barra de estado se produzca de forma

inmediata. De no usarla, al poner el ratón sobre el enlace veremos la dirección de

la página especificada y, solo al quitar el ratón, veremos el mensaje que habíamos

Page 74: Manual del Alumno - Instituto Wienertiempo de ejecución para VBScript. Microsoft está trabajando con varios grupos de Internet para definir el estándar de ActiveX Scripting de modo

Instituto Superior Tecnológico 74

Norbert Wiener Manual del Alumno

programado. Evidentemente ésto último no es lo que perseguíamos. Bien. Casi

tenemos completo el estudio de esta línea, salvo por un pequeño detalle. Palabras

reservadas del lenguaje, como son window, status, return y true aparecen en

minúsculas en este ejemplo, cuando hemos dicho que en este temario las palabras

reservadas las poníamos en mayúsculas. Esto es así porque en este caso las

instrucciones no han sido programadas dentro de VBScript, sino directamente en

HTML. Existen algunas instrucciones de los lenguajes de Script que pueden

programarse de esta manera (de hecho, algunas veces DEBEN programarse de esta

manera). En estos casos, el navegador no interpreta las instrucciones como de

VBScript, sino como de JavaScript. Y JavaScript (ya lo veremos en el

correspondiente temario) es, al contrario que VBScript, muy exigente con el tema

de las mayúsculas y minúsculas. Cada palabra debe escribirse de un modo exacto,

y no de otro, o no funcionará. En la lista que incluyo en éste Apéndice de objetos,

propiedades, métodos y eventos he seguido este último criterio, a fin de familiarizar al lector con la sintaxis mas adecuada.

La lista de los principales objetos de VBScript es:

Objeto window

Objeto location

Objeto document

Objeto navigator

Objeto frame

Objeto history

Objeto link

Objeto anchor

Objeto form

Como ya hemos mencionado en este temario, los objetos siguen una jerarquía. El

de mas alto nivel es el objeto WINDOW, que representa a la ventana activa. Todos

los demás, son objetos derivados de éste. Veamos cuales son las propiedades y

métodos que acepta cada uno, así como los eventos que les afectan.

Objeto window

Representa la ventana activa del navegador y es el mas alto de la jerarquía.

Propiedades:

defaultStatus se refiere al mensaje que aparecerá por defecto en la barra de

estado.

document representa al documento HTML en ejecución en ese momento.

frames [] es una matriz que contiene los frames de la ventana.

history representa un registro histórico de las páginas visitadas en la actual

sesión de uso de Internet.

length contiene el número total de frames de la ventana.

location representa a la dirección (URL) actual de Internet.

name contiene el nombre de la ventana activa.

Page 75: Manual del Alumno - Instituto Wienertiempo de ejecución para VBScript. Microsoft está trabajando con varios grupos de Internet para definir el estándar de ActiveX Scripting de modo

Instituto Superior Tecnológico 75

Norbert Wiener Manual del Alumno

navigator representa al navegador que estamos utilizando.

self se refiere a la propia ventana. Es el mismo objeto window.

status es el mensaje que aparece en la barra de estado en un momento

determinado.

window representa a la ventana activa o a otra ventana o sub-ventana de

navegación.

Métodos:

close

() permite cerrar la ventana activa. Su sintaxis es self.close()

open

()

permite abrir una nueva ventana, como sub ventana de la actual. Su

sintaxis es: nueva_ventana = window.open ("URL", "Target", "Opciones")

En la sintaxis expresada, nueva_ventana es el nombre que queremos darle a la

sub-ventana. URL es la dirección de la página que queremos que se cargue en la

sub-ventana. Target es la dirección del frame donde queremos que se abra la

nueva ventana (caso de existir frames) como hacemos en HTML con los

hiperenlaces. Opciones son las propiedades de la nueva ventana, de acuerdo a la siguiente tabla.

propiedad Tipo de dato Explicación

toolbar booleano Ventana con barra de herramientas.

location booleano Ventana con barra de direcciones.

directories booleano Ventana con directorios.

Status booleano Ventana con barra de estado

menubar booleano Ventana con barra de menús.

scrollbars booleano Ventana con barras de desplazamiento.

resizable booleano Ventana de tamaño redefinible por el usuario.

width píxeles Anchura de la ventana

height píxeles Altura de la ventana.

top píxeles Posición Y de la ventana

left píxeles Posición x de la ventana

Eventos:

onLoad Se ejecuta cuando se carga la página.

onUnload Se ejecuta cuando se descarga (se cierra) la página.

Objeto document

Representa el documento activo.

Propiedades:

alinkColor Representa el color de los enlaces activos.

bgColor Representa el color de fondo del documento.

fgColor Representa el color del texto

lastModified Representa la fecha de la última modificación.

linkColor Representa el color de los enlaces.

Page 76: Manual del Alumno - Instituto Wienertiempo de ejecución para VBScript. Microsoft está trabajando con varios grupos de Internet para definir el estándar de ActiveX Scripting de modo

Instituto Superior Tecnológico 76

Norbert Wiener Manual del Alumno

location Representa la URL del documento.

title Representa el título del documento.

vlinkColor Representa el color de los enlaces visitados.

Métodos:

Write () Escribe un texto.

Writeln() Escribe una línea de texto.

Eventos:

Ninguno

Objeto form

Este objeto se refiere a un formulario empleado en el documento. Se accede a cada

formulario mediante un índice: document.form [índice]

El número de índice se corresponde con el orden de creación de formulario en el

documento.

Propiedades:

action Representa la URL donde está el programa encargado de procesar un

formulario (al que se llama al activar el botón Submit).

length Es el número de elementos del formulario.

method Es el método de envío (GET o POST).

Métodos:

submit Se usa para forzar el envío.

Eventos:

onSubmit Se produce cuando se pulsa el botón Submit del formulario.

Objeto location

Contiene la URL de la página actual

Propiedades:

href Representa la propia URL.

pathname Representa la ruta del disco del servidor donde se aloja la página.

Métodos:

Ninguno.

Eventos:

Ninguno.

Objeto navigator

Representa al navegador actual.

Propiedades:

appName Es el nombre del navegador.

Page 77: Manual del Alumno - Instituto Wienertiempo de ejecución para VBScript. Microsoft está trabajando con varios grupos de Internet para definir el estándar de ActiveX Scripting de modo

Instituto Superior Tecnológico 77

Norbert Wiener Manual del Alumno

appVersion Se refiere a la versión del navegador.

Métodos:

Ninguno.

Eventos:

Ninguno.

Objeto history

Representa el historial de las páginas visitadas en la sesión actual de uso de

Internet

Propiedades:

length Representa la cantidad total de páginas visitadas.

Métodos:

back () navega a la página anterior.

forward() navega a la página siguiente.

go (n) navega n páginas hacia delante (o hacia atrás, si n es negativo).

Eventos:

Ninguno.

Semana 10 : Examen Parcial.

Page 78: Manual del Alumno - Instituto Wienertiempo de ejecución para VBScript. Microsoft está trabajando con varios grupos de Internet para definir el estándar de ActiveX Scripting de modo

Instituto Superior Tecnológico 78

Norbert Wiener Manual del Alumno

Semana 11 : JavaScript.

Introducción

JScript es la implementación de Microsoft de la especificación de lenguaje ECMA

262. Es una implementación completa, además de algunas mejoras que aprovechan

las capacidades de Microsoft Internet Explorer. Este tutorial pretende ayudarle a

comenzar a trabajar con JScript.

JScript es un lenguaje de secuencias de comandos basado en objetos e

interpretado. Aunque tiene menos capacidades que los lenguajes orientados a

objetos de altas prestaciones como C++ y Java, JScript es más que suficientemente

eficiente para los propósitos para los que está creado.

JScript no es una versión reducida de cualquier otro lenguaje (sólo está

relacionado, distante e indirectamente, con Java, por ejemplo), ni es una

simplificación de ningún lenguaje. Sin embargo, es un lenguaje limitado. Por

ejemplo, no es posible escribir aplicaciones independientes en JScript y la capacidad

de lectura y escritura de archivos es mínima. Más aún, las secuencias de comandos

de JScript sólo pueden ejecutarse con un intérprete, que bien puede estar en un servidor Web o en un explorador de Web.

JScript es un lenguaje en el que no necesita declarar los tipos de datos. Esto

significa que no es necesario declarar explícitamente los tipos de datos de las

variables. Más aún, en muchos casos JScript realiza conversiones,

automáticamente, cuando son necesarias. Por ejemplo, si intenta agregar un

número a un elemento que contiene texto (una cadena), el número se convierte en texto.

Escritura de Código en Java Script

Al igual que muchos otros lenguajes de programación, Microsoft JScript se escribe

en forma de texto y se organiza en instrucciones, bloques formados por conjuntos

de instrucciones relacionadas y comentarios. En una instrucción puede utilizar

variables, datos inmediatos como cadenas y números, y expresiones.

Instrucciones

Una instrucción de código JScript está formada por uno o más elementos y

símbolos en una misma línea. Cada nueva línea inicia una nueva instrucción, pero

es una buena idea terminar las instrucciones de forma explícita. Puede hacerlo si

agrega un punto y coma (;), que es el carácter de terminación de JScript.

unPajaro = "Colibrí";

var hoy = new Date();

Un grupo de instrucciones JScript encerrado entre llaves ({}) se denomina bloque.

Los bloques de instrucciones se utilizan, por ejemplo, en funciones y expresiones

condicionales. En el siguiente ejemplo la primera instrucción inicia la definición de

una función, que está formada por un bloque de cinco instrucciones. Las tres

últimas instrucciones, que no están incluidas en las llaves, no son un bloque y no

forman parte de la función.

Page 79: Manual del Alumno - Instituto Wienertiempo de ejecución para VBScript. Microsoft está trabajando con varios grupos de Internet para definir el estándar de ActiveX Scripting de modo

Instituto Superior Tecnológico 79

Norbert Wiener Manual del Alumno

function convert(pulgadas) {

pies= pulgadas / 12; // Estas cinco instrucciones están en un bloque.

millas = pies / 5280;

millasNauticas = pies / 6080;

cm = pulgadas * 2.54;

metros = pulgadas / 39.37;

}

km = metros / 1000; // Estas tres instrucciones no están en un bloque.

kradio = km;

mradio= millas;

Comentarios

Un comentario de una sola línea en JScript comienza con un par de barras

inclinadas (//). Un comentario multilínea comienza con una barra inclinada seguida

por un asterisco (/*) y termina con los mismos elementos en orden inverso (*/).

unaBuenaIdea = "Incluya muchos comentarios en su código."; // Este es un comentario de

una sola línea.

/*

Este es un comentario multilínea que explica la instrucción de código anterior.

La instrucción asigna un valor a la variable unaBuenaIdea. El valor que está encerrado

entre comillas, se conoce como un literal. Un literal contiene información de forma

directa y explícita, no hace referencia a la información de forma indirecta. (Las

comillas no forman parte del literal.)

*/

// Este es otro comentario multilínea, escrito como una serie de comentarios de una sola

línea.

// Después de ejecutar la instrucción, puede hacer referencia al contenido de la

variable.

// unaBuenaIdea utilizando su nombre, como en la siguiente instrucción, en la que se

agrega un literal de cadena a

// la variable unaBuenaIdea mediante concatenación para crear una nueva variable.

var ideaAmpliada = unaBuenaIdea + " Nunca puede saber cuándo tendrá que averiguar lo que

hace.";

Asignaciones e igualdad

El signo igual (=) se utiliza en JScript para indicar una acción en la que se asigna

un valor. Es decir, una instrucción de código JScript podría decir

unEntero = 3;

Significa "Asigna el valor 3 a la variable unEntero" o "unEntero recibe el valor 3".

Cuando desee comparar dos valores para averiguar si son iguales, deberá utilizar

un par de signos de igual (==). Este aspecto se ve con más detalle en Controlar el

flujo del programa.

Expresiones

Una expresión JScript es algo que una persona puede leer como una expresión de

tipo Boolean o como una expresión numérica. Las expresiones contienen caracteres

de símbolos como "+" en lugar de palabras como "sumado a". Una expresión está

formada por cualquier combinación válida de valores, variables, operadores y

expresiones.

var unaExpresion= "3 * (4 / 5)";

var unaSegundaExpresion = "Math.PI * radio * 2";

var unaTerceraExpresion = unaSegundaExpresion + "%" + unaExpresion;

var unaCuartaExpresion = "(" + unaSegundaExpresion + ") % (" + unaExpresion

Page 80: Manual del Alumno - Instituto Wienertiempo de ejecución para VBScript. Microsoft está trabajando con varios grupos de Internet para definir el estándar de ActiveX Scripting de modo

Instituto Superior Tecnológico 80

Norbert Wiener Manual del Alumno

Caracteristicas Es simple, no hace falta tener conocimientos de programación para poder

hacer un programa en JavaScript.

Maneja objetos dentro de nuestra página Web y sobre ese objeto podemos

definir diferentes eventos. Dichos objetos facilitan la programacion de

paginas interactivas, a la vez que se evita la posibilidad de ejecutar

comandos que puedan ser peligrosos para la maquina del usuario, tales

como formateo de unidades, modificar archivos etc.

Es dinámico, responde a eventos en tiempo real. Eventos como presionar un

botón, pasar el puntero del mouse sobre un determinado texto o el simple

hecho de cargar la página o caducar un tiempo. Con esto podemos cambiar

totalmente el aspecto de nuestra página al gusto del usuario, evitándonos

tener en el servidor un página para cada gusto, hacer calculos en base a

variables cuyo valor es determinado por el usuario, etc.

Diferencia con JAVA La principal diferencia es que JAVA es un lenguaje compilado, mientras que

JavaScript es interpretado.

JAVA al compilar crea programas independientes, llamados APPLETS que se

invocan desde una pagina Web, mientras que el codigo de JavaScript va incluido en la pagina.

Esta orientado a objetos de forma limitada ya que no maneja los conceptos

de clase ni herencia.

En JavaScript no es necesario declarar el tipo de variable, ni debe existir las

referencias a bjetos antes de ejecutarlos, por lo que se hable de una ligazon dinamica a diferencia de la ligazon estatica del JAVA.

Principales aplicaciones Si bien hoy en día, JavaScript, es un lenguaje muy usado, sus principales

aplicaciones son:

Responder a eventos locales dentro de la página, como apretar un botón,

La realización de cálculos en tiempo real

La validación de formularios dentro de una página.

La personalización de la página por el usuario, que le permitirá tener una

página web a su medida.

La inclusión de datos del propio sistema, como son la hora y la fecha.

Aunque según pasa el tiempo sus aplicaciones se van incrementando.

Page 81: Manual del Alumno - Instituto Wienertiempo de ejecución para VBScript. Microsoft está trabajando con varios grupos de Internet para definir el estándar de ActiveX Scripting de modo

Instituto Superior Tecnológico 81

Norbert Wiener Manual del Alumno

Donde incluirlo Antes siquiera de que conozcamos la sintaxis o una primera orden de JavaScript,

debemos saber primero cómo se incluye un script dentro de un documento HTML.

El codigo JavaScript se inserta directamente en nuestra pagina HTM. Hay cuatro (4) maneras de hacerlo:

En el cuerpo del documento Es decir entre los comandos <BODY> y </BODY> usando el comando SCRIPT

<HTML>

<HEAD> <TITLE>Titulo</TITLE> </HEAD> <BODY>

<SCRIPT LANGUAGE=JavaScript> <!-- escondemos el codigo> document.write("Hola que tal"); // hasta aqui escondo --> <SCRIPT> </BODY> </HTML>

Este codigo se ejecuta inmediatamente al cargar la pagina y lo que produce es un

texto sobre la pagina, para ello use el metodo write del objeto document, que representa al documento actual.

Nota que use un comentario <!-- --> para ocultar el codigo a los navegadores que

no soportan JavaScript.

En archivo aparte

En este caso todo el codigo del script esta situado en otro archivo y se hace una llamada.

<HTML>

<HEAD> <TITLE>Titulo</TITLE> </HEAD> <BODY> <SCRIPT SRC=codigo.js> <SCRIPT>

</BODY> </HTML>

Nota que aqui no fue neceario esconder ningun codigo y que los navegadores que

no soporte el comando SCRIPT simplemente lo ignoraran.

Usando manejadores de evento Los comandos de JavaScript son evaluados inmediatamente al cargarse la pagina.

Las funciones son almacenadas, pero no ejecutadas, hasta cierto evento.

Page 82: Manual del Alumno - Instituto Wienertiempo de ejecución para VBScript. Microsoft está trabajando con varios grupos de Internet para definir el estándar de ActiveX Scripting de modo

Instituto Superior Tecnológico 82

Norbert Wiener Manual del Alumno

<HTML>

<HEAD>

<TITLE>Titulo</TITLE> <BODY> <A HREF="" onMouseOver="window.status='Figura';return true"> <IMG SRC=fig.gif></A> </BODY> </HTML>

Nota que aqui es un evento el que dispara.

Haciendo una llamada a función

Dentro de la cabecera, despues del titulo. Es decir, entre los comandos </TITLE> y

</HEAD> y luego la llamada a la funcion en el cuerpo.

<HTML>

<HEAD> <TITLE>Titulo</TITLE>

<SCRIPT LANGUAGE=JavaScript> <!-- escondemos el codigo> funcion llamada(x){ alert("Le dije que NO!"+x); } // hasta aqui escondo -->

<SCRIPT> </HEAD> <BODY> No haga Clic <A HREF="JavaScript:llamada('Curioso!')">AQUI</A> </BODY> </HTML>

Observa que aquí se definió la función en la cabecera, pero recién se ejecuta al

hacer clic en el enlace, que es el evento que llama a la función a la cual se le para un parámetro.

NOTA: Excepto en texto encomillado , JavaScript es sensible a mayúsculas y

minúsculas, por lo que tendrás que tener el cuidado al usar por ejemplo

document.write de escribirlo así, en minúsculas o no se interpretará. Cualquier

error simplemente es ignorado. Se puede usar la comilla simple para los valores de atributos.

Page 83: Manual del Alumno - Instituto Wienertiempo de ejecución para VBScript. Microsoft está trabajando con varios grupos de Internet para definir el estándar de ActiveX Scripting de modo

Instituto Superior Tecnológico 83

Norbert Wiener Manual del Alumno

Semana 12 : Scripting Basics.

Variables de Java Script Las variables se utilizan el Microsoft JScript para almacenar valores en sus

secuencias de comandos. Son un método para recuperar y manipular valores

mediante nombres de cadenas. Cuando se utilizan correctamente pueden ayudar a

comprender el funcionamiento de una secuencia de comandos.

Declarar variables

Aunque no es necesario, se considera una buena práctica declarar las variables

antes de utilizarlas. Se hace utilizando la instrucción var. La única ocasión en la

que se debe utilizar la instrucción var es al declarar variables locales a una función.

En las restantes ocasiones, utilizar la instrucción var para declarar las variables

antes de utilizarlas es una práctica recomendada.

Los siguientes ejemplos de código son sobre la declaración de variables:

var mim = "Un hombre, un plan, un canal, !Panamá!"; // El valor almacenado en mim es

del tipo cadena.

// La frase entre comillas, el valor asignado a mim, es un literal de cadena.

var ror = 3; // El valor almacenado en ror es de tipo numérico.

var nen = true; // El valor almacenado en nen es de tipo Boolean.

var fif = 2.718281828 // El valor almacenado en fif es de tipo numérico.

Nombrar variables

JScript es un lenguaje que distingue entre mayúsculas y minúsculas, por tanto, es

diferente llamar a una variable miContador que llamarla MIContador. Además, los

nombres de las variables, que pueden tener cualquier longitud, deben seguir ciertas

reglas:

El primer carácter debe ser una letra (mayúscula o minúscula) o un

carácter de subrayado (_), o un signo de dólar ($).

Los siguientes caracteres pueden ser letras, números, caracteres de

subrayado o signos de dólar.

El nombre de una variable no puede ser una palabra reservada.

Algunos ejemplos de nombres de variables válidos:

_numeropaginas

Parte9

Numero_elementos

Algunos nombres de variables no válidos:

99Globos // Comienza con un número.

Smith&Wesson // El signo & no es un carácter válido para los

nombres de las variables.

En los casos en los que quiera declarar una variable e iniciarla sin proporcionar

ningún valor concreto, deberá asignarle un valor especial, null.

var zaz = null;

var notanto = 3 * zaz; // En este punto, notanto se convierte en 0.

Page 84: Manual del Alumno - Instituto Wienertiempo de ejecución para VBScript. Microsoft está trabajando con varios grupos de Internet para definir el estándar de ActiveX Scripting de modo

Instituto Superior Tecnológico 84

Norbert Wiener Manual del Alumno

Si declara una variable sin asignarla un valor, la variable existirá, pero será no

definida.

var godot;

var esperarA= 1 * godot; // Asigna el valor NaN a esperarA, ya que godot no está

definida.

Una variable se puede definir de forma implícita (sin utilizar var) tan sólo con

asignarle un valor. Sin embargo, no se puede utilizar una variable que aún no haya

sido declarada de ningún modo. Si lo hace obtendrá un error en tiempo de

ejecución.

lel = ""; // La variable se declara de forma implícita.

var unLio = vyv + zez; // Genera un error, ya que vyv y zez no existen.

Conversión

Dado que JScript es un lenguaje en el que no es necesario declarar los tipos de

datos, las variables en JScript técnicamente no tienen un tipo fijo. En cambio,

tienen un tipo equivalente al tipo del valor que contienen. Bajo determinadas

circunstancias, es posible forzar la conversión automática de una variable de un

tipo de dato en un tipo diferente. Se pueden incluir números en las cadenas, pero

las cadenas no se pueden incluir directamente en los números, por lo que se

proporcionan las funciones de conversión explícitas, parseInt() y parseFloat().

var elDesde = 1;

var elHasta = 10;

var queHacer= "Contar desde ";

queHacer+= elDesde + " hasta " + elHasta + ".";

Después de ejecutar este código la variable queHacer contiene "Contar desde 1 hasta 10." El dato numérico ha sido convertido en una cadena. var ahoraQue= 0;

ahoraQue+= 1 + "10"; // En este caso, como "10" es una cadena,

// el operador "+=" la concatena..

Después de ejecutar el código, la variable ahoraQue contiene "0110". Para obtener

este resultado se han seguido los siguientes pasos:

1. Comprobar los tipos de 1 y "10". "10" es una cadena, 1 es un

número, por tanto, el número se convertirá en una cadena.

2. Dado que los valores de ambos lados del operador + son cadenas, se

realiza una concatenación de ellas. El resultado es "110"

3. Comprueba los tipos de ambos lados del operador +=. ahoraQue

contiene un número y "110" es una cadena, así que se convierte el número en una cadena.

4. Como ahora hay cadenas a ambos lados del operador +=, se realiza

una concatenación de cadenas. El resultado es "0110".

5. Este resultado se almacena en ahoraQue.

var entonces = 0;

entonces+= 1 + parseInt("10"); // En este caso, "+=" realiza una suma.

Después de ejecutar este código, la variable entonces contiene el entero 11.

Page 85: Manual del Alumno - Instituto Wienertiempo de ejecución para VBScript. Microsoft está trabajando con varios grupos de Internet para definir el estándar de ActiveX Scripting de modo

Instituto Superior Tecnológico 85

Norbert Wiener Manual del Alumno

Semana 13 : Tipos de datos y operadores.

Tipos de Datos

¿Qué son los tipos de datos de JScript?

Microsoft JScript tiene seis tipos de datos. Los tipos principales son: numéricos,

cadenas, objetos y Boolean. Los otros dos son null y no definido

.

Tipo de dato Cadena

Las cadenas están delimitadas por comillas simples o dobles. (Utilice comillas

simples para delimitar cadenas que utilicen comillas dobles.) Una cadena también

es un objeto en JScript, pero es un caso especial, con propiedades especiales. A

continuación hay ejemplos de cadenas:

"La vaca saltó sobre la luna."

'"¡Es imposible!" gritó el hombre.'

"42"

Una cadena puede contener cero o más caracteres unicode. Cuando no contiene

ninguno, se denomina cadena de longitud cero ("").

Tipo de dato numérico

JScript permite utilizar números enteros y en coma flotante. Los enteros pueden ser

positivos, 0 o negativos; un número en coma flotante puede contener un punto

decimal, , una "e" (mayúscula o minúscula), que se utiliza para representar "diez a

la potencia de" en notación científica, o ambos. Estos números siguen el estándar

IEEE 754 para la representación numérica. Por último, algunos valores numéricos

son especiales:

NaN, o no un número

Infinito positivo

Infinito negativo

Positivo 0

Negativo 0

Los enteros se pueden representar en base 10 (decimal), base 8 (octal), y base 16

(hexadecimal).

Los enteros octales se especifican anteponiendo un "0" y pueden contener dígitos

del 0 al 7. Si un número está precedido por un "0" pero contiene los dígitos "8" o

"9", es un número decimal. Si un número que de otro modo sería un octal contiene

la letra "e" (o "E") se genera un error.

Los enteros hexadecimales ("hex") se especifican anteponiendo "0x" (la "X" puede

ser mayúscula o minúscula) y pueden contener los dígitos del 0 al 9 y las letras de

la A a la F (mayúsculas o minúsculas). La letra "e" es un dígito permisible en la

notación hexadecimal y no indica la existencia de un número exponencial. Las

Page 86: Manual del Alumno - Instituto Wienertiempo de ejecución para VBScript. Microsoft está trabajando con varios grupos de Internet para definir el estándar de ActiveX Scripting de modo

Instituto Superior Tecnológico 86

Norbert Wiener Manual del Alumno

letras de la A a la F se utilizan para representar, como dígitos simples, los números

que van del 10 al 15 en base 10. Es decir, 0xF equivale a 15 y 0x10 equivale a 16.

Los números octales y hexadecimales pueden ser negativos, pero no fracciones. Un

número que comience con un único "0" y contenga un punto decimal es un número

decimal en coma flotante, si un número que comienza con "0x" o "00" contiene un

punto decimal, cualquier cosa que aparezca a la derecha de dicho punto será ignorado.

Algunos ejemplos de números:

.0001, 0.0001, 1e-4, 1.0e-4 // Cuatro números en coma flotante, todos

ellos equivalentes.

3.45e2 // Un número en coma flotante,

equivalente a 345.

42 // Un número entero.

0377 // Un entero octal, equivalente a 255.

00.0001 // Como los números octales no pueden

tener decimales, éste equivale a 0.

0378 // Un entero, equivalente a 378.

0Xff // Un entero hexadecimal, equivalente a

255.

0x37CF // Un entero hexadecimal, equivalente a

14287.

0x3e7 // Un entero hexadecimal, equivalente a

999.

0x3.45e2 // Como los números hexadecimales no

pueden tener partes decimales, éste equivale a 3.

Tipo Boolean

Los posibles valores de tipo Boolean sontrue y false. Son valores especiales, y no

se pueden utilizar como 1 y 0.

Nota En una comparación, cualquier expresión que se evalúe como 0 se tomará como false, y cualquier

expresión que se evalúe como un número distinto de cero se tomará como true. Así, la siguiente expresión

se evalúa como true:

(false == 0)

Tipo de dato no definido

Un valor no definido es simplemente un valor asignado a una variable después de

crearla, pero antes de que se le haya asignado un valor.

Tipo de dato Null

Un valor null es uno que no tiene valor y no significa nada.

Page 87: Manual del Alumno - Instituto Wienertiempo de ejecución para VBScript. Microsoft está trabajando con varios grupos de Internet para definir el estándar de ActiveX Scripting de modo

Instituto Superior Tecnológico 87

Norbert Wiener Manual del Alumno

Tambien pueden usar los siguientes

caracteres

\b indica un retroceso (backspace)

\f indica un avance de pagina (Form

feed)

\n Indica nuva linea (New Line)

\r Indica un retorno de carro

(Carrage

return)

\t Indica un tabulador (Tab)

\" se puede incluir comillas. Ej:

"José \"Chemo\" del Solar"

Operadores de Java Script

JScript tiene un amplio conjunto de operadores, incluidos aritméticos, lógicos, de

bits y de asignación. También existen algunos operadores variados.

Cálculo Lógicos De bits Asignación Varios

Descripción Símbolo Descripción Símbolo Descripción Símbolo Descripción Símbolo Descripción Símbolo

Negación

unaria

- NOT lógico ! NOT de bits ~ Asignación = delete delete

Incremento ++ Menor que < Desplazamiento

de bits hacia la

izquierda

<< Asignación

compuesta

OP= typeof typeof

Decremento -- Mayor que > Desplazamiento hacia la

derecha

>> void void

Multiplicación * Menor que o

igual a

<= Desplazamiento

a la derecha sin

signo

>>>

División / Mayor que o

igual a

>= AND de bits &

Módulo

aritmético

% Igualdad == XOR de bits ^

Adición + Desigualdad != OR de bits |

Sustracción - AND lógico &&

OR lógico ||

Condicional (trinario)

?:

Coma ,

Identidad ===

No identidad !==

Precedencia de operadores

En JScript los operadores se evalúan en un orden particular. Este orden se conoce

como la precedencia de operadores. La siguiente tabla muestra una lista de los

operadores en orden de precedencia de mayor a menor. Los operadores de la

misma fila se evalúan de izquierda a derecha.

Page 88: Manual del Alumno - Instituto Wienertiempo de ejecución para VBScript. Microsoft está trabajando con varios grupos de Internet para definir el estándar de ActiveX Scripting de modo

Instituto Superior Tecnológico 88

Norbert Wiener Manual del Alumno

Operador Descripción

. [] () Acceso a campos, indexación de matrices y llamadas a

funciones

++ -- - ~ ! typeof new

void delete Operadores unarios, tipos de datos devueltos, creación de

objetos, valores no definidos

* / % Multiplicación, división, división módulo

+ - + Adición, sustracción, concatenación de cadenas

<< >> >>> Desplazamiento de bits

< <= > >= Menor que, menor que o igual a, mayor que, mayor que o igual

a

== != === !== Igualdad, desigualdad, identidad, no identidad

& AND de bits

^ XOR de bits

| OR de bits

&& AND lógico

|| OR lógico

?: Condicional

= OP= Asignación, asignación con operación

, Evaluación múltiple

Los paréntesis se usan para modificar el orden de evaluación. La expresión

encerrada entre paréntesis se evalúa por completo antes de usar su valor en el resto de la instrucción.

Un operador con mayor precedencia se evalúa antes que uno con menor

precedencia. Por ejemplo:

z = 78 * (96 + 3 + 45)

En esta expresión hay cinco operadores: =, *, (), + y +. Según las normas de

precedencia, se evalúan en el siguiente orden: (), *, +, +, =.

1. Lo primero es la evaluación de la expresión que está encerrada entre

paréntesis: Hay dos operadores de adición y tienen la misma

precedencia: Se suma 96 y 3 y al total resultante se suma 45, dando

como resultado un valor igual a 144.

2. Lo siguiente es la multiplicación: Se multiplican 78 y 144, dando

como resultado un valor igual a 11232.

3. Por último se realiza la asignación: Se asigna 11232 a z.

Page 89: Manual del Alumno - Instituto Wienertiempo de ejecución para VBScript. Microsoft está trabajando con varios grupos de Internet para definir el estándar de ActiveX Scripting de modo

Instituto Superior Tecnológico 89

Norbert Wiener Manual del Alumno

Arreglos y Cadenas

Indexación de matrices

Las matrices en JScript son sparse. Es decir, si tiene una matriz con tres elementos,

numerados 0, 1 y 2, puede crear un elemento 50 sin preocuparse por los elementos

que van del 3 al 49. Si la matriz tiene una variable automática de longitud (vea

objetos intrínsecos para obtener una explicación sobre el control automático de la

longitud de una matriz), la variable de longitud tendría el valor 51, en lugar de 4.

Se pueden crear matrices en las que no existan espacios vacíos en el número de

elementos, pero no es necesario. De hecho, en JScript, no es necesario que sus

matrices tengan subíndices numéricos.

En JScript, los objetos y las matrices son esencialmente idénticos. La diferencia real

no se encuentra en los datos, si no en el método utilizado para hacer referencia a los miembros de una matriz o a las propiedades y métodos de un objeto.

Referencias a matrices

Existen dos métodos principales para hacer referencia a los miembros de una

matriz. Normalmente se hace referencia a las matrices utilizando corchetes. Los

paréntesis encierran un valor numérico o una expresión que se evalúa como un

número entero no negativo. El siguiente ejemplo asume que la variable numEntr

está definida y que se le ha asignado un valor en alguna parte de la secuencia de

comandos.

laLista = libretaDirecciones[numEntr];

laPrimeraLinea = laLista [1];

Este método de referencia equivale al método utilizado para hacer referencia a

objetos, aunque en estos últimos debe aparecer después del punto el nombre de

una propiedad existente. Si esa propiedad no existe, el código generará un error.

El segundo método para hacer referencia en una matriz es crear un objeto o matriz

que contenga las propiedades numeradas y generar los números mediante un

bucle. El siguiente ejemplo genera dos matrices, una para el nombre y otra para la

dirección, a partir de la lista de libroDirecciones. Cada una de ellas contiene cuatro

propiedades. Por ejemplo, una instancia de elNombre creada a partir de las

propiedades que van desde [Name1] a [Name4] en laLista, podría contener "G."

"Edward" "Heatherington" "IV", o "George" "" "Sand" "".

laLista = libretaDirecciones[numEntr];

for (i = 1; i

< 4; i++) {

elNombre [i] = laLista["Nombre" + i];

laDireccion[i] = laLista["Direccion" + i];

}

Aunque esta instancia en concreto, es corta y se podría haber escrito fácilmente en

la notación con punto (es decir, haciendo referencia a laLista, elNombre, y

laDireccion como objeto en lugar de hacerlo como matrices), esto no siempre es

Page 90: Manual del Alumno - Instituto Wienertiempo de ejecución para VBScript. Microsoft está trabajando con varios grupos de Internet para definir el estándar de ActiveX Scripting de modo

Instituto Superior Tecnológico 90

Norbert Wiener Manual del Alumno

posible. Es posible que algunas veces una determinada propiedad no exista hasta el

momento de la ejecución, o que no exista forma de saber con antelación cuál será.

Por ejemplo, si la matriz libretaDirecciones estuviera organizada por el apellido en

lugar de estarlo por una lista numérica, el usuario probablemente podría introducir

los nombres, mientras se ejecuta la secuencia de comandos, para buscar a las

personas. El siguiente ejemplo asume la existencia de las definiciones de función

correctas en alguna parte de la secuencia de comandos.

laLista = libretaDirecciones[getName()];

laListaIndiv= laLista [obtenerPrimerNombre ()];

Se trata de una referencia asociativa a la matriz, es decir, la referencia se realiza

mediante cadenas totalmente arbitrarias. Los objetos en JScript son, en realidad,

matrices asociativas. Aunque se puede utilizar (y se utiliza con frecuencia) el estilo

de referencias con "puntos", no es necesario hacerlo.

Objetos Intrínsecos

Microsoft JScript ofrece nueve objetos intrínsecos (o "incorporados"). Estos objetos

son Array, Boolean, Date, Function, Global, Math, Number, Objecty String.

Cada uno de los objetos intrínsecos tienen métodos y propiedades asociados, que

se describen en detalle en la referencia del lenguaje. Algunos objetos también se

describen aquí.

Objeto Array

En JScript, los objetos se controlan como matrices y las matrices se controlan como

objetos. Se puede hacer referencia a las subsecuencias de comandos de una

matriz, que son totalmente equivalentes a las propiedades de un objeto, por

número (o por nombre, si les asigna nombres). Para crear una nueva matriz, utilice

el operador new y el constructor Array(), como en el siguiente ejemplo.

var losMeses = new Array(12) {

losMeses[0] = "Ene";

losMeses[1] = "Feb";

losMeses[2] = "Mar";

losMeses[3] = "Abr";

losMeses[4] = "May";

losMeses[5] = "Jun";

losMeses[6] = "Jul";

losMeses[7] = "Ago";

losMeses[8] = "Sep";

losMeses[9] = "Oct";

losMeses[10] = "Nov";

losMeses[11] = "Dic";

}

Al crear una matriz utilizando la palabra clave Array, JScript incluye en la matriz

una propiedad length de sólo escritura, que graba el número de entradas de una

matriz. Si no especifica un número, la longitud se establece a 0 y la matriz no tiene

entradas. Si especifica un número, la longitud se establece a ese número. Si

especifica más de un parámetro, los parámetros se utilizan como entradas de la

matriz y el número de parámetros se asigna a la propiedad length, como en el

siguiente ejemplo, que es equivalente al ejemplo anterior.

Page 91: Manual del Alumno - Instituto Wienertiempo de ejecución para VBScript. Microsoft está trabajando con varios grupos de Internet para definir el estándar de ActiveX Scripting de modo

Instituto Superior Tecnológico 91

Norbert Wiener Manual del Alumno var losMeses = new Array("Ene", "Feb", "Mar", "Abr", "May", "Jun",

"Jul", "Ago", "Sep", "Oct", "Nov", "Dic");

JScript cambia automáticamente el valor de length si agrega elementos a una

matriz que creó con la palabra clave Array.

Objeto String

En JScript, las cadenas son objetos. Esto significa que cada vez que declare una

variable de cadena o utilice un literal de cadena, lo que está haciendo realmente es

crear un nuevo objeto de cadena. El objeto String tiene algunos métodos

incorporados, que puede utilizar con sus cadenas. Uno de esos métodos es el

método substring, que devuelve parte de la cadena. Este método recibe dos

números como argumentos.

unaCadena = "0123456789";

var unaPorcion = unaCadena.substring(4, 7); // Establece unaPorcion a

"456".

var otraPorcion = unaCadena.substring(7, 4); // Establece otraPorcion

a "456".

// Si se utiliza el ejemplo de creación de Array anterior:

primeraLetra = losMeses[5].substring(0,1); // Establece la variable

primeraLetra a "J".

Otra propiedad del objeto String es la propiedad length. Esta propiedad contiene

el número de caracteres que hay en la cadena, que es igual a 0 en una cadena

vacía. Esto es un valor numérico y se puede utilizar directamente en cálculos.

var Longitud = "Hola mundo".length // Establece la variable Longitud

a 10.

Objeto Math

El objeto Math tiene una cantidad de propiedades y métodos, todos ellos

predefinidos. Las propiedades son números específicos. Uno de estos valores es pi

(aproximadamente 3,14159...). Es la propiedad Math.PI, mostrada en el siguiente

ejemplo.

// Se declara una variable radio y se le asigna un valor numérico.

var areaCirculo = Math.PI * radio * radio; // Observe que Math y PI

están en mayúsculas.

Uno de los métodos incorporados del objeto Math es el método de exponenciación

o pow, que eleva un número a una potencia especificada. El siguiente ejemplo usa

pi y exponenciación.

// Esta fórmula calcula el volumen de una esfera con un radio

especificado.

volumen = (4/3)*(Math.PI*Math.pow(radio,3));

Objeto Date

Utilice el objeto Date para capturar la fecha de hoy y para calcular diferencias entre

fechas. Este objeto tiene varios métodos y propiedades, todos ellos predefinidos. En

Page 92: Manual del Alumno - Instituto Wienertiempo de ejecución para VBScript. Microsoft está trabajando con varios grupos de Internet para definir el estándar de ActiveX Scripting de modo

Instituto Superior Tecnológico 92

Norbert Wiener Manual del Alumno

general, el objeto Date proporciona el día de la semana; el mes, día y año; y la

hora en horas, minutos y segundos. Esta información está basada en el número de

milisegundos transcurridos desde el 1 de enero de 1970, 00:00:00.000 GMT. GMT

son las iniciales de "Greenwich Mean Time"; el término preferido es UTC u "Horario

Universal Coordinado", que hace referencia a señales emitidas por el horario

estándar mundial.

Nota Para JScript, la hora comienza en la medianoche del 1 de enero de 1970; no puede solicitar a

JScript que cree un objeto Date que represente una hora anterior a esa. Si necesita trabajar con horas

anteriores, debe escribir su propio código para hacerlo, una tarea formidable.

Para crear un nuevo objeto Date se utiliza el operador new. El siguiente ejemplo

calcula, para el año actual, el número de días transcurridos y el número de días que

faltan.

/*

Este ejemplo utiliza la matriz de nombres de meses previamente definida.

La primera instrucción asigna la fecha de hoy, en formato "Día Mes Fecha 00:00:00 Año"

, a la variable estoEsHoy.

*/

var estoEsHoy = new Date();

var hoy = new Date(); // Captura la fecha de hoy.

// Extrae el año, mes y día.

var esteAno = hoy.getYear() + 1900;

var esteMes = losMeses[hoy.getMonth()];

var esteDia = esteMes + " " + hoy.getDate() + "," + (parseInt(hoy.getYear()) + 1900);

// Determina el número de días transcurrido desde el inicio.

hoy = Math.round(Date.parse(esteDia)/8.64e7);

// Hace lo mismo con el principio del año.

var primerDia = "1 de enero de " + esteAno;

primerDia = Math.floor(Date.parse(primerDia)/8.64e7);

// Lo vuelve a hacer para el final del año, en caso de que sea un año bisiesto.

var ultimoDia = "31 de diciembre de " + esteAno;

ultimoDia = Math.floor(Date.parse(ultimoDia)/8.64e7);

// Calcula el número de días del año.

var diasEnAno = (ultimoDia - primerDia) + 1;

// Determina cuántos días han transcurrido y cuántos faltan.

var diasTranscurridos= esteDia - primerDia;

var diasFaltan = diasEnAno - diasTranscurridos;

// Establece comentarios para la mayor parte del año.

var comentario1 = diasTranscurridos+ " días han transcurrido en el año.";

var comentario2 = "Eso significa que faltan " + diasFaltan+ " dias para terminar el año

" + esteAno + ".";

// Cubre los casos especiales: inicio y final de año y un solo día.

if (diasTranscurridos == 0) {

comentario1 = "Es uno de enero, " + esteAno + ".";

}

if (diasTranscurridos == 1) {

comentario1 = "Sólo ha transcurrido un día.";

}

if(diasTranscurridos == diasEnAno) {

comentario1 = esteAno + " acaba de terminar.";

}

if (diasFaltan == 0) {

comentario2 = "Los mejores deseos en el nuevo año.";

}

if (diasFaltan == 1) {

comentario2 = "Sólo queda un día para terminar el año " + esteAno + ".";

}

if (diasFaltan == diasEnAno) {

comentario2 = "Feliz año nuevo.";

}

Page 93: Manual del Alumno - Instituto Wienertiempo de ejecución para VBScript. Microsoft está trabajando con varios grupos de Internet para definir el estándar de ActiveX Scripting de modo

Instituto Superior Tecnológico 93

Norbert Wiener Manual del Alumno

Objeto Number

Además de las propiedades numéricas especiales (por ejemplo PI) que están

disponibles en el objeto Math, muchas otras propiedades están disponibles en

Microsoft JScript a través del objeto Number.

Propiedad Descripción

MAX_VALUE El número más grande posible, alrededor de 1,79E+308; puede

ser positivo o negativo. (El valor varía ligeramente entre un

sistema y otro.)

MIN_VALUE El número más pequeño posible, alrededor de 2.22E-308; puede

ser positivo o negativo. (El valor varía ligeramente entre un

sistema y otro.)

NaN Valor no numérico especial, "no es un número".

POSITIVE_INFINITY Cualquier valor positivo mayor que Number.MAX_VALUE

se convierte automáticamente a este valor; representado como

"Inf".

NEGATIVE_INFINITY Cualquier valor negativo mayor que -Number.MAX_VALUE

se convierte automáticamente a este valor; representado como "-

Inf".

Number.NaN es una propiedad especial que se define como "no es un número".

Por ejemplo, una división por cero devuelve NaN. Si intenta analizar una cadena

que no se puede analizar como un número, también devuelve Number.NaN. Si

compara NaN con cualquier otro número o consigo mismo obtiene como resultado

que no son iguales. Para verificar que un resultado es igual a NaN, no compare el resultado con Number.NaN; utilice la función isNaN().

Page 94: Manual del Alumno - Instituto Wienertiempo de ejecución para VBScript. Microsoft está trabajando con varios grupos de Internet para definir el estándar de ActiveX Scripting de modo

Instituto Superior Tecnológico 94

Norbert Wiener Manual del Alumno

Semana 14 : Estructuras de control.

Control del Flujo del Programa

¿Por qué controlar el flujo de la ejecución?

Muy frecuentemente, es necesaria una secuencia de comandos para funciones

diferentes bajo diferentes condiciones. Por ejemplo, podría escribir una secuencia

de comandos que comprobara la hora cada hora y que cambiara algún parámetro

durante el transcurso del día. Podría escribir una secuencia de comandos que

acepta algún tipo de entrada y actúa de una u otra forma según la entrada

proporcionada. O podría escribir una secuencia de comandos que repita una acción

especificada.

Es posible comprobar muchos tipos de condiciones. Todas las comprobaciones

condicionales en Microsoft JScript son de tipo Boolean, por lo que el resultado de

cualquier comprobación es true o false. Puede comprobar valores numéricos, de tipo Boolean o cadenas indistintamente.

JScript proporciona estructuras de control para un amplio intervalo de posibilidades.

Las estructuras de control más sencillas son las instrucciones condicionales.

Usar instrucciones condicionales

JScript admite las instrucciones condicionales if e if...else. En las instrucciones if

se comprueba una condición y si la condición cumple la comprobación, se ejecuta

algún código de JScript que haya escrito. (En la instrucción if...else, se ejecuta un

código distinto si la condición no cumple la comprobación.) La forma más sencilla

de una instrucción if se puede escribir completamente en una sola línea, pero se

usan mucho más las instrucciones if e if...else de múltiples líneas.

Los siguientes ejemplos demuestran distintas sintaxis que puede usar con las

instrucciones if e if...else. El primer ejemplo muestra el tipo de comprobación

Boolean más sencillo. Si (y sólo si) el elemento encerrado entre paréntesis da como

resultado true, se ejecuta la instrucción o el bloque de instrucciones que sigue a la instrucción if.

// La función smash() se define en cualquier otra parte del código.

if (newShip)

smash(champagneBottle,bow); // Comprobación de tipo Boolean para

saber si newShip es true.

// En este ejemplo, la comprobación no se cumple a menos que ambas

condiciones sean verdaderas.

if (rind.color == "amarillo oscuro" && rind.texture == "arrugas

grandes y pequeñas")

{

laRespuesta = ("¿Es un melón? <br> ");

}

// En este ejemplo, la comprobación se cumple si cualquiera de las

condiciones es verdadera.

var laReaccion = "";

if ((PesoEnLibras > 15) || (PesoEnLibras > 45))

{

laReaccion = ("¡Qué lindo gatito! <br>");

}

Page 95: Manual del Alumno - Instituto Wienertiempo de ejecución para VBScript. Microsoft está trabajando con varios grupos de Internet para definir el estándar de ActiveX Scripting de modo

Instituto Superior Tecnológico 95

Norbert Wiener Manual del Alumno else

laReaccion = ("¡Es un gato enorme! <br>");

Operador condicional

JScript también admite una forma condicional implícita. Utiliza un signo de

interrogación después de la condición que va a comprobar (en lugar de la palabra if

antes de la condición) y especifica dos alternativas, una para usarla si la condición

se cumple y otra para usarla si no se cumple. Las alternativas están separadas por

dos puntos.

var horas = "";

// Código que especifica que la variable horas tiene el contenido de

// laHora o laHora - 12.

horas += (laHora >= 12) ? " p.m." : " a.m.";

Sugerencia Si tiene que comprobar varias condiciones juntas y sabe que alguna tiene más posibilidades

de cumplirse, o de no cumplirse, que las demás, dependiendo de si las comprobaciones están conectadas

OR (||) o con AND (&&), puede sacrificar la velocidad de ejecución de su secuencia de comandos

colocando esa condición primero en la instrucción condicional. Por ejemplo, si tres condiciones deben ser

verdaderas (usando operadores &&) y la segunda comprobación no se cumple, no se comprueba la tercera

condición.

De forma similar, si de varias condiciones, sólo una debe ser verdadera (usando operadores ||), la

comprobación se detiene cuando cualquier condición cumple la comprobación. Esto es particularmente

efectivo si las condiciones que desea comprobar implican la ejecución de llamadas a funciones o de otro

código.

Un ejemplo de los efectos secundarios de cortocircuito, es que en el siguiente ejemplo no se ejecutará

ejecutarsegundo si ejecutarprimero() devuelve 0 o false.

if ((ejecutarprimero() == 0) || (ejecutarsegundo() == 0)) // algún código

Usar repeticiones o bucles

Existen varias formas de ejecutar una instrucción o un bloque de instrucciones

repetidas veces. En general, la ejecución repetitiva se llama ejecución en bucle.

Normalmente se controla mediante la comprobación de alguna variable cuyo valor

cambia cada vez que se ejecuta el bucle. Microsoft JScript es compatible con

muchos tipos de bucles: for, for...in, while, do...while y switch.

Usar bucles for

La instrucción for especifica una variable de contador, una condición de

comprobación y una acción que actualiza el contador. Justo antes de cada ejecución

del bucle (esto se llama una iteración del bucle), se comprueba la condición.

Después de ejecutar el bucle, la variable de contador se actualiza antes de

comenzar la siguiente iteración.

Si nunca se cumple la condición del bucle, éste nunca se ejecuta. Si la condición del

bucle se cumple siempre, el bucle se convierte en un proceso infinito. Aunque es

posible que lo primero sea necesario en algunos casos, lo segundo, raramente lo

es. Por lo que debe tener cuidado al escribir las condiciones de sus bucles.

Page 96: Manual del Alumno - Instituto Wienertiempo de ejecución para VBScript. Microsoft está trabajando con varios grupos de Internet para definir el estándar de ActiveX Scripting de modo

Instituto Superior Tecnológico 96

Norbert Wiener Manual del Alumno

/*

La expresión de actualización ("icount++" en los siguientes ejemplos)

se ejecuta al final del bucle, después de que el bloque de instrucciones que

forman el

cuerpo del bucle se ejecuta y antes de comprobar la condición.

*/

var limite = 11; // Establece un límite de 11 en el bucle.

var suma = new Array(limite); // Crea una matriz llamada suma con 11

miembros, desde 0 hasta 10.

var laSuma = 0;

suma[0] = 0;

for(var icount = 1; icount < limite; icount++) { // En este caso,

cuenta desde 1 hasta 10.

laSuma += icount;

suma[icount] = laSuma;

}

var nuevaSuma = 0;

for(var icount = 1; icount > limite; icount++) { // Esto nunca se ejecuta.

nuevaSuma += icount;

}

var suma = 0;

for(var icount = 1; icount > 0; icount++) { // Esto es un bucle infinito.

suma += icount;

}

Usar bucles for...in

JScript proporciona un tipo de bucle especial para examinar una a una todas las

propiedades de un objeto. El contador del bucle en un bucle for...in itera por todos

los índices de la matriz. El contador es una cadena, no un número.

for (j in pastaVerde) // pastaVerde es un objeto con varias

propiedades

{

// Varias instrucciones de código JScript.

}

Usar bucles while

El bucle while es muy parecido a un bucle for. La diferencia es que un bucle while

no tiene incorporada una variable de contador o una expresión de actualización. Si

ya tiene alguna condición que cambia y que se refleja en el valor asignado a una

variable y desea usarla para controlar la ejecución repetitiva de una instrucción o

un bloque de instrucciones, utilice un bucle while.

var losMomentos = "";

var laCuenta = 42; // Inicia la variable de contador.

while (laCuenta >= 1) {

if (laCuenta > 1) {

losMomentos = "Sólo quedan " + laCuenta + " momentos.";

}

else {

losMomentos = "Sólo queda un momento.";

}

laCuenta--; // Actualiza la variable de contador.

}

losMomentos = "Terminó";

Page 97: Manual del Alumno - Instituto Wienertiempo de ejecución para VBScript. Microsoft está trabajando con varios grupos de Internet para definir el estándar de ActiveX Scripting de modo

Instituto Superior Tecnológico 97

Norbert Wiener Manual del Alumno Nota Debido a que los bucles while no tienen variables de contador explícitas incorporadas, todavía son

más vulnerables a crear bucles infinitos que otros tipos de bucles. Además, en parte porque no es

necesariamente fácil de descubrir dónde y cuándo se actualiza la condición del bucle, sólo es muy fácil

escribir un bucle while en el que la condición nunca se actualice. Debe tener mucha precaución al diseñar

bucles while.

Usar instrucciones break y continue

Microsoft JScript proporciona una instrucción para detener la ejecución de un bucle.

La instrucción break se puede usar para detener la ejecución si se cumple alguna

condición (que se supone una condición especial). La instrucción continue se

puede usar para pasar inmediatamente a la siguiente iteración, saltando el resto

del bloque de código pero actualizando la variable de contador como sucede si el

bucle es un bucle for o for...in.

var elComentario = "";

var elResto = 0;

var laSalida = 3;

var comprobar = 27;

for (kcuenta = 1; kcuenta <= 10; kcuenta++)

{

elResto = comprobar % kcuenta;

if (elResto == laSalida)

{

break; // Sale del bucle al encontrar el primer resto igual a

salida.

}

elComentario = comprobar + " dividido por " + kcuenta + " deja un resto igual

a " + elResto;

}

for (kcuenta = 1; kcuenta <= 10; kcuenta++)

{

elResto = comprobar % kcuenta;

if (elResto != laSalida)

{

continue; // Selecciona sólo los restos iguales a la salida, ignorando

todos los demás.

}

// Código de JScript que usa los restos seleccionados.

}

var losMomentos = "";

var laCuenta = 42; // Se inicia el contador.

while (laCuenta >= 1) {

// if (laCuenta < 10) { // Advertencia

// Este uso de continue crea un bucle infinito.

// continue;

// }

if (laCuenta > 1) {

losMomentos = "Sólo quedan " + laCuenta + " momentos.";

}

else {

losMomentos = "Sólo queda un momento.";

}

laCuenta--; // Se actualiza el contador.

}

laCuenta = "Terminó";

Page 98: Manual del Alumno - Instituto Wienertiempo de ejecución para VBScript. Microsoft está trabajando con varios grupos de Internet para definir el estándar de ActiveX Scripting de modo

Instituto Superior Tecnológico 98

Norbert Wiener Manual del Alumno

Semana 15 : Ventanas y modelo de objetos.

Objeto window

Es el objeto principal. Define la ventana sobre la que estamos trabajando y tiene

como descendientes los objetos referentes a la barra de tareas, el documento o la

secuencia de direcciones de la última sesión. Ahora veremos su métodos y

propiedades más usadas

open

[Variable=][window.]open("URL","Nombre","Propiedades");

El método open sirve para crear (y abrir) una nueva ventana. Si queremos tener

acceso a ella desde la ventana donde la creamos deberemos asignarle una variable,

si no simplemente invocamos el método: el navegador automáticamente sabrá que

pertenece al objeto window. El parámetro URL contendrá la dirección de la ventana

que estamos abriendo: si está en blanco, la ventana se abrirá con una página en

blanco. El Nombre será el que queramos que se utilize como parámetro de un

TARGET y las Propiedades son una lista separada por comas de algunos de los

siguientes elementos:

toolbar[=yes|no]

location[=yes|no]

directories[=yes|no]

status[=yes|no]

menubar[=yes|no]

scrollbars[=yes|no]

resizable[=yes|no]

width=pixels

height=pixels

Debemos tener cuidado con las propiedades que modifiquemos, es posible que

algunas combinaciones de los mismos no funcionen en todos los navegadores. El

Explorer 4, por ejemplo, da error ante la combinación toolbar=no, directories=no,

menubar=no.

close

Variable.close();

Cierra la ventana Variable.

A no ser que hayamos acabado de abrirla nosotros pedirá al usuario una ventana

para que decida él si quiere o no cerrarla.

Page 99: Manual del Alumno - Instituto Wienertiempo de ejecución para VBScript. Microsoft está trabajando con varios grupos de Internet para definir el estándar de ActiveX Scripting de modo

Instituto Superior Tecnológico 99

Norbert Wiener Manual del Alumno

alert

Variable.alert("Mensaje");

Muestra una ventana de diálogo en la ventana Variable con el mensaje

especificado.

status

Define la cadena de caracteres que saldrá en la barra de estado en un momento

dado.

defaultStatus Define la cadena de caracteres que saldrá por defecto en la barra de estado.

Cuando no la especificamos, defaultStatus será igual al último valor que tomó

status.

Objeto document

Es un objeto derivado de window que identifica a un documento HTML.

write

document.write("Cadena");

Escribe en un documento HTML, en el lugar del mismo donde hayamos situado el

script que contiene al mé:todo, la cadena dada. El método writeln hace lo

mismo, pero incluyendo al final un retorno de carro.

lastModified

Contiene la fecha y hora en que se modificó el documento por última vez y se suele

usar en conjunción con write para añadir al final del documento estas

características.

bgColor

Modifica el color de fondo del documento. El color deberá estar en el formato usado

en HTML. Es decir, puede ser red o FF0000.

Objeto history

Este objeto se deriva de document y contiene todas las direcciones que se han

visitado en la sesión actual. Tiene estos tres métodos:

o document.history.back(): Volver a la página anterior.

o document.history.forward(): Ir a la página siguiente.

o document.history.go(donde): Ir a donde se indique, siendo donde un

número tal que go(1)=forward() y go(-1)=back().

Page 100: Manual del Alumno - Instituto Wienertiempo de ejecución para VBScript. Microsoft está trabajando con varios grupos de Internet para definir el estándar de ActiveX Scripting de modo

Instituto Superior Tecnológico 100

Norbert Wiener Manual del Alumno

Objeto form

Este objeto derivado de document se refiere a un formulario. Puede ser útil para

verificarlos antes de enviarlos.

submit

Nombre.submit()

Envía el formulario llamando Nombre.

text

Contiene el texto contenido en un campo de edición de un formulario.

Objeto date

Este es un objeto de propósito general que permite trabajar con fechas y horas

Objeto math

Este otro objeto de propósito general incluye las diversas funciones matemáticas

más comunes, como abs o sin o el valor PI.

Objeto navigator

A través de este objeto podremos averiguar varias características del navegador

que usamos. Por ejemplo:

o navigator.appName: Nombre del navegador.

o navigator.appVer: Número principal de versión.

o navigator.language: Idioma del mismo.

o navigator.platform: Plataforma donde esta ejecutándose.

No podemos sobreescribir estos atributos, pero sí leerlos.

Objeto screen

Con este objeto podremos averiguar la configuración de la pantalla. Al igual que en

el anterior, todos sus atributos son de sólo lectura.

o screen.height: Altura..

o screen.width: Anchura.

o screen.pixelDepth: Número de bits por pixel.

Page 101: Manual del Alumno - Instituto Wienertiempo de ejecución para VBScript. Microsoft está trabajando con varios grupos de Internet para definir el estándar de ActiveX Scripting de modo

Instituto Superior Tecnológico 101

Norbert Wiener Manual del Alumno

Eventos

Un evento, como su mismo nombre indica, es algo que ocurre. Para que una rutina

nuestra se ejecute sólo cuando suceda algo extraño deberemos llamarla desde un

controlador de eventos. Estos controladores se asocian a un elemento HTML y se

incluyen así:

<A HREF="http://home.netscape.com" onMouseOver="MiFuncion()">

Lista de Eventos

Aquí se expone una pequeña guía de eventos definidos en JavaScript :

Evento Descripción Elementos que lo admiten

onLoad Terminar de cargarse una página <BODY...>

<FRAMESET...>

<LAYER...>

onUnLoad Salir de una página (descargarla) <BODY...><FRAMESET...>

<LAYER...>

onMouseOver Pasar el ratón por encima <A HREF..>

<AREA...>

<LAYER...>

onMouseOut Que el ratón deje de estar encima <A HREF..>

<AREA...>

<LAYER...>

onSubmit Enviar un formulario <FORM...>

onClick Pulsar un elemento <INPUT TYPE="button, checkbox, link,

radio"...>

onBlur Perder el cursor <INPUT TYPE="text"...>

<TEXTAREA...>

<LAYER...>

onChange Cambiar de contenido o perder el

cursor <INPUT TYPE="text"...>

<TEXTAREA...>

onFocus Conseguir el cursor <INPUT TYPE="text"...>

<TEXTAREA...>

<LAYER...>

onSelect Seleccionar texto <INPUT TYPE="text"...>

<TEXTAREA...>

Un ejemplo

Como ejemplo, vamos a hacer que una ventana aparezca automáticamente en

cuanto pasemos un cursor por encima de un elemento <A> (e impidiendo, de paso,

que quien esté viendo la página pueda hacer uso del mismo).

<HTML>

<HEAD>

<SCRIPT LANGUAGE="JavaScript">

<!-- Se usan los comentarios para esconder el código a navegadores sin

JavaScript

Page 102: Manual del Alumno - Instituto Wienertiempo de ejecución para VBScript. Microsoft está trabajando con varios grupos de Internet para definir el estándar de ActiveX Scripting de modo

Instituto Superior Tecnológico 102

Norbert Wiener Manual del Alumno function Alarma() {

alert("No me pises, que llevo chanclas");

return true;

}

// -->

</SCRIPT>

</HEAD>

<BODY>

<A HREF="eventos.html" onMouseOver="Alarma()">

Pasa por aquí encima

</A>

</BODY>

</HTML>

Objeto event

Este objeto permite la identificación de un evento con el atributo type y su

localizacion con x e y, entre otras cosas. Así, por ejemplo, podríamos hacer: <A HREF="http://home.netscape.com" onMouseOut='alert("Hubo un evento

"+event.type+" en el enlace.")'>

Pasa por aquí encima y cuando te vayas saldrá la ventanita

</A>

Su importancia radica en el hecho de que se puede usar para capturar toda clase

de eventos por medio de la función captureEvents(e). El argumento de esta

función es una propiedad del objeto event que indica el tipo de eventos que

desees capturas de este modo:

captureEvents(event.CLICK | event.MOUSEOVER | event.BLUR)

que permitiría la captura de todos los eventos onLoad, onMouseOver y onBlur.

El único uso que le he encontrado a estas posibilidades está en la creación de

objetos nuevos, que de este modo tendrían un control de eventos propio.

Page 103: Manual del Alumno - Instituto Wienertiempo de ejecución para VBScript. Microsoft está trabajando con varios grupos de Internet para definir el estándar de ActiveX Scripting de modo

Instituto Superior Tecnológico 103

Norbert Wiener Manual del Alumno

Semana 16 : HTML Dinámico.

DHTML

DHTML no es precisamente un lenguaje de programación. Más bien se trata de una

nueva capacidad de la que disponen los navegadores modernos, por la cual se

puede tener un mayor control sobre la página que antes.

Cualquier página que responde a las actividades del usuario y realiza efectos y

funcionalidades se puede englobar dentro del DHTML, pero en este caso nos

referimos más a efectos en el navegador por los cuales se pueden mostrar y ocultar

elementos de la página, se puede modificar su posición, dimensiones, color, etc.

DHTML nos da más control sobre la página, gracias a que los navegadores

modernos incluyen una nueva estructura para visualizar en páginas web

denominada capa. Las capas se pueden ocultar, mostrar, desplazar, etc.

Para realizar las acciones sobre la página, como modificar la apariencia de una

capa, seguimos necesitando un lenguaje de programación del lado del cliente como Javascript o VBScript.

Dentro del concepto de DHTML se engloban también las Hojas de Estilo en

Cascada o CSS (Cascade Style Sheets), que veremos a continuación.

Qué es CSS CSS, es una tecnología que nos permite crear páginas web de una manera más

exacta. Gracias a las CSS somos mucho más dueños de los resultados finales de la

página, pudiendo hacer muchas cosas que no se podía hacer utilizando solamente

HTML, como incluir márgenes, tipos de letra, fondos, colores...

CSS son las siglas de Cascading Style Sheets, en español Hojas de estilo en

Cascada. En este reportaje vamos a ver algunos de los efectos que se pueden crear

con las CSS sin necesidad de conocer la tecnología entera.

Para empezar

Las Hojas de Estilo en Cascada se escriben dentro del código HTML de la página

web, solo en casos avanzados se pueden escribir en un archivo a parte y enlazar la

página con ese archivo. En un principio vamos a utilizar la manera más directa de

aplicar estilos a los elementos de la página, mas adelante veremos la declaración

en archivos externos. Para ello, y esto es la primera lección de este artículo, vamos

a conocer un nuevo atributo que se puede utilizar en casi todas las etiquetas HTML:

style.

Ejemplo:

<p style="color:green;font-weight:bold">El párrafo saldrá con color verde y en negrita</p>

Dentro del atributo style se deben indicar los atributos de estilos CSS separados por

punto y coma (;). Durante este artículo vamos a conocer muchos atributos de CSS,

los dos primeros que hemos visto aquí son:

Page 104: Manual del Alumno - Instituto Wienertiempo de ejecución para VBScript. Microsoft está trabajando con varios grupos de Internet para definir el estándar de ActiveX Scripting de modo

Instituto Superior Tecnológico 104

Norbert Wiener Manual del Alumno

Color: indica el color del contenido la etiqueta donde estemos utilizándolo,

generalmente indica el color del texto.

Font-weight: indica el grosor del texto. Bold sirve para poner en negrita.

Color en los enlaces

Con HTML definimos el color de los enlaces en la etiqueta <body>, con lo atributos

link, vlink y alink. Esto nos permite cambiar el color de los enlaces para todo el

documento, pero ¿Y si queremos cambiar el color de un enlace en concreto, para

que tenga otro color que el definido en la etiqueta <body>?

Para hacer esto utilizaremos el atributo style dentro del enlace:

<a href="mienlace.html" style="color:red">

Así saldrá el enlace en color rojo, independientemente de lo definido para todo el

documento.

Espaciado entre líneas

Con CSS podemos definir el espacio que hay entre cada línea del documento,

utilizando el atributo line-height. Por ejemplo, podemos definir que para todo un

párrafo el espacio entre cada una de sus líneas sea 25 pixels:

<p style="line-height: 25px;"> Un párrafo normal en el que cada una de las líneas está separada 25 pixels de la otra. Hay que poner suficiente texto como para que se vean 2 líneas, así saldrán separadas </p>

Espaciado entre caracteres

Se puede definir también el espacio entre cada carácter. Esto se hace con el

atributo de CSS letter-spacing. Veamos un ejemplo:

<p style="letter-spacing:12cm"> Este párrafo tiene las letras espaciadas por 1 centímetro. </p>

Este atributo, al igual que ocurre con muchos otros de CSS, no está soportado por

todos los navegadores. En concreto Netscape, en su versión 4 todavía no lo incluye.

Enlaces sin subrayado

Uno de los efectos más significativos y fáciles de realizar con CSS es eliminar el

subrayado de los enlaces de una página web. Existe un atributo que sirve para

definir la decoración de un texto, si está subrayado, tachado, o si no tiene ninguna

de estas "decoraciones". Es el atributo text-decoration, en este caso indicaremos en

un enlace que no queremos decoración:

<a href="mipagina.html" style="text-decoration:none">

Incluir estilos para todo un sitio web

Una de las características más potentes de la programación con hojas de estilo

Page 105: Manual del Alumno - Instituto Wienertiempo de ejecución para VBScript. Microsoft está trabajando con varios grupos de Internet para definir el estándar de ActiveX Scripting de modo

Instituto Superior Tecnológico 105

Norbert Wiener Manual del Alumno

consiste en definir los estilos de todo un sitio web. Esto se consigue creando un

archivo donde tan sólo colocamos las declaraciones de estilos de la página y

enlazando todas las páginas del sitio con ese archivo. De este modo, todas las

páginas comparten una misma declaración de estilos y, por tanto, si la cambiamos,

cambiarán todas las páginas.

Veamos ahora todo el proceso para incluir estilos con un fichero externo.

1- Creamos el fichero con la declaración de estilos

Es un fichero de texto normal, que puede tener cualquier extensión, aunque le

podemos asignar la extensión .css para aclararnos qué tipo de archivo es. El texto

que debemos incluir debe ser escrito exclusivamente en sintaxis CSS, es un poco

distinta que la sintaxis que utilizamos dentro del atributo style. Sería erróneo incluir

código HTML en este archivo: etiquetas y demás. Podemos ver un ejemplo a

continuación.

P { font-size : 12pt; font-family : arial,helvetica; font-weight : normal; } H1 { font-size : 36pt; font-family : verdana,arial; text-decoration : underline; text-align : center; background-color : Teal; } BODY { background-color : #006600; font-family : arial; color : White; }

2- Enlazamos la página web con la hoja de estilos

Para ello vamos a colocar la etiqueta <LINK> con los atributos

rel="STYLESHEET" indicando que el enlace es con una hoja de estilo.

type="text/css" porque el archivo es de texto, en sintaxis CSS.

href="estilos.css" indica el nombre del fichero fuente de los estilos.

Veamos una página web entera que enlaza con la declaración de estilos anterior:

<html> <head> <link rel="STYLESHEET" type="text/css" href="estilos.css"> <title>Página que lee estilos</title> </head> <body> <h1>Página que lee estilos</h1> <p> Esta página tiene en la cabecera la etiqueta necesaria para enlazar con la hoja de estilos. Es muy fácil. </p> </body> </html>

Las CSS tienen mucho más jugo

Las Hojas de Estilo en Cascada son un estándar muy amplio, con unas

especificaciones y posibilidades muy grandes. En este artículo hemos visto unos

cuantos efectos interesantes que realizar aunque no tengamos ningún conocimiento

previo. Sin embargo, lo mejor para trabajar con esta tecnología es conocerla bien,

gracias a ello, los resultados serán mucho más sorprendentes.

Page 106: Manual del Alumno - Instituto Wienertiempo de ejecución para VBScript. Microsoft está trabajando con varios grupos de Internet para definir el estándar de ActiveX Scripting de modo

Instituto Superior Tecnológico 106

Norbert Wiener Manual del Alumno

Semana 17 : JavaScript : Animación.

ANIMACIONES

La animación en JavaScript puede ser de texto, imágenes o ambas cosas interactuando. En todos los casos para conseguirla se trabaja del mismo modo.

Lo primero que tendremos que hacer es preparar las etiquetas del texto o de la

imagen dandoles un nombre (con los mismos requisitos que las variables) por

medio del atributo name en caso de las imágenes e id en caso de texto. De esta

manera podremos hacer referencia al elemento deseado desde la función encargada de ejecutar la animación.

A continuación, añadiremos el evento con la llamada a la función (si es necesario,

en muchas ocasiones se llama a la función por medio del método setTimeout que veremos en un momento).

El último cambio que afecta a las etiquetas del texto o de la imagen afecta a los

estilos. Por tanto tendremos que añadir obligatoriamente el atributo style con todos

aquellos estilos que intervengan en la animación. De entre todos los estilos que existen, podemos destacar los que hay en la siguiente tabla.

ESTILOS

SINTAXIS DESCRIPCIÓN

style="Position:absolute;top:pos;left:pos" Posibilita el cambio de posición.

style="color:nombre_color" Posibilita el cambio de color.

style="visibility:hidden o visible" Posibilita mostrar y ocultar.

Recordar que si trabajamos con varios estilos todos se incluyen dentro de un

atributo style.

Una vez construida y modificada la o las etiquetas, las variaciones que sufran sus

etilos o cualquier otro de sus atributos se realizarán en la función que tengamos preparada para ello. Para todos los cambios que realicemos la sintaxis a seguir es:

SINTAXIS:

nombre_etiqueta.style.estilo=valor;

nombre_etiqueta.atributo=valor;

Si nuestra animación avanza según un intervalo de tiempo, debemos utilizar el

método setTimeout() para establecer el intervalo de tiempo y la llamada a la

función. Este método se puede utilizar en cualquier parte del código, pero

normalmente se encuentra al principio del código y dentro de la función donde se

realiza cada uno de los pasos de nuestra animación. La sintaxis del método es (recordar respetar mayúsculas y minúsculas):

Page 107: Manual del Alumno - Instituto Wienertiempo de ejecución para VBScript. Microsoft está trabajando con varios grupos de Internet para definir el estándar de ActiveX Scripting de modo

Instituto Superior Tecnológico 107

Norbert Wiener Manual del Alumno

SINTAXIS:

setTimeout("nombre_función()",intervalo milisegundos);

EJEMPLOS

EJEMPLO 1: Texto con movimiento en horizontal.

<html>

<head>

<script>

var horizontal=12;

setTimeout("mueve()",500);

function mueve()

{

horizontal+=10;

TEXTO1.style.left=horizontal;

if(horizontal>=200)

horizontal=12;

setTimeout("mueve()",500);

}

</script>

</head>

<body>

<p id="TEXTO1" style="position:absolute; top:16; left:12">

TEXTO

</p>

</body>

</html>

EJEMPLO 2: Texto que aparece y desaparece.

<html>

<head>

<script>

var estado=true;

setTimeout("ver()",500);

function ver()

{

estado=!estado;

if(estado==true)

TEXTO1.style.visibility="visible";

else

TEXTO1.style.visibility="hidden";

setTimeout("ver()",500);

}

</script>

</head>

<body>

<p id="TEXTO1" style="visibility:visible">TEXTO</p>

</body>

</html>

EJEMPLO 3: Imagen que cambia cuando entra y sale el ratón.

<html>

<head>

Page 108: Manual del Alumno - Instituto Wienertiempo de ejecución para VBScript. Microsoft está trabajando con varios grupos de Internet para definir el estándar de ActiveX Scripting de modo

Instituto Superior Tecnológico 108

Norbert Wiener Manual del Alumno <script>

function pasa(valor)

{

if(valor==1)

img.src="ten1.gif"

else

img.src="ten2.gif"

}

</script>

</head>

<body>

<img name="img" src="ten2.gif" onMouseOver=pasa(1); onMouseOut=pasa(2);>

</body>

</html>

EJEMPLO 4: Imágenes que van cambiando solas.

<html>

<head>

<script>

var estado=true;

setTimeout("cambio()",500);

function cambio()

{

estado=!estado;

if(estado==true)

img.src="tenista1.gif"

else

img.src="tenista2.gif"

setTimeout("cambio()",500);

}

</script>

</head>

<body>

<img name="img" src="tenista1.gif">

</body>

</html>

EJEMPLO 5: Cambiamos la imagen según situemos el ratón en un texto o

en otro.

<html>

<head>

<script>

function imag(valor)

{

if(valor==1)

img.src="tenista1.gif"

else

img.src="tenista2.gif"

}

</script>

</head>

<body>

<table border="1" width="15%">

<tr>

<td width="100%"><p onMouseOver=imag(1);>IMAGEN 1</td>

</tr>

Page 109: Manual del Alumno - Instituto Wienertiempo de ejecución para VBScript. Microsoft está trabajando con varios grupos de Internet para definir el estándar de ActiveX Scripting de modo

Instituto Superior Tecnológico 109

Norbert Wiener Manual del Alumno <tr>

<td width="100%"><p onMouseOver=imag(2);>IMAGEN 2</td>

</tr>

</table>

<br>

<img name="img" src="tenista1.gif">

</body>

</html>

EJEMPLO 6: Cambiar la imagen por medio de un control. En este caso una lista (select). Es igual que en el caso anterior. Lo único que cambia es el evento que gestiona la llamada a la función.

<html>

<head>

<script>

function cambio(valor)

{

if(valor=="imagen1")

img.src="tenista1.gif"

else

img.src="tenista2.gif"

}

</script>

</head>

<body>

<select size="3" name="lista" onChange=cambio(value);>

<option value="imagen1">Imagen 1</option>

<option value="imagen2">Imagen 2</option>

</select>

<br>

<img name="img" src="tenista1.gif">

</body>

</html>

EJEMPLO 7: Una imagen moviéndose en vertical automáticamente.

<html> <head> <script> var vertical=35; var ida=true; setTimeout("mover()",200); function mover() { if(vertical<=200 && ida==true) vertical+=10; else { vertical-=10; ida=false; if(vertical<=35) ida=true; } img.style.top=vertical; setTimeout("mover()",200); } </script> </head> <body> <img name="img" src="pic.gif" style="position:absolute; left:12; top:35"> </body> </html>

Page 110: Manual del Alumno - Instituto Wienertiempo de ejecución para VBScript. Microsoft está trabajando con varios grupos de Internet para definir el estándar de ActiveX Scripting de modo

Instituto Superior Tecnológico 110

Norbert Wiener Manual del Alumno

Semana 18 : Aplicación Web.

Cookies

Parece más que necesario definir algo que lleva el absurdo nombre de galletita o

cookie. Una galleta es un elemento de una lista que se guarda en el fichero

cookies.txt en el ordenador del visitante. Cada elemento de esa lista tiene dos

campos obligatorios: el nombre y su valor; y uno opcional: la fecha de caducidad.

Este último campo sirve para establecer la fecha en la que se borrará la galleta.

Tiene este formato:

nombre=valor;[expires=caducidad;]

Sólo el servidor que ha enviado al usuario una determinada cookie puede

consultarla. Cada galleta tiene un tamaño máximo de 4 Kb y puede haber un

máximo de 300 cookies en el disco duro. Cada servidor podrá almacenar como

mucho 20 galletas en el fichero cookies.txt (en el caso de usar Netscape) o en el

directorio cookies (si utilizamos Explorer) del usuario. Si no especificamos la fecha

de caducidad la galleta se borrará del disco duro del usuario en cuanto éste cierre

el navegador.

Funciones básicas

Para poder hacer algo con cookies deberemos programar dos funciones: una que se

encargue de mandar una galleta al usuario y otra que consulte su contenido.

function mandarGalleta(nombre, valor, caducidad) {

document.cookie = nombre + "=" + escape(valor)

+ ((caducidad == null) ? "" : ("; expires=" + caducidad.toGMTString()))

}

Con esta función mandamos una galleta. Vemos que el valor es codificado por

medio de la función escape y que la caducidad (en caso de decidir ponerla) debe

ser convertida a formato GMT. Esto se hace mediante el metodo toGMTString() del

objeto Date.

function consultarGalleta(nombre) {

var buscamos = nombre + "=";

if (document.cookie.length > 0) {

i = document.cookie.indexOf(buscamos);

if (i != -1) {

i += buscamos.length;

j = document.cookie.indexOf(";", i);

if (j == -1)

j = document.cookie.length;

return unescape(document.cookie.substring(i,j));

}

}

}

Page 111: Manual del Alumno - Instituto Wienertiempo de ejecución para VBScript. Microsoft está trabajando con varios grupos de Internet para definir el estándar de ActiveX Scripting de modo

Instituto Superior Tecnológico 111

Norbert Wiener Manual del Alumno

Declaramos la variable buscamos que contiene el nombre de la galleta que

queremos buscar más el igual que se escribe justo después de cada nombre, para

que así no encontremos por error un valor o una subcadena de otro nombre que

sea igual al nombre de la galleta que buscamos. Una vez encontrada extraemos la

subcadena que hay entre el igual que separa el nombre y el valor y el punto y coma

con que termina dicho valor.

Un ejemplo Vamos a ver un ejemplo. Utilizaremos una galleta llamada

VisitasAlCursoDeJavaScript para guardar el número de veces que has visitado este curso:

<HTML> <HEAD> <SCRIPT LANGUAGE="JavaScript"> <!-- Se usan los comentarios para esconder el código a navegadores sin JavaScript function Contador() { var fecha=new Date (99, 12, 31); // La fecha de caducidad es 31 de diciembre del 1999 if (!(num=consultarGalleta("VisitasAlCursoDeJavaScript"))) num = 0; num++; mandarGalleta("VisitasAlCursoDeJavaScript", num, fecha); if (num==1) document.write("esta es la primera vez que lees este capítulo."); else { document.write("has visitado este curso "+num+" veces."); } } // --> </SCRIPT> </HEAD> <BODY>

Por lo que veo, <SCRIPT LANGUAGE="JavaScript"> <!-- Contador(); // --> </SCRIPT> </BODY> </HTML>

La función consulta el valor de la galleta incrementandolo y, si no existe, lo pone a

uno. Luego escribe en el documento el número de veces que has visitado el curso

Semana 19 : (Examen Final).

Semana 20 : (Examen Sustitutorio).