You are on page 1of 113

INSTITUTO SUPERIOR TECNOLGICO

NORBERT WIENER
Manual del Alumno
ASIGNATURA:
Aplicativos V
(Visual Basic Script y
Javascript)
PROGRAMA: S3C
Lima-Per
Manual del Alumno
INDICE
Introduccin...................................................................................................................................................7
ActiveX Scripting......................................................................................................................................7
VBScript en otras aplicaciones y exploradores.........................................................................................7
INTERRETA!I"N.................................................................................................................................7
!#$I%A!I"N........................................................................................................................................&
Agregar cdigo de VBScript a una p'gina (T$%........................................................................................&
%a eti)ueta *S!RIT+..............................................................................................................................,
Tipos de datos de VBScript..........................................................................................................................--
.!u'les son los tipos de datos de VBScript/...........................................................................................--
Su0tipos de Variant..................................................................................................................................--
Varia0les de VBScript..................................................................................................................................-1
.2u3 es una varia0le/..............................................................................................................................-1
4eclaracin de varia0les..........................................................................................................................-1
Restricciones de no50re..........................................................................................................................-6
Alcance y vida de las varia0les................................................................................................................-6
Asignacin de valores a varia0les............................................................................................................-6
!onstantes de VBScript...............................................................................................................................-7
.2u3 es una constante/............................................................................................................................-7
!reacin de constantes.............................................................................................................................-7
Varia0les escalares y varia0les de 5atrices.................................................................................................-8
Instruccin 4i5...........................................................................................................................................-9
4escripcin..............................................................................................................................................-9
Sintaxis : 4i5 no50redevaria0le;<;su0=ndices>?>;@ no50redevaria0le;<;su0=ndices>?>> . . ................-9
!o5entarios.............................................................................................................................................-9
#peradores de VBScript..............................................................................................................................-&
rioridad de los operadores......................................................................................................................-&
#peradores de VBScript..............................................................................................................................-,
Aunciones.....................................................................................................................................................-,
Auncin A0s.............................................................................................................................................-,
Auncin Array..........................................................................................................................................-,
Auncin Asc.............................................................................................................................................1B
Instruccin !all........................................................................................................................................1B
Auncin !Bool.........................................................................................................................................1B
Auncin !Byte.........................................................................................................................................1-
Auncin !!ur...........................................................................................................................................1-
Auncin !4ate.........................................................................................................................................11
Auncin !40l...........................................................................................................................................11
Auncin !Cr.............................................................................................................................................11
Auncin !Int............................................................................................................................................16
Auncin !%ng..........................................................................................................................................16
Auncin !Sng..........................................................................................................................................17
Auncin !Str............................................................................................................................................17
Auncin Exp.............................................................................................................................................18
Aunciones Int y Aix..................................................................................................................................18
Auncin Det#0Eect...................................................................................................................................18
Auncin (our...........................................................................................................................................17
Auncin Is4ate.........................................................................................................................................17
Auncin %Bound......................................................................................................................................1&
Auncin %!ase.........................................................................................................................................1&
Auncin %eFt.............................................................................................................................................1&
Auncin %en.............................................................................................................................................1&
Auncin %oadicture................................................................................................................................1,
Aunciones %Tri5@ RTri5 y Tri5..............................................................................................................1,
Auncin $id.............................................................................................................................................1,
Auncin $inute........................................................................................................................................6B
Auncin $ontC.........................................................................................................................................6B
Auncin $ontCNa5e...............................................................................................................................6B
Manual del Alumno
Auncin NoG...........................................................................................................................................6-
Auncin RDB...........................................................................................................................................6-
Auncin RigCt..........................................................................................................................................6-
Auncin Rnd.............................................................................................................................................61
Auncin Round.........................................................................................................................................66
Auncin Second........................................................................................................................................66
Auncin Sgn.............................................................................................................................................66
Auncin Space..........................................................................................................................................67
Auncin S)r..............................................................................................................................................67
Auncin String..........................................................................................................................................67
Auncin HBound......................................................................................................................................68
Auncin H!ase.........................................................................................................................................68
Auncin VarType......................................................................................................................................69
Auncin IeeJday.....................................................................................................................................69
Auncin IeeJdayNa5e...........................................................................................................................67
Auncin Kear............................................................................................................................................6&
rocedi5ientos de VBScript........................................................................................................................6,
Tipos de procedi5ientos..........................................................................................................................6,
rocedi5ientos Su0.....................................................................................................................................6,
Instruccin Su0........................................................................................................................................6,
rocedi5ientos Aunction.............................................................................................................................7B
Instruccin Aunction................................................................................................................................7-
#0tencin de datos dentro y Fuera de procedi5ientos.................................................................................76
Hso de los procedi5ientos Su0 y Aunction en cdigo.................................................................................76
Hso de instrucciones condicionales.............................................................................................................77
!ontrol de la eEecucin del progra5a..........................................................................................................77
To5a de decisiones utiliLando IF ... TCen ... Else........................................................................................77
Instruccin IF...TCen...Else.......................................................................................................................77
EEecucin de instrucciones si una condicin es True...............................................................................78
EEecucin de ciertas instrucciones si la condicin es True y eEecucin de otras si es Aalse....................78
4ecisin entre varias alternativas............................................................................................................79
To5a de decisiones utiliLando Select !ase.................................................................................................79
Instruccin Select !ase................................................................................................................................77
Bucles 5ediante cdigo...............................................................................................................................7&
Hso de 0ucles para repetir cdigo................................................................................................................7&
Hso de 0ucles 4o.........................................................................................................................................7&
Instruccin 4o...%oop..............................................................................................................................7&
Repeticin de instrucciones 5ientras una condicin es True......................................................................7,
Repeticin de una instruccin Casta )ue una condicin pasa a ser True.....................................................8B
Salida de una instruccin 4o ... %oop desde dentro del 0ucle.....................................................................8B
Hso de ICile ... Iend.................................................................................................................................8-
Instruccin ICile...Iend........................................................................................................................8-
Hso de Aor ... Next.......................................................................................................................................8-
Instruccin Aor...Next..............................................................................................................................81
Hso de Aor EacC...Next................................................................................................................................86
Instruccin Aor EacC...Next.....................................................................................................................87
#perador de !oncatenacin M....................................................................................................................89
#perador N...................................................................................................................................................89
#peradores de co5paracin.........................................................................................................................87
Auncin InStr...........................................................................................................................................8,
Auncin IsNu5eric..................................................................................................................................8,
Aor5ateo de NO5eros..................................................................................................................................9B
Auncin Aor5atNu50er...........................................................................................................................9B
Auncin Aor5at!urrency.........................................................................................................................9-
Auncin Aor5atercent............................................................................................................................96
InputBoxes y $essage Box.........................................................................................................................97
Auncin InputBox....................................................................................................................................97
Auncin $sgBox.....................................................................................................................................98
Auncin 4ate............................................................................................................................................9&
Manual del Alumno
Auncin 4ateAdd.....................................................................................................................................9&
Auncin 4ate4iFF.....................................................................................................................................9,
Auncin 4ay.............................................................................................................................................7B
Auncin Ti5e...........................................................................................................................................7B
Auncin Ti5eSerial..................................................................................................................................7-
Auncin Ti5eValue..................................................................................................................................7-
Tipos de eventos..........................................................................................................................................7-
Eventos de ratn.......................................................................................................................................7-
Eventos de teclado...................................................................................................................................71
Eventos de enFo)ue..................................................................................................................................71
Eventos de For5ulario..............................................................................................................................71
Eventos de carga de p'gina......................................................................................................................71
$odelo de #0Eetos.......................................................................................................................................76
Evento on$ouse#ver..........................................................................................................................76
#0Eeto For5..............................................................................................................................................78
#0Eeto GindoG.........................................................................................................................................78
#0Eeto docu5ent......................................................................................................................................79
#0Eeto For5..............................................................................................................................................77
#0Eeto location.........................................................................................................................................77
#0Eeto navigator......................................................................................................................................77
#0Eeto Cistory..........................................................................................................................................7&
Introduccin a Pava Script............................................................................................................................7,
Escritura de !digo en Pava Script..............................................................................................................7,
Instrucciones............................................................................................................................................7,
!o5entarios.............................................................................................................................................&B
Asignaciones e igualdad..........................................................................................................................&B
Expresiones..............................................................................................................................................&B
!aracteristicas..............................................................................................................................................&-
4iFerencia con PAVA....................................................................................................................................&-
rincipales aplicaciones...............................................................................................................................&-
4onde incluirlo............................................................................................................................................&1
En el cuerpo del docu5ento.....................................................................................................................&1
En arcCivo aparte.....................................................................................................................................&1
Hsando 5aneEadores de evento................................................................................................................&1
(aciendo una lla5ada a Funcin..............................................................................................................&6
Varia0les de Pava Script...............................................................................................................................&7
4eclarar varia0les....................................................................................................................................&7
No50rar varia0les....................................................................................................................................&7
!onversin...............................................................................................................................................&8
Tipos de 4atos.............................................................................................................................................&9
.2u3 son los tipos de datos de PScript/...................................................................................................&9
Tipo de dato !adena................................................................................................................................&9
Tipo de dato nu53rico.............................................................................................................................&9
Tipo Boolean............................................................................................................................................&7
Tipo de dato no deFinido..........................................................................................................................&7
Tipo de dato Null.....................................................................................................................................&7
#peradores de Pava Script............................................................................................................................&&
recedencia de operadores.......................................................................................................................&&
Arreglos y !adenas......................................................................................................................................,B
Indexacin de 5atrices............................................................................................................................,B
ReFerencias a 5atrices.............................................................................................................................,B
#0Eetos Intr=nsecos......................................................................................................................................,-
#0Eeto Array............................................................................................................................................,-
#0Eeto String............................................................................................................................................,1
#0Eeto $atC.............................................................................................................................................,1
#0Eeto 4ate..............................................................................................................................................,1
#0Eeto Nu50er........................................................................................................................................,7
!ontrol del AluEo del rogra5a...................................................................................................................,8
.or )u3 controlar el FluEo de la eEecucin/.............................................................................................,8
Manual del Alumno
Hsar instrucciones condicionales.............................................................................................................,8
#perador condicional...............................................................................................................................,9
Hsar repeticiones o 0ucles.......................................................................................................................,9
Hsar 0ucles For.........................................................................................................................................,9
Hsar 0ucles For...in...................................................................................................................................,7
Hsar 0ucles GCile.....................................................................................................................................,7
Hsar instrucciones 0reaJ y continue........................................................................................................,&
#0Eeto GindoG.............................................................................................................................................,,
open..........................................................................................................................................................,,
close.........................................................................................................................................................,,
alert........................................................................................................................................................-BB
status......................................................................................................................................................-BB
deFaultStatus...........................................................................................................................................-BB
#0Eeto docu5ent........................................................................................................................................-BB
Grite.......................................................................................................................................................-BB
last$odiFied...........................................................................................................................................-BB
0g!olor..................................................................................................................................................-BB
#0Eeto Cistory............................................................................................................................................-BB
#0Eeto For5................................................................................................................................................-B-
su05it.....................................................................................................................................................-B-
text.........................................................................................................................................................-B-
#0Eeto date.................................................................................................................................................-B-
#0Eeto 5atC................................................................................................................................................-B-
#0Eeto navigator........................................................................................................................................-B-
#0Eeto screen.............................................................................................................................................-B-
Eventos.......................................................................................................................................................-B1
%ista de Eventos.....................................................................................................................................-B1
Hn eEe5plo.............................................................................................................................................-B1
#0Eeto event...............................................................................................................................................-B6
4(T$%.....................................................................................................................................................-B7
2u3 es !SS................................................................................................................................................-B7
ANI$A!I#NES.......................................................................................................................................-B7
ESTI%#S...............................................................................................................................................-B7
EPE$%#S............................................................................................................................................-B&
!ooJies......................................................................................................................................................--1
Aunciones 0'sicas.......................................................................................................................................--1
Hn eEe5plo.................................................................................................................................................--6
Manual del Alumno
Semana 1 : VBScript y la Web

Introduccin

$icrosoFt Visual Basic Scripting Edition@ el 5ie50ro 5's reciente de la Fa5ilia de lenguaEes de
progra5acin Visual Basic@ su5inistra una auto5atiLacin activa a una a5plia variedad de entornos@
incluidas las secuencias de co5andos del cliente de Ie0 en $icrosoFt Internet Explorer y las secuencias
de co5andos del servidor de Ie0 en $icrosoFt Internet InFor5ation Server.
Si ya conoce Visual Basic o Visual Basic For Applications@ VBScript le ser' 5uy Fa5iliar. Incluso si no
conoce Visual Basic@ una veL )ue lo Caya aprendido podr' progra5ar con toda la Fa5ilia de lenguaEes
Visual Basic.
ActiveX Scripting
VBScript se co5unica con las aplicaciones de Cost 5ediante ActiveXQ Scripting. !on ActiveX
Scripting@ evita )ue los exploradores y otras aplicaciones Cost necesiten escri0ir cdigo especial de
integracin para cada co5ponente de la secuencia de co5andos. ActiveX Scripting per5ite a un Cost
co5pilar una secuencia de co5andos@ o0tener y lla5ar puntos de entrada@ y ad5inistrar el espacio de
no50res disponi0le para el progra5ador. !on ActiveX Scripting@ los distri0uidores de lenguaEes pueden
crear run ti5es de lenguaEe est'ndar para la secuencia de co5andos. $icrosoFt proporcionar' soporte de
tie5po de eEecucin para VBScript. $icrosoFt est' tra0aEando con varios grupos de Internet para deFinir
el est'ndar de ActiveX Scripting de 5odo )ue se puedan interca50iar los 5otores de auto5atiLacin.
ActiveX Scripting se utiliLa en $icrosoFtR Internet Explorer y en $icrosoFtR Internet InFor5ation
Server.
VBScript en otras aplicaciones y exploradores
!o5o progra5ador@ puede licenciar su i5ple5entacin de origen de VBScript sin cargo para utiliLarla en
sus productos. $icrosoFt proporcionar' i5ple5entaciones 0inarias de VBScript para la AI de
IindoGsR de 61 0its@ la AI de IindoGs de -9 0its y la de $acintosCR. VBScript se integra con
exploradores de Iorld Iide Ie0. VBScript y ActiveX Scripting ta50i3n se pueden utiliLar co5o un
lenguaEe de auto5atiLacin general en otras aplicaciones.
INTERRETACI!N
VENTAJAS INCONVENIENTES
El cdigo es cmodo para depurar, ya
que no es necesario volver a compilar
tras un cambio.
No es necesario disponer de un
compilador, ya que el intrprete (que
forma parte del navegador) ejecuta el
script.
El mantenimiento es fcil y rpido, por
parte del autor o de otro programador.
La ejecucin se ralentiza, al
ser necesaria la interpretacin
lnea a lnea cada vez.
El cdigo es visible y puede ser
objeto de plagio por parte de
otras personas.
El usuario tiene acceso al
cdigo y puede modificarlo,
estropeando alguna operacin.
Manual del Alumno
C"#I$ACI!N
VENTAJAS INCONVENIENTES
El cdigo compilado se ejecuta
muy rpido, al no ser necesaria
una traduccin cada vez.
El cdigo compilado no puede
ser "abierto" por otras personas.
No es necesario transmitir el
cdigo fuente.
El cdigo compilado puede estar,
ntegramente, incluido en un solo
fichero.
Es necesario disponer de un
compilador-linkador para el proceso
de la compilacin.
El cdigo compilado suele ocupar
bastante en disco, ya que incorpora
en el propio cdigo algunas libreras
del sistema.
Depurar un programa implica volver
a compilar tras los cambios.
El cdigo en VBScript puede, adems, estar diseado para su ejecucin en el lado
del cliente o en el del servidor. La diferencia es que un cdigo que se ejecuta en el
lado del servidor no es visible en el lado del cliente. Este recibe los resultados, pero
no el cdigo. El cdigo que se debe de ejecutar en el lado del servidor estar
incluido en la pgina web correspondiente entre los tags <% y %> . Adems
habr que renombrar la pgina para aplicarle la extensin .asp (Active Server Page
-pgina activa en servidor-). El funcionamiento intrnseco 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 podrn disfrutar de la potencia y versatilidad del
VBScript.
Agregar cdigo de VBScript a una p%gina &T#$

Puede usar el elemento SCRIPT para agregar cdigo de VBScript a una pgina
HTML.
$a eti'ueta (SCRIT)
El cdigo de VBScript se presenta en una pgina HTML dentro de una parejas de
etiquetas <SCRIPT>. Por ejemplo, un procedimiento que comprueba una fecha de
envo aparece como:
Manual del Alumno
<SCRIPT LANGUAGE="VBScript">
<!--
Function PueeEntre!"r#$t%
PueeEntre!"r = #C$"te#$t% - No&#%% > '
En Function
-->
<(SCRIPT>
Las etiquetas <SCRIPT> de comienzo y fin rodean el cdigo. 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 funcin PuedeEntregar aparece entre etiquetas de comentario (<!--
y -->). Esto evita que los exploradores que no entienden la etiqueta <SCRIPT>
muestra el cdigo.
Como el ejemplo es una funcin general -no est vinculado a ningn control de
formulario en particular- puede incluirlo en la seccin HEAD de la pgina:
<)T*L>
<)EA$>
<TITLE>)"!" +u peio<(TITLE>
<SCRIPT LANGUAGE="VBScript">
<!--
Function PueeEntre!"r#$t%
PueeEntre!"r = #C$"te#$t% - No&#%% > '
En Function
-->
<(SCRIPT>
<()EA$>
<B,$->
...
Puede utilizar procedimientos en cdigo en cualquier lugar de una pgina. Puede
colocar procedimientos en las secciones BODY y HEAD. Sin embargo, puede que
desee colocar todos los procedimientos en la seccin HEAD para mantener todo el
cdigo junto. Mantener el cdigo en la seccin HEAD asegura que todo el cdigo se
lee y decodifica antes de que se necesite debido a una llamada dentro de la seccin
BODY.
Una excepcin destacable a esta regla es que puede desear proporcionar
formularios en lnea con cdigo de secuencia de comandos para responder a
eventos de objetos del formulario. Por ejemplo, puede incluir cdigo de secuencia
de comandos para responder a un clic en un botn en el formulario:
<HTML>
<HEAD>
<TITLE>Probar eventos de botn</TITLE>
</HEAD>
<BODY>
<FOM !AME"#For$u%ar&o'#>
<I!P(T TYPE"#Button# !AME"#Boton'# )AL(E"#*%&+#>
Manual del Alumno
<,*IPT FO"#Boton'# E)E!T"#on*%&+-#
LA!.(A.E"#)B,+r&/t#>
MsgBo0 #1Botn /res&onado2#
</,*IPT>
</FOM>
</BODY>
</HTML>
La mayora del cdigo aparecer en procedimientos Sub o Function y slo se
llamar cuando el cdigo que ha escrito provoca su ejecucin. Sin embargo, puede
escribir cdigo de VBScript fuera de procedimientos, pero dentro de un bloque
SCRIPT. Este cdigo se ejecuta slo una vez, cuando se carga la pgina HTML. Esto
le permite inicializar los datos o cambiar dinmicamente la apariencia de su pgina
Web cuando se carga.
Manual del Alumno
Semana 2 : Bases de VBScript
Tipos de datos de VBScript

*Cu%les son los tipos de datos de VBScript+
VBScript slo 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 informacin,
dependiendo de cmo se utilice. Como Variant es el nico tipo de datos en
VBScript, tambin es el nico tipo de datos devuelto por todas las funciones en
VBScript.
En su forma ms sencilla, un tipo Variant puede contener tanto informacin
numrica como de cadena. Un tipo Variant se comporta como un nmero cuando
se utiliza en un contexto numrico y como una cadena cuando se utiliza en un
contexto de cadena. Esto quiere decir que si trabaja con datos que parecen
nmeros, VBScript asume que son nmeros y realiza lo que es ms adecuado para
nmeros. Igualmente, si trabaja con datos que slo pueden ser datos de cadena,
VBScript los trata como datos de cadena. Por supuesto, siempre puede hacer que
los nmeros se comporten como cadenas, escribindolos entre comillas (" ").
Su,tipos de Variant
Ms all de las simples clasificaciones numricas y de cadena, un tipo Variant
puede hacer ms distinciones acerca de la naturaleza especfica de la informacin
numrica. Por ejemplo, puede tener informacin numrica 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, tambin puede tener
una amplia variedad de informacin numrica en el intervalo de tamaos de
sencillos valores Boolean a enormes nmeros de signo flotante. Estas categoras
diferentes de informacin que puede contener un tipo Variant se llaman subtipos.
La mayora de las veces slo se puede establecer el tipo de datos que desea en un
tipo Variant y se comporta del modo ms adecuado para el tipo de datos que
contiene.
La tabla siguiente muestra varios subtipos de datos que puede contener un tipo
Variant.
Subtipo De!rip!i"#
Empt$ %aria#t est' sin inicialiLar. El valor es B para varia0les nu53ricas o una
cadena de longitud cero <SS? para varia0les de cadena.
Nu&& %aria#t contiene intencionada5ente datos no v'lidos.
Boo&ea# !ontiene True o 'a&e.
Manual del Alumno
B$te !ontiene un entero entre B y 188.
I#te(er !ontiene un entero T61.79& y 61.797.
Curre#!$ T,11.667.1B6.9&8.777@8&B& a ,11.667.1B6.9&8.777@8&B7.
Lo#( !ontiene un entero T1.-77.7&6.97& y 1.-77.7&6.977.
Si#(&e !ontiene un nO5ero de precisin si5ple y signo Flotante entre T6@7B1&16E6&
y T-@7B-1,&ET78 para valores negativos@ y entre -@7B-1,&ET78 y
6.7B1&16E6& para valores negativos.
Doub&e !ontiene un nO5ero de precisin do0le y punto Flotante en el intervalo de
T-@7,79,6-67&9161E6B& y T7@,7B98978&7-177ET617 para valores negativos@
y entre 7@,7B98978&7-177ET617 y -@7,79,6-67&9161E6B& para valores
positivos.
Date
)Time*
!ontiene un nO5ero )ue representa una FecCa entre el - de enero de -BB y el
6- de dicie50re de ,,,,.
Stri#( !ontiene una cadena de longitud varia0le )ue puede contener Casta 1 5il
5illones de caracteres de longitud.
Ob+e!t !ontiene un o0Eeto.
Error !ontiene un nO5ero de error.
Puede usar las funciones de conversin para convertir datos un subtipo a otro.
Adems la funcin VarType devuelve informacin acerca de cmo se almacenan
los datos en un tipo Variant.
Varia,les de VBScript

*-u. es una varia,le+
Una variable es un marcador de posicin til que hace referencia a una ubicacin de
la memoria del equipo donde puede almacenar informacin de programa que puede
cambiar durante el tiempo en que se ejecuta la secuencia de comandos. Por
ejemplo, podra crear una variable llamada *uenta*%&+s para almacenar el nmero
de veces que el usuario hizo clic en un objeto de una determinada pgina Web. El
lugar donde se ubica la variable en la memoria del equipo no es importante. Lo que
es importante es que slo 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.
Declaracin de varia,les
Declare variables explcitamente en la secuencia de comandos utilizando la
instruccin Dim, la instruccin Public y la instruccin Private. Por ejemplo:
D&$ .radosFa3ren3e&t
Declare mltiples variables separando cada nombre de variable por una coma. Por
ejemplo:
Manual del Alumno
D&$ Arr&ba4 Aba5o4 I67u&erda4 Dere+3a
Tambin puede declarar una variable implcitamente por el simple uso de su
nombre en alguna parte de la secuencia de comandos. Esto no se considera
adecuado, ya que podra escribir mal el nombre de la variable en uno o ms lugares
provocando resultados inesperados cuando ejecuta el cdigo. Por este motivo,
existe la instruccin Option Explicit para solicitar una declaracin explcita de
todas las variables. La instruccin Option Explicit debe ser la primera instruccin
en la secuencia de comandos.
Restricciones de no/,re
Los nombres de variables siguen las normas estndar de denominacin en
VBScript. Un nombre de variable:
Debe comenzar con un carcter alfabtico.
No puede contener un punto.
No debe superar 255 caracteres.
Debe ser nico en el alcance donde se declara.
Alcance y vida de las varia,les
El alcance de una variable se determina cuando se declara. Cuando declara una
variable dentro de un procedimiento, slo el cdigo 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 ejecucin de la secuencia de comandos. A nivel de
procedimiento, una variable existe slo 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 slo se reconoce en el procedimiento en
que se declar.
Asignacin de valores a varia,les
Los valores se asignan a variables creeando un expresin de la siguiente manera: la
variable est en la parte izquierda de la expresin y el valor que desea asignar a la
misma est a la derecha. Por ejemplo:
Manual del Alumno
B " 899
Constantes de VBScript

*-u. es una constante+
Una constante es un nombre significativo que contiene un nmero o una cadena
que nunca cambia. VBScript define un nmero de constantes intrnsecas. Puede
obtener informacin sobre estas constantes intrnsecas en Referencia del lenguaje
VBScript.
Creacin de constantes
En VBScript puede crear constantes definidas por el usuario utilizando la instruccin
Const. Utilizando la instruccin Const, puede crear constantes numricas o de
cadena con nombres significativos y asignarlas a valores literales. Por ejemplo:
*onst M&*adena " #Esta es $& +adena.#
*onst M&Edad " :;
Observe que el literal de cadena se escribe entre comillas (" "). Las comillas son la
mejor y ms clara forma de diferenciar valores de cadena y valores numricos. Los
literales de fecha y los literales de hora se representan encerrndolos entre signos
de nmero (#). Por ejemplo:
*onst Fe+3a*orte " <=>'>;?<
Puede que desee adoptar una combinacin de nombres para diferenciar constantes
de variables. Esto impedir que intente reasignar sus valores mientras se ejecuta la
secuencia de comandos. Por ejemplo, podra desear utilizar un prefijo "vb" en los
nombres de constantes o puede dar nombre a las constantes en maysculas. Al
diferenciar las constantes de las variables elimina la confusin cuando desarrolla
secuencias de comando complejas.
Manual del Alumno
Semana 3 : Arrelos
Varia,les escalares y varia,les de /atrices
Muchas veces, slo 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 ms 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 declaracin de una variable de matriz utiliza
parntesis ( ) a continuacin del nombre de la variable. En el siguiente ejemplo se
declara una matriz de una dimensin que contiene 11 elementos:
D&$ A@'9A
Aunque el nmero que se muestra entre parntesis 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 nmero de elementos de la misma siempre es el
nmero mostrado entre parntesis ms uno. Este tipo de matriz se llama una
matriz de tamao 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@9A " 8B=
A@'A " C8:
A@8A " '99
. . .
A@'9A " BB
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:
. . .
A%guna)ar&ab%e " A@DA
. . .
Las matrices no estn limitadas a una nica dimensin. Puede tener hasta 60
dimensiones aunque la mayora de las personas no pueden comprender ms de tres
o cuatro. Las dimensiones mltiples se declaran separando con comas los nmeros
de tamao de la matriz dentro del parntesis. En el siguiente ejemplo, la variable
M&Tab%a es una matriz bidimensional que consta de 6 filas y 11 columnas:
D&$ M&Tab%a@B4 '9A
En una matriz bidimensional, el primer nmero siempre es el nmero de filas y el
segundo el nmero de columnas.
Manual del Alumno
Instruccin Di/
Descripcin
Declara variables y asigna espacio de almacenamiento.
Si#ta,i : Dim #ombre-e.ariab&e/)/ub0#-i!e1*1/2
#ombre-e.ariab&e/)/ub0#-i!e1*11 3 3 3
La sintaxis de la instruccin Dim tiene las siguientes partes:
Parte De!rip!i"#
nombredevariable No50re de la varia0le )ue cu5ple con las convenciones est'ndar de
asignacin de no50res de varia0les.
subndices 4i5ensiones de una varia0le de 5atriLU se pueden declarar Casta 9B
di5ensiones 5Oltiples. El argu5ento subndices usa la siguiente
sintaxis:
lmitesuperior ;2lmitesuperior> 3 3 3
El l=5ite inFerior de una 5atriL sie5pre es cero.
Co/entarios
Las variables declaradas con Dim a nivel de secuencia de comandos estn
disponibles para todos los procedimientos dentro de la secuencia de comandos. A
nivel de procedimiento, las variables slo estn disponibles dentro del
procedimiento.
Tambin puede usar la instruccin Dim con parntesis vacos para declarar una
matriz dinmica. Despus de declarar una matriz dinmica, use la instruccin
eDim dentro de un procedimiento para definir el nmero de dimensiones y
elementos de la matriz. Si intenta volver a declarar una dimensin para una
variable de matriz cuyo tamao se especific explcitamente en una instruccin
Dim, se produce un error.
Cuando se inician las variables, una variable numrica se inicia a 0 y una cadena se
inicia a una cadena de longitud cero ("").
Su(ere#!ia Al usar la instruccin Dim en un procedi5iento@ general5ente se coloca la instruccin Dim
al principio del procedi5iento.
Los siguientes ejemplos muestran el uso de la instruccin Dim:
D&$ !o$bres@;A E De+%ara una $atr&6 +on '9 e%e$entos.
D&$ !o$bres@A E De+%ara una $atr&6 d&nF$&+a
D&$ M&)ar4 M&!u$ E De+%ara dos var&ab%es
Manual del Alumno
Tambin puede declarar una matriz cuyo tamao cambia durante el tiempo en que
se ejecuta la secuencia de comandos. Esto se llama una matriz dinmica. La matriz
inicialmente se declara dentro de un procedimiento utilizando la instruccin Dim
como con cualquier tipo de matriz o la instruccin eDim. Sin embargo, en una
matriz dinmica, no se establece un tamao o un nmero de dimensiones dentro
del parntesis.
Por ejemplo:
D&$ M&Matr&6@A
eD&$ OtraMatr&6@A
Para utilizar una matriz dinmica, debe utilizar a continuacin eDim para
determinar el nmero de dimensiones y el tamao de cada una de ellas. En el
siguiente ejemplo, eDim establece el tamao inicial de la matriz dinmica a 25.
La siguiente instruccin eDim cambia el tamao de la matriz a 30, pero utiliza la
palabra clave Preserve para conservar el contenido de la matriz cuando se produce
el cambio de tamao.
eD&$ M&Matr&6@8BA
. . .
eD&$ Preserve M&Matr&6@C9A
No hay lmite en cuanto al nmero de veces que puede cambiar el tamao de una
matriz dinmica, pero debe saber que si hace una matriz ms pequea de lo que
era, pierde los datos de los elementos eliminados.

Manual del Alumno
Semana ! : "peradores y #unciones en
VBScript
"peradores de VBScript

VBScript tiene un completo conjunto de operadores, incluyendo operadores
aritmticos, operadores de comparacin, operadores de concatenacin y operadores
lgicos.
rioridad de los operadores
Cuando se producen varias operaciones en una expresin, cada parte se evala y
se resuelve en un orden predeterminado. Este orden se conoce como prioridad de
los operadores. Puede utilizar parntesis para invalidar el orden de prioridad y
forzar que se evalen algunas partes de una expresin antes que otras. Las
operaciones entre parntesis siempre se ejecutan antes que las de fuera. Sin
embargo, dentro de los parntesis se mantiene la prioridad de los operadores.
Cuando las expresiones contienen operadores de ms de una categora, se evalan
primero los operadores aritmticos, a continuacin los operadores de comparacin y
por ltimo los lgicos. Todos los operadores de comparacin tienen la misma
prioridad; esto quiere decir que se evalan en el orden en que aparecen, de
izquierda a derecha. Los operadores aritmticos y lgicos se evalan en el siguiente
orden de prioridad.
Aritm4ti!o De !ompara!i"# L"(i!o
De!rip!i"# S0mbo&o De!rip!i"# S0mbo&o De!rip!i"# S0mbo&o
Exponenciacin V Igualdad W %ogical
negation
Not
Negacin unaria T 4esigualdad *+ %ogical
conEunction
And
$ultiplicacin X $enor )ue * 4isyuncin
lgica
#r
4ivisin Y $ayor )ue + Exclusin
lgica
Xor
4ivisin entera Z $enor o igual
)ue
*W E)uivalencia
lgica
E)v
$dulo arit53tico $od $ayor o igual
)ue
+W I5plicacin
lgica
I5p
Su5a N E)uivalencia de
o0Eeto
Is
Manual del Alumno
Resta T
!oncatenacin de
cadenas
M
Cuando una multiplicacin y una divisin se producen juntas en una expresin,
cada operacin se evala como ocurre de izquierda a derecha. Del mismo modo,
cuando una suma y una resta se producen juntas en una expresin, cada operacin
se evala segn el orden de aparicin, de izquierda a derecha.
El operador de concatenacin de cadenas (&) no es un operador aritmtico, pero en
la prioridad se ejecuta despus de todos los operadores aritmticos y antes de
todos los operadores de comparacin. El operador !s es un operador de
comparacin de referencia de objeto. No compara objetos o sus valores; slo se
comprueba para determinar si dos referencias a objetos se refieren al mismo
objeto.
"peradores de VBScript
0uncin A,s
Devuelve el valor absoluto de un nmero.
Si#ta,i : Ab)nmero*
El argumento nmero puede ser cualquier expresin numrica vlida. Si nmero
contiene "ull, se devuelve "ull ; si es un valor no iniciado, se devuelve cero.
El valor absoluto de un nmero es su magnitud sin signo. Por ejemplo, #bs$-1% y
#bs$1% devuelven 1.
El siguiente ejemplo usa la funcin #bs para compute the absolute value of a
number:
D&$ M&!u$ero
M&!u$ero " Abs@B9.CA EDevue%ve B9.C
M&!u$ero " Abs@>B9.CA EDevue%ve B9.C
0uncin Array
Devuelve un objeto Variant que contiene una matriz.
Si#ta,i : Arra$)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 ningn argumento, se crea una matriz de longitud
cero.
La notacin usada para hacer referencia a un elemento de una matriz, consta del
nombre de la variable seguido de parntesis que contienen un nmero de ndice
que indica el elemento deseado. En el siguiente ejemplo, la primera instruccin crea
Manual del Alumno
una variable llamada A. La segunda instruccin asigna una matriz a la variable A. La
ltima instruccin asigna el valor contenido en la segunda matriz a otra variable.
D&$ A
A " ArraG@'9489489A
B " A@8A
0uncin Asc
Devuelve el cdigo de carcter ANSI que corresponde a la primera letra de una
cadena.
Si#ta,i : A!)cadena*
El argumento cadena es cualquier expresin de cadena vlida. Si cadena no
contiene ningn carcter, se produce un error en tiempo de ejecucin.
En el ejemplo siguiente, #sc devuelve el cdigo de carcter ANSI de la primera
letra de cada cadena:
D&$ M&!u$ero
M&!u$ero " As+@#A#A EDevue%ve =B
M&!u$ero " As+@#a#A EDevue%ve ;?
M&!u$ero " As+@#A6H+ar#A EDevue%ve =B
Instruccin Call
Transfiere el control a un procedimiento Sub o Function.
Si#ta,i : /Ca&&1 #ombre /&ita-ear(ume#to1
La sintaxis de la instruccin Call tiene las siguientes partes:
Parte De!rip!i"#
Ca&& ala0ra clave opcional. Si se especiFica@ de0e encerrar
listadeargumentosentre par3ntesis. or eEe5plo:
*a%% M&Pro+@9A
nombre Re)uerido. No50re del procedi5iento al )ue se lla5a.
listadeargumentos #pcional. %ist de varia0les@ 5atrices o expresiones deli5itada por
co5as )ue se pasa al procedi5iento.
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 parntesois. Si omite la palabra
clave Call, tambin debe omitir los parntesis que encierran a listadeargumentos.
Con cualquier sintaxis de Call que use para llamar a cualquier funcin intrnseca o
definida por el usuario, se descarta el valor devuelto por la funcin.
*a%% M&Fun+&on@#Ho%a $undo#A
Function *iFuncion#te.to%
*+!Bo. te.to
En Function
Manual del Alumno
0uncin CBool
Devuelve una expresin convertida en Variant de subtipo &oolean.
Si#ta,i : CBoo&)expresin*
El argumento expresin es cualquier expresin vlida.
Si expresin es cero, se devuelve False; de lo contrario, se devuelve True. Si
expresinno se puede interpretar como valor numrico, se produce un error en
tiempo de ejecucin.
El siguiente ejemplo usa la funcin C&ool para convertir una expresin en
&oolean. Si la expresin se evala como un valor distinto de cero, C&ool devuelve
True; de lo contrario, devuelve False.
D&$ A4 B4 *o$/roba+&on
A " BI B " B E In&+&a var&ab%es
*o$/roba+&on " *Boo%@A " BA E *o$/roba+&on +ont&ene True
A " 9 E DeJ&ne %a var&ab%e
*o$/roba+&on " *Boo%@AA E *o$/roba+&on +ont&ene
Fa%se
0uncin CByte
Devuelve una expresin que se convirti en Variant de subtipo &yte.
Si#ta,i : CB$te)expresin*
El argumento expresin es cualquier expresin vlida.
En general, puede documentar su cdigo con las funciones de conversin de
subtipos para mostrar que el resultado de alguna operacin se debe expresar como
un tipo de datos particular, en lugar del tipo de datos predeterminado. Por ejemplo,
use C&yte para forzar aritmtica de tipo byte en casos en los que normalmente se
usara aritmtica de moneda, precisin simple, precisin doble o entero.
Si expresin est fuera del intervalo aceptable para el subtipo &yte, se produce un
error. El siguiente ejemplo usa la funcin C&yte para convertir una expresin en
byte:
D&$ M&Dob%e4 M&BGte
M&Dob%e " '8B.B=?D E M&Dob%e es un Doub%e
M&BGte " *BGte@M&Dob%eA E M&BGte +ont&ene '8=
0uncin CCur
Devuelve una expresin que se convirti en Variant de subtipo Currency.
Si#ta,i : CCur)expresin*
El argumento expresin es cualquier expresin vlida.
Debe usar la funcin CCur para proporcionar conversiones internacionales estndar
desde cualquier tipo de datos al subtipo Currency. Por ejemplo, distintos
separadores de decimales o de miles se reconocen correctamente segn la
configuracin local de su sistema.
Manual del Alumno
El siguiente ejemplo usa la funcin CCur para convertir una expresin en tipo de
datos Currency:
D&$ M&Dob%e4 M&Moneda
M&Dob%e " B:C.8':BDD E M&Dob%e es de t&/o Doub%e
M&Moneda " **ur@M&Dob%e K 8A E *onv&erte e% resu%tado de
M&Dob%e K 8 @'9D=.:8;'?=A
E en t&/o de datos *urren+G
@'9D=.:8;8A
0uncin CDate
Devuelve una expresin que se convirti en Variant del subtipo Date.
Si#ta,i : CDate)fecha*
El argumento fecha es cualquier expresin de fecha vlida.
Use la funcin !sDate para determinar si se puede convertir fecha en una fecha u
hora. CDate reconoce literales de fecha y literales de hora, as como algunos
nmeros que se encuentran dentro del rango de fechas aceptable. Al convertir un
nmero a fecha, la parte entera del nmero se convierte en una fecha. Cualquier
parte fraccionaria del nmero se convierte en una hora del da, a partir de
medianoche.
En el siguiente ejemplo se usa la funcin CDate para convertir una cadena en una
fecha. En general, no se recomienda establecer fechas y horas como cadenas
mediante programacin (como se muestra en este ejemplo). En su lugar, use
literales de fecha y hora, como #10/19/1962# o #4:45:23 PM#.
M&Fe+3a " #'; de o+tubre de ';=8# E DeJ&ne %a Je+3a
M&Hora*orta " *Date@M&Fe+3aA E *onv&erte a% t&/o de
datos Date
M&Hora*o$/%eta " #:ICBI:? PM# E DeJ&ne %a 3ora
+o$/%eta
M&Hora*orta " *Date@M&Hora*o$/%etaA E *onv&erte a%
t&/o de datos Date
0uncin CD,l
Devuelve una expresin que se convirti en Variant de subtipo Double.
Si#ta,i : CDb&)expresin*
El argumento expresin es cualquier expresin vlida.
En general, puede documentar su cdigo con las funciones de conversin de
subtipos para mostrar que el resultado de alguna operacin se debe expresar como
un tipo de datos particular, en lugar del tipo de datos predeterminado. Por ejemplo,
use CDbl o CSn' para forzar aritmtica de doble precisin o simple precisin en
casos en los que normalmente se usara aritmtica de moneda o de entero.
Este ejemplo usa la funcin CDbl para convertir una expresin en Double.
D&$ M&Moneda4 M&Dob%e
M&Moneda " **ur@8C:.:B=?D:A E M&Moneda es de
t&/o *urren+G.
M&Dob%e " *Db%@M&Moneda K D.8 K 9.9'A E *onv&erte e%
resu%tado en Doub%e.
Manual del Alumno
0uncin C1r
Devuelve el carcter asociado al cdigo de carcter ANSI especificado.
Si#ta,i : C5r)cdigodecarcter*
El argumento cdigodecarcter es un nmero que identifica un carcter.
Los nmeros entre 0 y 31 son iguales a los cdigos ASCII estndar, no imprimibles.
Por ejemplo, C(r$10% devuelve un carcter de avance de lnea.
El siguiente ejemplo usa la funcin C(r para devolver el carcter asociado al cdigo
de carcter especificado:
D&$ M&*ara+ter
M&*ara+ter " *3r@=BA E Devue%ve A.
M&*ara+ter " *3r@;?A E Devue%ve a.
M&*ara+ter " *3r@=8A E Devue%ve >.
M&*ara+ter " *3r@C?A E Devue%ve L.
0uncin CInt
Devuelve una expresin que se convirti enVariant del subtipo !nte'er.
Si#ta,i : CI#t)expresin*
El argumento expresin es cualquier expresin vlida.
En general, puede documentar su cdigo con las funciones de conversin de
subtipos para mostrar que el resultado de alguna operacin se debera expresar
como un tipo de datos particular, en lugar del tipo de datos predeterminado. Por
ejemplo, use C!nt o C)n' para forzar aritmtica de enteros en casos en los que
normalmente se usara aritmtica de moneda, precisin simple o precisin doble.
Si expresin est fuera del intervalo aceptable para el subtipo !nte'er, se produce
un error.
El siguiente ejemplo usa la funcin C!nt para convert a value to an Integer:
D&$ M&Dob%e4 M&Entero
M&Dob%e " 8C:B.B=?D E M&Dob%e es de t&/o Doub%e.
M&Entero " *Int@M&Dob%eA E M&Entero +ont&ene 8C:=.
0uncin C$ng
Devuelve una expresin que se convirti en Variant del subtipo )on'.
Si#ta,i : CL#()expresin*
El argumento expresin es cualquier expresin vlida.
En general, puede documentar su cdigo con las funciones de conversin de
subtipos para mostrar que el resultado de alguna operacin se debera expresar
como un tipo de datos particular, en lugar del tipo de datos predeterminado. Por
ejemplo, use C!nt o C)n' para forzar aritmtica de enteros en casos en los que,
normalmente, se usara aritmtica de precisin simple o precisin doble.
Si expresin est fuera del intervalo aceptable para el subtipo )on', se produce un
error.
El siguiente ejemplo usa la funcin C)n' para convertir un valor en Long:
Manual del Alumno
D&$ M&)a%'4 M&)a%84 M&Long'4 M&Long8
M&)a%' " 8B:8?.:BI M&)a%8 " 8B:8?.BB E M&)a%'4 M&)a%8
are Doub%es.
M&Long' " *Lng@M&)a%'A E M&Long' +ont&ene 8B:8?.
M&Long8 " *Lng@M&)a%8A E M&Long8 +ont&ene 8B:8D.
0uncin CSng
Devuelve una expresin que se convirti en Variant del subtipo Sin'le.
Si#ta,i : CS#()expresin*
El argumento expresin es cualquier expresin vlida.
En general, puede documentar su cdigo con las funciones de conversin de tipos
de datos para mostrar que el resultado de algunas operaciones se debera expresar
como un tipo de datos particular, en lugar del tipo de datos predeterminado. Por
ejemplo, use CDbl o CSn' para forzar aritmtica de precisin doble o precisin
simple en casos en los que, normalmente, se usara aritmtica de moneda o de
enteros.
Si expresin est fuera del intervalo aceptable para el subtipo Sin'le, se produce
un error.
El siguiente ejemplo usa la funcin CSn' para convertir un valor en Sin'le:
D&$ M&Dob%e'4 M&Dob%e84 M&,&$/%e'4 M&,&$/%e8 E M&Dob%e'4
M&Dob%e8 are Doub%es.
M&Dob%e' " ?B.C:8'''BI M&Dob%e8 " ?B.C:8'BBB
M&,&$/%e' " *,ng@M&Dob%e'A E M&,&$/%e' +ont&ene
?B.C:8''.
M&,&$/%e8 " *,ng@M&Dob%e8A E M&,&$/%e8 +ont&ene
?B.C:8'=.
0uncin CStr
Devuelve una expresin que se convirti en Variant del subtipo Strin'.
Si#ta,i : CStr)expresin*
El argumento expresin es cualquier expresin vlida.
En general, puede documentar su cdigo con funciones de conversin de tipos de
datos para mostrar que el resultado de alguna operacin se debera 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 Strin'.
Los datos almacenados en expresin determinan el valor devuelto de acuerdo con
la siguiente tabla:
Si expresin e CStr -e.ue&.e
Boo&ea# Hn valor de tipo Stri#( )ue contiene True o 'a&e.
Date Hn valor de tipo Stri#( )ue contiene una FecCa en For5ato de FecCa
corta de su siste5a.
Nu&& Hn error en tie5po de eEecucin.
Manual del Alumno
Empt$ Hn valor de tipo Stri#( de longitud cero <SS?.
Error Hn valor de tipo Stri#( )ue contiene la pala0ra Error seguido por el
nO5ero de error.
#tro valor
nu53rico
Hn valor de tipo Stri#( contiene el nO5ero.
El siguiente ejemplo usa la funcin CStr para convertir un valor numrico en
Strin':
D&$ M&Dob%e4 M&*adena
M&Dob%e " :C?.C8: E M&Dob%e es de t&/o Doub%e.
M&*adena " *,tr@M&Dob%eA E M&*adena +ont&ene #:C?.C8:#.
0uncin Exp
Devuelve e (la base de los logaritmos naturales) elevado a una potencia.
Si#ta,i : E,p)nmero*
El argumento nmero puede ser cualquier expresin numrica vlida.
Si el valor de nmero supera 709.782712893, se produce un error. La constante e
aproximadamente igual a 2.718282.
El siguiente ejemplo usa la funcin Exp para devolver e elevado a una potencia:
D&$ M&Angu%o4 M&,enoH E DeJ&ne e% Fngu%o en rad&anes.
M&Angu%o " '.C E *a%+u%a e% seno 3&/erb%&+o.
M&,enoH " @E0/@M&Angu%oA > E0/@>' K M&Angu%oAA / 8
0unciones Int y 0ix
Devuelve la parte entera de un nmero.
Si#ta,i : I#t)nmero* Fix$nmero%
El argumento nmero puede ser cualquier expresin numrica vlida. Si nmero
contiene "ull, se devuelve "ull.
!nt y Fix quitan la parte fraccional de nmero y devuelven el valor entero
resultante.
La diferencia entre !nt y Fix es que si nmero es negativo, !nt devuelve el primer
entero negativo menor o igual a nmero, mientras que Fix devuelve el primer
entero negativo mayor o igual a nmero. Por ejemplo, !nt convierte -8.4 a -9, y
Fix convierte -8.4 a -8.
Fix$nmero% es equivalente a:
,gn@nmeroA K Int@Abs@nmeroAA
Los siguientes ejemplo muestran cmo devuelven partes enteras de nmeros las
funciones !nt y Fix:
M&!u$ero " Int@;;.DA E Devue%ve ;;.
M&!u$ero " F&0@;;.8A E Devue%ve ;;.
M&!u$ero " Int@>;;.DA E Devue%ve >'99.
M&!u$ero " F&0@>;;.DA E Devue%ve >;;.
Manual del Alumno
M&!u$ero " Int@>;;.8A E Devue%ve >'99.
M&!u$ero " F&0@>;;.8A E Devue%ve >;;.
0uncin 2et",3ect
Devuelve una referencia a un objeto de automatizacin desde un archivo.
Si#ta,i : GetOb+e!t)/nombrederuta1 /2 clase1*
La sintaxis de la funcin *etOb+ect tiene las siguientes partes:
Parte De!rip!i"#
nombrederuta #pcionalU String. Ruta y no50re co5pletos del arcCivo )ue contiene el
o0Eeto )ue desea recuperar. Si se o5ite nombrederuta@ se re)uiere clase.
clase #pcionalU String. !lase del o0Eeto.
El argumento claseusa la sintaxis nombredeaplicacin.tipodeobjeto y tiene las
siguientes partes:
Parte De!rip!i"#
nombredeaplicacin Re)ueridoU String. No50re de la aplicacin )ue proporciona el
o0Eeto.
tipodeobjeto Re)ueridoU String. Tipo o clase de o0Eeto )ue desea crear.
Use la funcin *etOb+ect para tener acceso a un objeto de automatizacin desde
un archivo y asignar el objeto a una variable de objeto. Use la instruccin Set para
asignar el objeto devuelto por *etOb+ect a la variable de objeto. Por ejemplo:
Dim CADObject
Set CADObject = GetObject("C:\CAD\SCHEMA.CAD")
Cuando se ejecuta este cdigo, se inicia la aplicacin asociada con el nombre de
ruta especificado y el objeto del archivo especificado se activa. Si nombrederuta es
una cadena de longitud cero (""), *etOb+ect devuelve una nueva instancia de
objeto del tipo especificado. Si se omite el argumento nombrederuta, *etOb+ect
devuelve un objeto activo del tipo especificado. Si no existe ningn objeto del tipo
especificado, se produce un error.
Algunas aplicaciones le permiten activar parte de un archivo. Agregue un signo de
admiracin (!) al final del nombre del archivo y, a continuacin, agregue una
cadena que identifique la parte del archivo que desea activar. Para obtener
informacin acerca de cmo crear esta cadena, consulte la documentacin de la
aplicacin que cre el objeto.
Por ejemplo, en una aplicacin de dibujo podra tener varias capas de un dibujo
almacenado en un archivo. Podra usar el siguiente cdigo para activar una capa de
un dibujo llamado SCHEMA.CAD:
Set ObjetoCapa = GetObject("C:\CAD\SCHEMA.CAD!Layer3")
Manual del Alumno
Si no especifica la clase de objeto, la automatizacin determina la aplicacin que
debe iniciar el objeto para activarlo, basado en el nombre de archivo proporcionado.
Sin embargo, es posible que algunos archivos admitan ms 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")
En el ejemplo anterior, FIGMENT es el nombre de una aplicacin 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 cdigo mediante la variable de objeto definida. En el ejemplo
anterior, se tiene acceso a las propiedades y mtodos 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"
0uncin &our
Devuelve un nmero entero entre 0 y 23, ambos incluidos, que representa la hora
del da.
Si#ta,i : 6our)hora*
El argumento hora es cualquier expresin que pueda representar una hora. Si hora
contiene "ull, se devuelve "ull.
El siguiente ejemplo usa la funcin ,our para obtener la hora a partir de la hora
actual:
D&$ M&Hora*o$/%eta4 M&Hora
M&Hora*o$/%eta " !oM
M&Hora " Hour@M&Hora*o$/%etaA E M&Hora +ont&ene e% nH$ero
7ue re/resenta %a 3ora a+tua%.
0uncin IsDate
Devuelve un valor de tipo Boolean que indica si una expresin se puede o no
convertir en una fecha.
Si#ta,i : IDate)expresin*
El argumento expresin puede ser cualquier expresin de fecha o expresin de
cadena reconocible como fecha u hora.
!sDate devuelve True si la expresin es una fecha o si se puede convertir en una
fecha vlida. De lo contrario, devuelve False. En Microsoft Windows, el intervalo
vlido de fechas es desde el 1 de enero del ao 100 hasta el 31 de diciembre del
ao 9999; los intervalos varan segn el sistema operativo.
El siguiente ejemplo usa la funcin !sDate para determinar si una expresin se
puede o no convertir en una fecha:
Manual del Alumno
D&$ M&Fe+3a4 ,uFe+3a4 !&ngunaFe+3a4 M&*o$/roba+&on
M&Fe+3a " #O+tober ';4 ';=8#I ,uFe+3a " <'9/';/=8<I
!&ngunaFe+3a " #Ho%a#
M&*o$/roba+&on " IsDate@M&Fe+3aA E Devue%ve True.
M&*o$/roba+&on " IsDate@,uFe+3aA E Devue%ve True.
M&*o$/roba+&on " IsDate@!&ngunaFe+3aA E Devue%ve Fa%se.
0uncin $Bound
Devuelve el subndice ms pequeo disponible para la dimensin indicada de una
matriz.
Si#ta,i : LBou#-)nombredematriz/2 dimensin1*
La sintaxis de la funcin )&oun- tiene las siguientes partes:
Parte De!rip!i"#
nombredematriz No50re de la varia0le de 5atriL@ )ue cu5ple con las convenciones
est'ndar de asignacin de no50res de varia0les.
dimensin NO5ero entero )ue indica de )u3 di5ensin se devuelve el l=5ite
inFerior. Hse - para la pri5era di5ensin@ 1 para la segunda y as=
sucesiva5ente. Si se o5ite dimensin@ se asu5e -.
0uncin $Case
Devuelve una cadena convertida a minsculas.
Si#ta,i : LCae)cadena*
El argumento cadena es cualquier expresin de cadena vlida. Si cadena contiene
"ull, se devuelve "ull.
0uncin $e4t
Devuelve un nmero de caracteres especificado a partir del lado izquierdo de una
cadena.
Si#ta,i : Le7t)cadena2 longitud*
La sintaxis de la funcin )e.t tiene los siguientes argumentos:
Parte De!rip!i"#
cadena Expresin de cadena a partir de la )ue se devuelven los caracteres )ue est'n 5's
a la iL)uierda. Si cadena contiene Nu&&@ se devuelve Nu&&.
longitud Expresin nu53rica )ue indica cu'ntos caracteres se van a devolver. Si es igual a
B@ se devuelve una cadena de longitud cero <SS?. Si es 5ayor o igual al nO5ero de
caracteres de cadena@ se devuelve la cadena co5pleta.
0uncin $en
Devuelve el nmero de caracteres en una cadena o el nmero de bytes necesarios
para almacenar una variable.
Manual del Alumno
Si#ta,i : Le#)!a-e#a 8 #ombre-e.ariab&e*
La sintaxis de la funcin )en tiene las siguientes partes:
Parte De!rip!i"#
cadena !ual)uier expresin de cadena v'lida. Si cadena contiene Nu&&@ se
devuelve Nu&&.
nombredevariable !ual)uier no50re de varia0le v'lido. Si nombrevariable contiene Nu&&@
se devuelve Nu&&.
En el siguiente ejemplo se usa la funcin )en para devolver el nmero de
caracteres que contiene una cadena:
D&$ M&*adena
M&*adena " Len@#)B,*IPT#A M&*adena +ont&ene D.
0uncin $oadicture
Devuelve un objeto de imagen. Slo est disponible en plataformas de 32 bits.
Si#ta,i : Loa-Pi!ture)nombredeimagen*
El argumento nombredeimagen es una expresin de cadena que indica el nombre
del archivo de imagen que se va a cargar.
Los formatos grficos reconocidos por )oa-Picture 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).
0unciones $Tri/5 RTri/ y Tri/
Devuelve una copia de una cadena sin espacios iniciales ()Trim), espacios finales
(Trim) o ambos (Trim).
Si#ta,i : LTrim)cadena* RTrim)cadena* Trim)cadena*
El argumento cadena es cualquier expresin de cadena vlida. Si cadena contiene
"ull, se devuelve "ull.
Los siguientes ejemplos usan las funciones )Trim, Trim y Trim para recortar
espacios iniciales, espacios finales y ambos, respectivamente:
D&$ M&)ar
M&)ar " LTr&$@# vbs+r&/t #A EM&)ar +ont&ene #vbs+r&/t #.
M&)ar " Tr&$@# vbs+r&/t #A EM&)ar +ont&ene # vbs+r&/t#.
M&)ar " Tr&$@# vbs+r&/t #A EM&)ar +ont&ene #vbs+r&/t#.
0uncin #id
Devuelve un nmeros especificado de caracteres a partir de una cadena.
Si#ta,i : 9i-)cadena2 inicio/2 longitud1*
La sintaxis de la funcin /i- tiene los siguientes argumentos:
Parte De!rip!i"#
cadena Expresin de cadena a partir de la )ue se devuelven los caracteres. Si cadena
contiene Nu&&@ se devuelve Nu&&.
Manual del Alumno
inicio osicin de car'cter en cadena en la )ue co5ienLa la parte )ue se va a o0tener. Si
inicio es 5ayor )ue el nO5ero de caracteres )ue Cay en cadena@ 9i- devuelve
una cadena de longitud cero <SS?.
longitud NO5ero de caracteres )ue se va a devolver. Si se o5ite o si Cay 5enos caracteres
)ue longitud en el texto <incluido el car'cter )ue est' en la posicin inicio?@ se
devuelven todos los caracteres desde la posicin inicio Casta el Final de la cadena.
Para determinar el nmero de caracteres que hay en cadena, use la funcin )en.
El siguiente ejemplo usa la funcin /i- para devolver seis caracteres, comenzando
en el cuarto carcter, en una cadena:
D&$ M&)ar
M&)ar " M&d@#)B ,+r&/t es d&vert&do#4 :4 =A EM&)ar +ont&ene
#,+r&/t#.
0uncin #inute
Devuelve un nmero entero entre 0 y 59, ambos incluidos, que representa el
minuto de la hora.
Si#ta,i : 9i#ute)hora*
El argumento hora es cualquier expresin que puede representar una hora. Si hora
contiene "ull, se devuelve "ull.
El siguiente ejemplo usa la funcin /inute para devolver el minuto de la hora:
D&$ M&)ar
M&)ar " M&nute@!oMA
0uncin #ont1
Devuelve un nmero entero entre 1 y 12, ambos incluidos, que representa el mes
del ao.
Si#ta,i : 9o#t5)fecha*
El argumento fecha es cualquier expresin que pueda representar una fecha. Si
fecha contien "ull, se devuelve "ull.
El siguiente ejemplo usa la funcin /es para devolver el mes actual:
D&$ M&)ar
M&)ar " Mont3@!oMA E M&)ar +ont&ene e% nH$ero
+orres/ond&ente a% $es a+tua%.
0uncin #ont1Na/e
Devuelve una cadena que indica el mes especificado.
Si#ta,i : 9o#t5Name)mes/2 abreviar1*
La sintaxis de la funcin /ont("ame tiene las siguientes partes:
Parte De!rip!i"#
mes Re)uerido. %a designacin nu53rica del 5es. or eEe5plo@ enero es -@ Fe0rero
Manual del Alumno
es 1 y as= sucesiva5ente.
abreviar #pcional. Valor de tipo Boolean )ue indica si el no50re del 5es se de0e
a0reviar. Si se o5ite@ el valor predeter5inado es 'a&e@ )ue signiFica )ue el
no50re del 5es no se de0e a0reviar.
El siguiente ejemplo usa la funcin /ont("ame para devolver un nombre de mes
abreviado para una expresin de fecha:
D&$ M&)ar
M&)ar " Mont3!a$e@'94 TrueA E M&)ar +ont&ene #O+t#.
0uncin No6
Devuelve la fecha y hora actuales segn la configuracin de la fecha y hora de su
sistema.
Si#ta,i : No:
El siguiente ejemplo usa la funcin "o0 para devolver la fecha y hora actuales:
D&$ M&)ar
M&)ar " !oM E M&)ar +ont&ene %a Je+3a G 3ora a+tua%es.
0uncin R2B
Devuelve un nmero entero que representa un valor de un color RGB.
Si#ta,i : RGB)rojo2 verde2 azul*
La funcin *& tiene las siguientes partes:
Parte De!rip!i"#
rojo Re)uerido. NO5ero en el intervalo entre B y 188 )ue representa el co5ponente roEo
del color.
verde Re)uerido. NO5ero en el intervalo entre B y 188 )ue representa el co5ponente
verde del color.
azul Re)uerido. NO5ero en el intervalo entre B y 188 )ue representa el co5ponente aLul
del color.
Los mtodos y propiedades de aplicaciones que aceptan una especificacin de color
esperan que la especificacin sea un nmero 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 visualizacin de un color especfico.
El byte menos significativo contiene el valor del rojo, el byte del medio contiene el
valor del verde y el byte ms significativo contiene el valor del azul.
Para aplicaciones que requieren que el orden de los bytes se invierta, la siguiente
funcin proporcion la misma informacin con los bytes invertidos:
Fun+t&on Invert&r.B@ro5o4 verde4 a6u%A
Invert&r.B" *Lng@a6u% N @verde K 8B=A N @ro5o K
=BBC=AA
End Fun+t&on
Manual del Alumno
Se asume que el valor de cualquier argumento RGB que exceda 255, es 255.
0uncin Rig1t
Devuelve un nmero de caracteres especificado a partir del lado derecho de una
cadena.
Si#ta,i : Ri(5t)cadena2 longitud*
La sintaxis de la funcin i'(t tiene los siguientes argumentos:
Parte De!rip!i"#
cadena Expresin de cadena desde la )ue se devuelven los caracteres )ue est'n 5's a la
derecCa. Si cadena contiene Nu&&@ se devuelve Nu&&.
longitud Expresin nu53rica )ue indica cu'ntos caracteres se van a devolver. Si es igual a
B@ se devuelve una cadena de longitud cero. Si es 5ayor o igual al nO5ero de
caracteres )ue Cay en cadena@ se devuelve toda la cadena.
Para determinar el nmero de caracteres que hay en cadena, use la funcin )en.
El siguiente ejemplo usa la funcin i'(t para devolver un nmero especificado de
caracteres a partir del lado derecho de una cadena:
D&$ *ua%7u&er*adena4 M&*ad
*ua%7u&er*adena " #Ho%a $undo# EDeJ&ne %a +adena.
M&*ad " &g3t@*ua%7u&er*adena4 'A E Devue%ve #d#.
M&*ad " &g3t@*ua%7u&er*adena4 =A E Devue%ve # $undo#.
M&*ad " &g3t@*ua%7u&er*adena4 89A E Devue%ve #Ho%a $undo#.
0uncin Rnd
Devuelve un nmero aleatorio.
Si#ta,i : R#-/)nmero*1
El argumento nmero puede ser cualquier expresin numrica vlida.
La funcin n- devuelve un valor menor que 1 pero mayor o igual a 0. El valor de
nmero determina cmo n- genera un nmero aleatorio:
Si nmero e R#- (e#era
$enor )ue cero El 5is5o nO5ero cada veL@ con nmero co5o se5illa.
$ayor )ue cero El siguiente nO5ero aleatorio de la secuencia.
Igual a cero El Olti5o nO5ero generado.
No su5inistrado El siguiente nO5ero aleatorio de la secuencia.
Para cualquier semilla inicial proporcionada, se genera la misma secuencia de
nmeros porque cada llamada sucesiva a la funcin n- usa el nmero anterior
como semilla para el siguiente nmero de la secuencia.
Manual del Alumno
Antes de llamar a n-, use la instruccin an-omi1e sin ningn argumento para
iniciar el generador de nmeros aleatorios con una semilla basada en el reloj del
sistema.
Para producir enteros aleatorios dentro de un intervalo especfico, use esta frmula:
Int@@lmitesuperior > lmiteinferior N 'A K nd N
lmiteinferiorA
Aqu, lmitesuperior es el nmero ms alto del intervalo y lmiteinferior es el
nmero ms bajo del intervalo.
0uncin Round
Devuelve un nmero redondeado a un nmero especificado de posiciones
decimales.
Si#ta,i : Rou#-)e,prei"#/2 poi!io#e-e!ima&e1*
La sintaxis de la funcin oun- tiene las siguientes partes:
Parte De!rip!i"#
expresin Re)uerido. Expresin nu53rica )ue se va a redondear.
posicionesdecimales #pcional. NO5ero )ue indica cu'ntas posiciones a la derecCa del
deci5al se incluyen en el redondeo. Si se o5ite@ la Funcin Rou#-
devuelve enteros.
El siguiente ejemplo usa la funcin oun- para redondear un nmero a dos
posiciones decimales:
D&$ M&)ar4 /&
/& " C.':'B;
M&)ar " ound@/&4 8A EM&)ar +ont&ene C.':.
0uncin Second
Devuelve un nmero entero entre 0 y 59, ambos incluidos, que representa el
segundo del minuto.
Si#ta,i : Se!o#-)hora*
El argumento hora es cualquier expresin que pueda representar una hora. Si hora
contiene "ull, se devuelve "ull.
El siguiente ejemplo usa la funcin Secon- para devolver el segundo actual:
D&$ M&,eg
M&,eg " ,e+ond@!oMA EM&,eg +ont&ene e% nH$ero 7ue
re/resenta e% segundo a+tua%.
0uncin Sgn
Devuelve un entero que indica el signo de un nmero.
Si#ta,i : S(#)nmero*
El argumento nmero puede ser cualquier expresin numrica vlida.
Valores -evueltos
La funcin S'n devuelve los siguientes valores:
Manual del Alumno
Si nmero e S(# -e.ue&.e
$ayor )ue cero -
Igual a cero B
$enor )ue cero T-
El signo del argumento nmero determina el valor devuelto de la funcin S'n.
El siguiente ejemplo usa la funcin S'n para determinar el signo de un nmero:
D&$ M&)ar'4 M&)ar84 M&)arC4 M&,&gno
M&)ar' " '8I M&)ar8 " >8.:I M&)arC " 9
M&,&gno " ,gn@M&)ar'A E Devue%ve '.
M&,&gno " ,gn@M&)ar8A E Devue%ve >'.
M&,&gno " ,gn@M&)arCA E Devue%ve 9.
0uncin Space
Devuelve una cadena que consta del nmero de espacios especificado.
Si#ta,i : Spa!e)nmero*
El argumento nmero es el nmero de espacios que desea en la cadena.
El siguiente ejemplo usa la funcin Space para devolver una cadena que consta de
un nmero de espacios especificado:
D&$ M&*adena
M&*adena " ,/a+e@'9A E Devue%ve una
+adena +on '9 es/a+&os.
M&*adena " #Ho%a# O ,/a+e@'9A O #$undo# E Inserta '9
es/a+&os entre %as dos +adenas.
0uncin S'r
Devuelve la raz cuadrada de un nmero.
Si#ta,i : S;r)nmero*
El argumento nmero puede ser cualquier expresin numrica vlida mayor o igual
a 0.
El siguiente ejemplo usa la funcin S2r para calcular la raz cuadrada de un
nmero:
D&$ MGa&6
MGa&6 " ,7r@:A E Devue%ve 8.
MGa&6 " ,7r@8CA E Devue%ve :.?;BDC'B8CC'8?8.
MGa&6 " ,7r@9A E Devue%ve 9.
MGa&6 " ,7r@>:A E .enera un error en t&e$/o de e5e+u+&n.
0uncin String
Devuelve una cadena de caracteres repetidos de la longitud especificada.
Si#ta,i : Stri#()nmero2 carcter*
La sintaxis de la funcin Strin' tiene los siguientes argumentos:
Manual del Alumno
Parte De!rip!i"#
nmero %ongitud de la cadena devuelta. Si nmero contiene Nu&&@ se devuelve Nu&&.
carcter !digo de car'cter )ue especiFica el car'cter o expresin de cadena cuyo pri5er
car'cter se usa para generar la cadena devuelta. Si carcter contiene Nu&&@ se
devuelve Nu&&.
Si especifica un nmero para carcter mayor que 255, Strin' convierte el nmero
en un cdigo de carcter vlido con la frmula:
carcter Mod 8B=
El siguiente ejemplo usa la funcin Strin' para devolver cadenas de caracteres
repetidos de la longitud especificada:
D&$ M&*adena
M&*adena " ,tr&ng@B4 #K#A E Devue%ve #KKKKK#.
M&*adena " ,tr&ng@B4 :8A E Devue%ve #KKKKK#.
M&*adena " ,tr&ng@'94 #AB*#A E Devue%ve #AAAAAAAAAA#.
0uncin 7Bound
Devuelve el mayor subndice disponible para la dimensin indicada de una matriz.
Si#ta,i : UBou#-)nombredematriz/2 dimensin1*
La sintaxis de la funcin 3&oun- tiene las siguientes partes:
Parte De!rip!i"#
nombredematriz Re)uerido. no50re de la varia0le de 5atriL )ue cu5ple con el est'ndar
de asignacin de no50res de varia0les.
dimensin #pcional. NO5ero entero )ue indica para )u3 di5ensin se va a devolver
el l=5ite superior. Hse - para la pri5era di5ensin@ 1 para la segunda y
as= sucesiva5ente. Si se o5ite dimensin@ se asu5e )ue es igual a -.
La funcin 3&oun- se usa con la funcin )&oun- para determinar el tamao de
una matriz. Use la funcin )&oun- para buscar el lmite inferior de una dimensin
de una matriz.
El lmite inferior de cualquier dimensin siempre es igual a 0. Como resultado,
3&oun- devuelve los siguientes valores para una matriz con estas dimensiones:
D&$ A@'994C4:A
I#tru!!i"# %a&or -e.ue&to
UBou#-)A@ -* -BB
UBou#-)A@ 1* 6
UBou#-)A@ 6* 7
0uncin 7Case
Devuelve una cadena que se convirti en maysculas.
Manual del Alumno
Si#ta,i : UCae)cadena*
El argumento cadena es cualquier expresin de cadena vlida. Si cadena contiene
"ull, se devuelve "ull.
Slo se convierten en maysculas las letras minsculas; todas las letras maysculas
y caracteres que no son letras no cambian.
El siguiente ejemplo usa la funcin 3Case para devolver una versin en maysculas
de una cadena:
D&$ M&Pa%abra
M&Pa%abra " (*ase@#Ho%a $undo#A E Devue%ve #HOLA M(!DO#.
0uncin VarType
Devuelve un valor que indica el subtipo de una variable.
Si#ta,i : %arT$pe)nombredevariable*
El argumento nombredevariable puede ser cualquier variable.
Valores -evueltos
La funcin VarType devuelve los siguientes valores:
Co#ta#te %a&or De!rip!i"#
.bEmpt$ B Empt$ <no iniciado?
.bNu&& - Nu&& <datos no v'lidos?
.bI#te(er 1 Entero
.bLo#( 6 Entero largo
.bSi#(&e 7 NO5ero de co5a Flotante de precisin si5ple
.bDoub&e 8 NO5ero de co5a Flotante de precisin do0le
.bCurre#!$ 9 $oneda
.bDate 7 AecCa
.bStri#( & !adena
.bOb+e!t , o0Eeto de auto5atiLacin
.bError -B Error
.bBoo&ea# -- Valor de tipo Boolean
.b%aria#t -1 Valor de tipo Variant <slo se usa con 5atrices de valores de tipo
Variant?
.bDataOb+e!t -6 Hn o0Eeto de acceso a datos
.bB$te -7 Valor de tipo Byte
Manual del Alumno
.bArra$ &-,1 $atriL
Nota Estas constantes las especiFica VBScript. !o5o resultado@ los no50res se pueden usar en cual)uier
parte del cdigo en lugar de los valores reales.
0uncin 8ee9day
Devuelve un nmero entero que representa el da de la semana.
Si#ta,i : Wee<-a$)fecha, /primerdasemana1*
La sintaxis de la funcin 4ee5-ay tiene los siguientes argumentos:
Parte De!rip!i"#
fecha !ual)uier expresin )ue pueda representar una FecCa. Si fecha contiene
Nu&&@ se devuelve Nu&&.
primerdasemana Hna constante )ue especiFica el pri5er d=a de la se5ana. Si se o5ite@ se
asu5e .bSu#-a$.
Valores
El argumento primerdasemana tiene los siguientes valores:
Co#ta#te %a&or De!rip!i"#
.bUeS$tem B Hsar conFiguracin de AI N%S.
.bSu#-a$ - 4o5ingo
.b9o#-a$ 1 %unes
.bTue-a$ 6 $artes
.bWe-#e-a$ 7 $i3rcoles
.bT5ur-a$ 8 Pueves
.b'ri-a$ 9 Viernes
.bSatur-a$ 7 S'0ado
Valores -evueltos
La funcin 4ee5-ay puede devolver cualquiera de los siguientes valores:
Co#ta#te %a&or De!rip!i"#
.bSu#-a$ - 4o5ingo
.b9o#-a$ 1 %unes
.bTue-a$ 6 $artes
.bWe-#e-a$ 7 $i3rcoles
.bT5ur-a$ 8 Pueves
.b'ri-a$ 9 Viernes
.bSatur-a$ 7 S'0ado
Manual del Alumno
El siguiente ejemplo usa la funcin 4ee5-ay para obtener el da de la semana de
una fecha especificada:
D&$ M&Fe+3a4 M&D&aDeLa,e$ana
M&Fe+3a " <'; de o+tubre de ';=8< E As&gna una Je+3a.
M&D&aDeLa,e$ana " Pee-daG@M&Fe+3aA E M&D&aDeLa,e$ana
+ont&ene = /or7ue M&Fe+3a re/resenta un v&ernes.
0uncin 8ee9dayNa/e
Devuelve una cadena que indica el da de la semana especificado.
Si#ta,i : Wee<-a$Name)-0aema#a2 abre.iar2 primer-0aema#a*
La sintaxis de la funcin 4ee5-ay"ame tiene las siguientes partes:
Parte De!rip!i"#
dasemana Re)uerido. %a designacin nu53rica para el d=a de la se5ana. El valor
nu53rico de cada d=a depende de la conFiguracin del valor
primerdasemana.
abreviar #pcional. Valor de tipo Boolean )ue indica si el no50re del d=a de la
se5ana se de0e a0reviar. Si se o5ite@ el valor predeter5inado es 'a&e@
)ue signiFica )ue el no50re del d=a de la se5ana no se a0revia.
primerdasemana #pcional. Valor nu53rico )ue indica el pri5er d=a de la se5ana.
!onsulte la seccin Valores para sa0er cu'les son los valores per5itidos.
Valores
El argumento primerdasemana puede tener los siguientes valores:
Co#ta#te %a&or De!rip!i"#
.bUeS$tem B Hsar conFiguracin de AI N%S.
.bSu#-a$ - 4o5ingo <predeter5inado?
.b9o#-a$ 1 %unes
.bTue-a$ 6 $artes
.bWe-#e-a$ 7 $i3rcoles
.bT5ur-a$ 8 Pueves
.b'ri-a$ 9 Viernes
.bSatur-a$ 7 S'0ado
El siguiente ejemplo usa la funcin 4ee5Day"ame para devolver el da
especificado:
D&$ M&Fe+3a
M&Fe+3a " Pee-DaG!a$e@=4 TrueA EM&Fe+3a +ont&ene )&e.
0uncin :ear
Devuelve un nmero entero que representa el ao.
Manual del Alumno
Si#ta,i : =ear)fecha*
El argumento fecha es cualquier expresin que pueda representar una fecha. Si
fecha contiene "ull, se devuelve "ull.
El siguiente ejemplo usa la funcin 6ear para obtener el ao a partir de una fecha
especificada:
D&$ M&Fe+3a4 M&Ano
M&Fe+3a " <'; de o+tubre de ';=8< E As&gna una Je+3a.
M&Ano " Year@M&Fe+3aA E M&Ano +ont&ene ';=8.
Manual del Alumno
Semana $ : %rocedimientos en VBScript
rocedi/ientos de VBScript
Tipos de procedi/ientos
En VBScript hay dos tipos de procedimientos; el procedimiento Sub y el
procedimiento Function.
rocedi/ientos Su,
Un procedimiento Sub es una serie de instrucciones de VBScript, entre
instrucciones Sub y En- Sub, que ejecutan acciones pero no devuelven ningn
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 instruccin Sub debe incluir un par de
parntesis vacos ().
El siguiente procedimiento Sub utiliza dos funciones de VBScript intrnsecas o
incorporadas, /s'&ox y !nput&ox, para preguntar al usuario cierta informacin.
Despus muestra los resultados del clculo en base a esa informacin. El clculo se
ejecuta en un procedimiento Function creado mediante VBScript. Se muestra en la
explicacin del procedimiento Function a continuacin.
Su/ Con0ertirTe1p#%
te1p = InputBo.#"E+cri/" 2" te1per"tur" en !r"o+ F"ren3eit4"5 6%
*+!Bo. "L" te1per"tur" e+ e " 7 Ce2+iu+#te1p% 7 " !r"o+ Ce2+iu+4"
En Su/
Instruccin Su,
Declara el nombre, argumentos y cdigo de que forman el cuerpo de un
procedimiento Sub.
Si#ta,i : /Pub&i! 8 Pri.ate1 Sub nombre /)listadeargumentos*1
/instrucciones1
/E,it Sub1
/instrucciones1
E#- Sub
La sintaxis de la instruccin Sub tiene las siguientes partes:
Parte De!rip!i"#
Pub&i! Indica )ue el procedi5iento Sub es accesi0le desde todos los de5's
procedi5ientos en todas las secuencias de co5andos.
Pri.ate Indica )ue el procedi5iento Sub es accesi0le slo desde los
procedi5ientos de la secuencia de co5andos en la )ue se declara.
nombre No50re del procedi5iento SubU sigue la convencin de no5enclatura
est'ndar de varia0les.
listadeargumentos %ista de varia0les )ue representan los argu5entos pasados al
Manual del Alumno
procedi5iento Sub al ser lla5ado. %as distintas varia0les se separan
con co5as.
instrucciones !ual)uier grupo de instrucciones para ser eEecutadas dentro del cuerpo
del procedi5iento Sub.
El argumento listadeargumentos tiene las siguiente sintaxis y las siguientes partes:
[&yVal | &ye.] nombredevariable[$ %]
Parte De!rip!i"#
B$%a& Indica )ue el argu5ento se pasa por valor.
B$Re7 Indica )ue el argu5ento se pasa por reFerencia.
nombredevariable No50re de la varia0le )ue representa el argu5entoU sigue la
convencin de no5enclatura est'ndar de varia0les.
Si no se especifica explcitamente mediante Public o Private, los procedimientos
Sub son pblicos de forma predeterminada, esto es, son visibles a todos los dems
procedimientos en la secuencia de comandos. El valor de las variables en un
procedimiento Sub no se preserva entre llamadas al procedimiento.
Todo el cdigo ejecutable debe estar contenido en procedimientos. No se puede
definir un procedimiento Sub dentro de otro procedimiento Sub o Function.
La instruccin Exit Sub produce la salida inmediata del procedimiento Sub. La
ejecucin del programa contina con la instruccin siguiente a la que llam al
procedimiento Sub. Puede aparecer cualquier nmero 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
expresin.
Puede llamar un procedimiento Sub mediante el nombre del procedimiento seguido
por la lista de argumentos. Vea la instruccin Call para obtener informacin
especfica acerca de como llamar procedimientos Sub.
rocedi/ientos 0unction
Un procedimiento Function es una serie de instrucciones VBScript entre
instrucciones Function y En- Function. Un procedimiento Function es similar a
un procedimiento Sub, pero tambin 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 instruccin Function debe incluir un par de parntesis vacos.
Un procedimiento Function devuelve un valor asignando un valor a su nombre en
una o ms instrucciones del procedimiento. El tipo de datos devuelto por un
procedimiento Function siempre es un tipo Variant.
En el siguiente ejemplo, la funcin Celsius calcula los grados Celsius a partir de
grados Fahrenheit. Cuando se llama a la funcin desde el procedimiento Sub
Manual del Alumno
ConvertTemp, se transfiere a la funcin una variable que contiene el valor del
argumento. El resultado del clculo se devuelve al procedimiento que realiz la
llamada y se muestra en un cuadro de mensajes.
Su/ Con0ertirTe1p#%
te1p = InputBo.#"E+cri/" 2" te1per"tur" en !r"o+ F"ren3eit4"5 6%
*+!Bo. "L" te1per"tur" e+ e " 7 Ce2+iu+#te1p% 7 " !r"o+ Ce2+iu+4"
En Su/
Function Ce2+iu+#8Gr"o+%
Ce2+iu+ = #8Gr"o+ - 9'% : ; ( <
En Function
Instruccin 0unction
Declara el nombre, argumentos y cdigo que forma el cuerpo de un procedimiento
Function.
Si#ta,i : /Pub&i! 8 Pri.ate1 'u#!tio# nombre /)listadeargumentos*1
/instrucciones1
/nombre > expresin1
/E,it 'u#!tio#1
/instrucciones1
/nombre > expresin1
E#- 'u#!tio#
La sintaxis de la instruccin Function tiene las siguientes partes:
Parte De!rip!i"#
Pub&i! Indica )ue el procedi5iento 'u#!tio# es accesi0le para todos los
de5's procedi5ientos de todas las secuencias de co5andos.
Pri.ate Indica )ue el procedi5iento 'u#!tio# es accesi0le slo para los de5's
procedi5ientos de la secuencia de co5andos donde est' declarado.
nombre No50re de 'u#!tio# )ue cu5ple con las convenciones est'ndar de
asignacin de no50res de varia0les.
listadeargumentos %ista de varia0les )ue representa los argu5entos )ue se pasan al
procedi5iento 'u#!tio# cuando se lla5a. $Oltiples varia0les se
separan con co5as.
instrucciones !ual)uier grupo de instrucciones )ue se va a eEecutar dentro del cuerpo
del procedi5iento 'u#!tio#.
expresin Valor devuelto por 'u#!tio#.
El argumento listadeargumentos tiene la siguiente sintaxis y partes:
[&yVal | &ye.] nombredevariable[$ %]
Parte De!rip!i"#
B$%a& Indica )ue el argu5ento se pasa por valor.
B$Re7 Indica )ue el argu5ento se pasa por reFerencia.
nombredevariable No50re de la varia0le )ue representa el argu5ento. !u5ple con las
Manual del Alumno
convenciones est'ndar de asignacin de no50res de varia0les.
Si no se especifica explcitamente mediane Public o Private, los procedimientos
Function son pblicos de manera predeterminada, es decir, son visibles a todos los
dems 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 cdigo ejecutable debe estar contenido en procedimientos. No se puede
definir un procedimiento Function dentro de otro procedimiento Function o Sub.
La instruccin Exit Function produce una salida inmediata desde un procedimiento
Function. La exjecucin del programa contina con la instruccin siguiente a la
instruccin que llam al procedimiento Function. Puede aparecer cualquier nmero
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 expresin de la misma forma que usa las funciones intrnsecas,
como S2r, Cos o C(r, cuando desee usar el valor devuelto por la funcin.
Para llamar a un procedimiento Function se usa el nombre de la funcin, seguido
de la lista de argumentos entre parntesis, en una expresin. Vea la instruccin
Call para obtener informacin especfica acerca de cmo llamar procedimientos
Function.
Pre!au!i"# %os procedi5ientos 'u#!tio# pueden ser recursivosU es decir@ se pueden lla5ar a ellos
5is5os para realiLar una tarea deter5inada. Sin e50argo@ la recursividad puede producir un
des0orda5iento de la pila.
Para devolver un valor desde una funcin, asigne el valor al nombre de la funcin.
Puede aparecer cualquier cantidad de asignaciones de ese tipo en cualquier lugar,
dentro del procedimiento. Si no se asigna ningn valor a nombre, el procedimiento
devuelve un valor predeterminado: una funcin numrica devuelve 0 y una funcin
de cadena devuelve una cadena de longitud cero (""). Una funcin que devuelve
una referencia a un objeto devuelve "ot(in' si no se asigna ninguna referencia de
objeto a nombre (mediante el uso de Set) dentro de Function.
El siguiente ejemplo muestra cmo asignar un valor devuelto a una funcin llamada
BusquedaBinaria. En este caso, se aigna False al nombre para indicar que no se
encontr algn valor.
Function Bu+=ue"Bin"ri"#4 4 4%
4 4 4
> V"2or no encontr"o4 $e0ue20e un 0"2or F"2+e4
I8 in8erior > +uperior T3en
Bu+=ue"Bin"ri" = F"2+e
E.it Function
En I8
4 4 4
En Function
Manual del Alumno
Las variables usadas en procedimientos Function pueden ser de dos categoras: las
que se declaran explcitamente dentro del procedimiento y las que no. Las variables
que se declaran explcitamente 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 explcitamente en un procedimiento tambin son locales a menos
que se declaren explcitamente en un nivel superior desde fuera del procedimiento.
",tencin de datos dentro y 4uera de procedi/ientos
Cada fragmento de datos se transfiere a los procedimientos utilizando un
argumento. Los argumentos sirven como marcadores de posicin para los datos
que desea transferir al procedimiento. Cuando crea un procedimiento utilizando la
instruccin Sub o la instruccin Function, se deben incluir parntesis despus del
nombre del procedimiento. Los argumentos se colocan dentro de estos parntesis,
separados por comas. En el siguiente ejemplo, J.rados es un marcador de posicin
para el valor que se va a transferir a la funcin Celsius para la conversin:
Function Ce2+iu+#8Gr"o+%
Ce2+iu+ = #8Gr"o+ - 9'% : ; ( <
En 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.
7so de los procedi/ientos Su, y 0unction en cdigo
Un procedimiento Function en el cdigo, siempre se debe utilizar en la parte
derecha de una asignacin de variable o en una expresin. Por ejemplo:
Te1p = Ce2+iu+#8Gr"o+%
o
*+!Bo. "L" te1per"tur" Ce2+iu+ e+ e " 7 Ce2+iu+#8Gr"o+% 7 " !r"o+4"
Para llamar a un procedimiento Sub desde otro procedimiento, escriba slo el
nombre del procedimiento junto con los valores de los argumentos necesarios,
separados por una coma. La instruccin Call no se necesita, pero si la utiliza, debe
escrirbir los argumentos entre parntesis.
El siguiente ejemplo muestra dos llamadas al procedimiento M&Pro+. Uno utiliza la
instruccin Call en el cdigo y el otro no. Ambos procedimientos hacen
exactamente lo mismo.
*a%% M&Pro+@/r&$erarg4 segundoargA
M&Pro+ /r&$erarg4 segundoarg
Observe que los parntesis se omiten en la llamada cuando no se utiliza la
instruccin Call.
Manual del Alumno
Semana & : 'structuras de control(
7so de instrucciones condicionales
Control de la e3ecucin del progra/a
YPuede controlar el flujo de su secuencia de comandos con instrucciones
condicionales e instrucciones de bucle. Utilizando instrucciones condicionales, puede
escribir cdigo de VBScript que tome decisiones y repita acciones. Las siguientes
instrucciones condicionales estn disponibles en VBScript:
Instruccin !....T(en...Else
Instruccin Select Case
To/a de decisiones utili;ando I4 <<< T1en <<< Else
La instruccin !....T(en...Else sse utiliza para evaluar si una condicin es True o
False y despus especificar qu instrucciones ejecutar, dependiendo del resultado.
Normalmente, la condicin es una expresin que utiliza un operador de
comparacin para comparar un valor o una variable con otra. Para obtener ms
informacin acerca de los operadores de comparacin, consulte Operadores de
comparacin. Las instrucciones !....T(en...Else se pueden anidar en tantos niveles
como necesite.
Instruccin I4<<<T1en<<<Else
Ejecuta de manera condicional un grupo de instrucciones, segn el valor de una
expresin.
Si#ta,i :
I7 condicin T5e# instrucciones/E&e instruccioneselse1
O pue-e uar &a i#ta,i e# 7orma -e b&o;ue:
I7 condicin T5e#
/instrucciones1
/E&eI7 condicin-n T5e#
/instruccioneselseif11 3 3 3
/E&e
/instruccioneselse11
E#- I7
La sintaxis de la instruccin !....T(en...Else tiene las siguientes partes:
Parte De!rip!i"#
condicin Hno o 5's de los siguientes dos tipos de expresiones:
Manual del Alumno
Hna expresin nu53rica o expresin de cadena )ue se evalOa a True o
'a&e. Si condicin es Nu&&@ condicin se trata co5o 'a&e.
Hna expresin de la For5a T$peO7 nombredeobjeto I tipodeobjeto.
nombredeobjeto es cual)uier reFerencia a un o0Eeto y tipodeobjetoes
cual)uier tipo de o0Eeto v'lido. %a expresin es igual a True si
nombredeobjeto es el tipo de o0Eeto especiFicado por tipodeobjetoU en
caso contrario es igual a 'a&e.
instrucciones Hna o 5's instrucciones separadas por dos puntosU )ue se eEecuta si
condicin es True.
condicin-n Igual )ue condicin.
instruccioneselseif Hna o 5's instrucciones )ue se eEecutan si la condicin-n asociada es
True.
instruccioneselse Hna o 5's instrucciones )ue se eEecutan si ninguna expresin
condicin o condicin-n anterior es igual a True.
E3ecucin de instrucciones si una condicin es True
Si slo necesita ejecutar una instruccin cuando una condicin es True, puede
utilizar la sintaxis de linea nica de la instruccin !....T(en...Else. El siguiente
ejemplo muestra la sintaxis de lnea nica; observe que este ejemplo omite la
palabra clave Else.
Su/ Fec3"Fi?"#%
$i1 1iFec3"
1iFec3" = @6'(A;(<;@
I8 1iFec3" < No& T3en 1iFec3" = No&
En Su/
Si desea ejecutar ms de una lnea de cdigo, debe utilizar la sintaxis de mltiples
lneas (o de bloque). Esta sintaxis incluye la instruccin En- !., como se muestra
en el siguiente ejemplo:
Su/ A0i+oU+u"rio#0"2or%
I8 0"2or = A T3en
Eti=uet"A0i+o4ForeCo2or = 0/Ro?o
Eti=uet"A0i+o4Font4Bo2 = True
Eti=uet"A0i+o4Font4It"2ic = True
En I8
En Su/
E3ecucin de ciertas instrucciones si la condicin es True y
e3ecucin de otras si es 0alse
Puede utilizar una instruccin !....T(en...Else para definir dos bloques de
instrucciones ejecutables: un bloque que se ejecuta si la condicin es True y otro
que se ejecuta si la condicin es False.
Su/ A0i+oU+u"rio#0"2or%
I8 0"2or = A T3en
Manual del Alumno
Eti=uet"A0i+o4ForeCo2or = 0/Ro?o
Eti=uet"A0i+o4Font4Bo2 = True
Eti=uet"A0i+o4Font4It"2ic = True
E2+e
Eti=uet"A0i+o4Foreco2or = 0/Ne!ro
Eti=uet"A0i+o4Font4Bo2 = F"2+e
Eti=uet"A0i+o4Font4It"2ic = F"2+e
En I8
En Su/
Decisin entre varias alternativas
Una variacin en la instruccin !....T(en...Else le permite elegir entre varias
alternativas. Agregar la clusula Else!. ampla la funcionalidad de la instruccin
!....T(en...Else para que pueda controlar el flujo del programa basndose en
diferentes posibilidades. Por ejemplo:
Su/ V"2or$e0ue2to#0"2or%
I8 0"2or = A T3en
*+!Bo. 0"2or
E2+eI8 0"2ue = 6 T3en
*+!Bo. 0"2or
E2+eI8 0"2ue = ' t3en
*+!/o. 0"2or
E2+e
*+!/o. "BV"2or 8uer" e 2C1ite+!"
En I8
Puede agregar tantas clusulas Else!. como necesite para proporcionar opciones
alternativas. El uso intensivo de clusulas Else!. frecuentemente llega a ser
voluminosos. La mejor forma de elegir entre varias alternativas es la instruccin
Select Case.
To/a de decisiones utili;ando Select Case
La estructura Select Case proporciona una alternativa a la ejecucin de
!....T(en...Else!. selectivamente en un bloque de instrucciones de entre mltiples
bloques de instrucciones. Una instruccin Select Case proporciona una
funcionalidad similar a la instruccin !....T(en...Else, pero hace el cdgio ms
eficiente y legible.
Una estructura Select Case trabaja con una expresin de comprobacin sencilla
que se calcula una vez, al comienzo de la estructura. Despus el resultado de la
expresin se compara con los valores para cada Case. Si existe una coincidencia,
se ejecuta el bloque de instrucciones asociado con ese Case:
Se2ect C"+e $ocu1ent4For1u2"rio64TipoT"r?et"4,ption+#DniceSe2eccion"o%4Te.t
C"+e "*"+terC"r"
*o+tr"rLo!o*C
V"2i"rCuent"*C
C"+e "Vi+""
*o+tr"rLo!oVi+"
V"2i"rCuent"Vi+"
C"+e "A1eric"n E.pre++"
*o+tr"rLo!oA*EEC,
V"2i"rCuent"A*EEC,
Manual del Alumno
C"+e E2+e
*o+tr"r,tr"I1"!en
Vo20erAPeir
En Se2ect
Observe que la estructura Select Case calcula una expresin una vez al comienzo
de la estructura. Por el contrario, la estructura !....T(en...Else!. puede evaluar
una expresin diferente en cada instruccin Else!.. Slo puede reemplazar una
estructura !....T(en...Else!. con una estructura Select Case si cada instruccin
Else!. calcula la misma expresin.
Instruccin Select Case
Ejecuta uno de varios grupos de instrucciones, segn el valor de una expresin.
Si#ta,i
Se&e!t Cae expresindecomprobacin
/Cae listadeexpresiones-n
/instrucciones-n11 3 3 3
/Cae E&e listadeexpresiones-n
/instruccioneselse-n11
E#- Se&e!t
La sintaxis de la instruccin Select Case tiene las siguientes partes:
Parte De!rip!i"#
expresindecomprobacin !ual)uier expresin nu53rica o expresin de cadena.
listadeexpresiones-n Re)uerido si aparece Cae. %ista deli5itada de una o 5's
expresiones.
instrucciones-n Hna o 5's instrucciones )ue se eEecutan si
expresindecomprobacin coincide con cual)uier parte de
listadeexpresiones-n.
instruccioneselse-n Hna o 5's instrucciones eEecutadas si
expresindecomprobacin no coincide con ninguna de las
cl'usulas Cae.
Si expresindecomprobacin coincide con alguna expresin Case
listadeexpresiones, las instrucciones que aparecen a continuacin de la clusula
Case se ejecutan hasta la siguiente clusula Case, o para la ltima clusula, hasta
En- Select. Luego, el control pasa a la instruccin que sigue a En- Select. Si
expresindecomprobacin coincide con una expresin listadeexpresiones en ms de
una clusula Case, slo se ejecutan las instrucciones que siguen a la primera
coincidencia.
La clusula Case Else se usa para indicar que se ejecute instruccioneselse si no se
encuentra ninguna coincidencia entre expresindecomprobacin y una
listadeexpresiones en cualquier otra seleccin Case. Aunque no es necesario, es
una buena idea tener una instruccin Case Else en su bloque Select Case para
controlar los valores de expresindecomprobacin imprevistos. Si ningn Case
listadeexpresiones coincide con expresindecomprobacin y no hay una instruccin
Case Else, la ejecucin contina en la instruccin siguiente a En- Select.
Las instrucciones Select Case se pueden anidar. cada instruccin Select Case
anidada debe tener una instruccin En- Select correspondiente.
Manual del Alumno
El siguiente ejemplo muestra el uso de la instruccin Select Case:
$i1 Co2or5 *iV"r
Su/ C"1/i"rFono #Co2or%
*iV"r = 2c"+e #Co2or%
Se2ect C"+e *iV"r
C"+e "ro?o" ocu1ent4/!Co2or = "re"
C"+e "0ere" ocu1ent4/!Co2or = "!reen"
C"+e ""Fu2" ocu1ent4/!Co2or = "/2ue"
C"+e E2+e *+!Bo. "+e2eccione otro co2or"
En Se2ect
En Su/
Bucles /ediante cdigo
7so de ,ucles para repetir cdigo
Los bucles le permiten ejecutar un grupo de instrucciones de forma repetida.
Algunos bucles repiten instrucciones hasta que una condicin es False; otros
repiten instrucciones hasta que la condicin es True. Tambin hay bucles que
repiten instrucciones un nmero de veces especfico.
En VBScript estn disponibles las siguientes instrucciones de bucles:
Do...)oop: ejecuta el bucle mientras o hasta que una condicin es
True
4(ile...4en-: ejecuta el bucle mientras una condicin es True
For..."ext: utiliza un contador para ejecutar instrucciones un
nmero de veces especfico
For Eac(..."ext: Repite un grupo de instrucciones para cada
elemento de una coleccin o para cada elemento de una matriz.
7so de ,ucles Do
Puede utilizar las instrucciones Do...)oop para ejecutar un bloque de instrucciones
un nmero de veces indefinido. Las instrucciones se repiten mientras una condicin
es True o hasta que una condicin pasa a ser True.
Instruccin Do<<<$oop
Repite un bloque de instrucciones mientras una condicin es True o hasta que una
condicin es True.
Manual del Alumno
Si#ta,i
Do /?W5i&e 8 U#ti&@ condicin1
/instrucciones1
/E,it Do1
/instrucciones1
Loop
O pue-e uar &a i#ta,i:
Do
/instrucciones1
/E,it Do1
/instrucciones1
Loop /?W5i&e 8 U#ti&@ condicin1
La sintaxis de la instruccin Do...)oop tiene las siguientes partes:
Parte De!rip!i"#
condicin Expresin nu53rica o expresin de cadena )ue es True o 'a&e. Si
condicin es Nu&&@ condicin se trata co5o 'a&e.
instrucciones Hna o 5's instrucciones )ue se repiten 5ientras o Casta )ue condicin es
True.
Repeticin de instrucciones /ientras una condicin es
True
Utilice la palabra clave 4(ile para comprobar una condicin en una instruccin
Do...)oop. Puede comprobar la condicin antes de entrar en el bucle (como se
muestra en el ejemplo CompPrimerWhile a continuacin) o puede comprobarla
despus de que el bucle se haya ejecutado al menos una vez (como se muestra en
el ejemplo CompUltimoWhile). En el procedimiento CompPrimerWhile, si $&!u$ se
establece a 9 en lugar de 20, las instrucciones que hay dentro del bucle nunca se
ejecutaran. En el procedimiento CompUltimoWhile, las instrucciones que hay
dentro del bucle slo se ejecutan una vez porque la condicin ya es False.
Su/ Co1pPri1erG3i2e#%
$i1 cont"or5 1iNu1
cont"or = A
1iNu1 = 'A
$o G3i2e 1iNu1 > 6A
1iNu1 = 1iNu1 - 6
cont"or = cont"or H 6
Loop
Manual del Alumno
*+!Bo. "E2 /uc2e re"2iFI " 7 cont"or 7 " repeticione+4"
En Su/
Su/ Co1pU2ti1oG3i2e#%
$i1 cont"or5 1iNu1
cont"or = A
1iNu1 = <
$o
1iNu1 = 1iNu1 - 6
cont"or = cont"or H 6
Loop G3i2e 1iNu1 > 6A
*+!Bo. "E2 /uc2e re"2iFI " 7 cont"or 7 " repeticione+4"
En Su/
Repeticin de una instruccin 1asta 'ue una condicin
pasa a ser True
Puede utilizar la palabra clave 3ntil de dos formas para comprobar una condicin
en una instruccin Do...)oop. Puede comprobar la condicin antes de entrar en el
bucle (como se muestra en el ejemplo CompPrimerUntil) o puede comprobarla
despus de que el bucle se haya ejecutado al menos una vez (como se muestra en
el ejemplo CompUltimoUntil). Mientras la condicin es False se ejecuta el bucle.
Su/ Co1pPri1erUnti2#%
$i1 cont"or5 1iNu1
cont"or = A
1iNu1 = 'A
$o Unti2 1iNu1 = 6A
1iNu1 = 1iNu1 - 6
cont"or = cont"or H 6
Loop
*+!Bo. "E2 /uc2e re"2iFI " 7 cont"or 7 " repeticione+4"
En Su/
Su/ Co1pU2ti1oUnti2#%
$i1 cont"or5 1iNu1
cont"or = A
1iNu1 = 6
$o
1iNu1 = 1iNu1 H 6
cont"or = cont"or H 6
Loop Unti2 1iNu1 = 6A
*+!Bo. "E2 /uc2e re"2iFI " 7 cont"or 7 " repeticione+4"
En Su/
Salida de una instruccin Do <<< $oop desde dentro del
,ucle
Puede salir de una instruccin Do ... )oop utilizando la instruccin Exit Do. Puesto
que normalmente desea salir slo en ciertas situaciones, como evitar un bucle sin
fin, debe utilizar la instruccin Exit Do en el bloque de instrucciones True de una
instruccin !....T(en...Else. Si la condicin es False, el bucle se ejecuta
normalmente.
Manual del Alumno
En el siguiente ejemplo, $&!u$ se asigna a un valor que crea un bucle sin fin. La
instruccin !....T(en...Else comprueba esta condicin, impidiendo la repeticin
infinita.
Su/ E?e1p2oS"2ir#%
$i1 cont"or5 1iNu1
cont"or = A
1iNu1 = <
$o Unti2 1iNu1 = 6A
1iNu1 = 1iNu1 - 6
cont"or = cont"or H 6
I8 1iNu1 < 6A T3en E.it $o
Loop
*+!Bo. "E2 /uc2e re"2iFI " 7 cont"or 7 " repeticione+4"
En Su/
7so de 81ile <<< 8end
La instruccin 4(ile ... 4en- se proporciona en VBScript para las personas que
estn familiarizadas con su uso. Sin embargo, se recomienda que utilice Do ...
)oop debido a la escasa flexibilidad de la instruccin 4(ile ... 4en-.
Instruccin 81ile<<<8end
Ejecuta una serie de instrucciones mientras un condicin dada se evale como
True.
Si#ta,i :
W5i&e condicin
/instrucciones1
We#-
La sintaxis de la instruccin 4(ile...4en- tiene las siguientes partes:
Parte De!rip!i"#
condicin expresin nu53rica o expresin de cadena )ue se evalOa co5o True o 'a&e.
Si condicin es Nu&&@ condicin se trata co5o 'a&e.
instrucciones Hna o 5's instrucciones eEecutadas 5ientras la condicin se evalOe co5o
True.
Si condicin se evala como True, todas las instrucciones en instrucciones se
ejecutan hasta que se encuentre la instruccin 4en-. Entonces el control vuelve a
la instruccin 4(ile y condicin se comprueba de nuevo. Si condicin se sigue
evaluando como True, el proceso se repite. Si no se evala como True, la
ejecucin continua con la instruccin que sigue a la instruccin 4en-.
Los bucles 4(ile...4en- se pueden anidar en cualquier nivel. Cada 4en- coincide
con el 4(ile ms cercano.
Manual del Alumno
7so de 0or <<< Next
Puede utilizar las instrucciones For..."ext para ejecutar un bloque de instrucciones
un nmero de veces especfico. Para bucles, utilice una variable de tipo contador
cuyo valor aumente o disminuya con cada repeticin del bucle.
Por ejemplo, el siguiente procedimiento ejecuta 50 veces un procedimiento llamado
M&Pro+. La instruccin For especifica la variable de tipo contador x y los valores
inicial y final de la misma. La instruccin "ext aumenta la variable de tipo contador
de 1 en 1.
Su/ )"F*iProc;AVece+#%
$i1 .
For . = 6 To ;A
*iProc
Ne.t
En Su/
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.
Su/ Tot"2e+eP"re+#%
$i1 ?5 tot"2
For ? = ' To 6A Step '
tot"2 = tot"2 H ?
Ne.t
*+!Bo. "E2 tot"2 e+ " 7 tot"2
En Su/
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 $&!u$ 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.
Su/ Nue0oTot"2#%
$i1 1iNu15 tot"2
For 1iNu1 = 6J To ' Step -'
tot"2 = tot"2 H 1iNu1
Ne.t
*+!Bo. "E2 tot"2 e+ " 7 tot"2
En Su/
Puede salir de cualquier instruccin For..."ext antes de que el contador alcance su
valor final utilizando la instruccin Exit For. Como normalmente desea salir slo en
ciertas situaciones, como cuando se produce un error, debe utilizar la instruccin
Exit For en el bloque de instrucciones True de una instruccin !....T(en...Else. Si
la condicin es False, el bucle se ejecuta normalmente.
Instruccin 0or<<<Next
Repite un grupo de instrucciones un nmero especificado de veces.
Manual del Alumno
Si#ta,i :
'or contador > inicio To fin /Step paso1
/instrucciones1
/E,it 'or1
/instrucciones1
Ne,t
La sintaxis de la instruccin For..."ext tiene las siguientes partes:
Parte De!rip!i"#
contador Varia0le nu53rica )ue se usa co5o contador de 0ucle. %a varia0le no puede
ser un ele5ento de una 5atriL o un ele5ento de un tipo deFinido por el
usuario.
inicio Valor inicial de contador.
fin Valor Final de contador.
paso !antidad )ue se ca50ia contador cada veL )ue se eEecuta el 0ucle. Si no se
especiFica@ el valor predeter5inado de paso es uno.
instrucciones Hna o 5's instrucciones entre 'or y Ne,t )ue se eEecutan el nO5ero 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 continuacin:
%a&or E& bu!&e e e+e!uta i
ositivo o B contador *W fin
Negativo contador +W 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 comprobacin que produjo la ejecucin
inicial del bucle), o se sale del bucle y contina la ejecucin con la instruccin que
sigue a la instruccin "ext.
7so de 0or Eac1<<<Next
Un bucle For Eac(..."ext es parecido a un bucle For..."ext. En lugar de repetir
las instrucciones un nmero determinado de veces , un bucle For Eac(..."ext
repite un grupo de instrucciones para cada elemento de una coleccin de objetos
para cada elemento de una matriz. Esto es especialmente til si no desea conocer
cuntos elementos hay en una coleccin.
En el ejemplo de cdigo HTML completo siguiente, el contenido de un objeto
Dictionary se utiliza para colocar texto en varios cuadros de texto:
Manual del Alumno
<)T*L>
<)EA$><TITLE>For1u2"rio+ K e2e1ento+<(TITLE><()EA$>
<SCRIPT LANGUAGE="VBScript">
<!--
Su/ c1C"1/i"rL,nC2icM
$i1 >Cre" un" 0"ri"/2e
Set = Cre"te,/?ect#"Scriptin!4$iction"rK"%
4A "A"5 "Aten"+" >A!re!" "2!un"+ c2"0e+ K e2e1ento+
4A "6"5 "Be2!r"o"
4A "'"5 "E2 C"iro"
For E"c3 I in
$ocu1ent48r1For14E2e1ent+#I%4V"2ue = $4Ite1#I%
Ne.t
En Su/
-->
<(SCRIPT>
<B,$->
<CENTER>
<F,R* NA*E="8r1For1"
<Input TKpe = "Te.t"><p>
<Input TKpe = "Te.t"><p>
<Input TKpe = "Te.t"><p>
<Input TKpe = "Te.t"><p>
<Input TKpe = "Button" NA*E="c1C"1/i"r" VALUE=")"!" c2ic "=uC"><p>
<(F,R*>
<(CENTER>
<(B,$->
<()T*L>
Instruccin 0or Eac1<<<Next
Repite un grupo de instrucciones para cada elemento de una matriz o coleccin.
Si#ta,i :
'or Ea!5 elemento I# grupo
/instrucciones1
/E,it 'or1
/instrucciones1
Ne,t /elemento1
La sintaxis de la instruccin For Eac(..."ext tiene las siguientes partes:
Parte De!rip!i"#
elemento Varia0le )ue se usa para iterar por los ele5entos de la coleccin o 5atriL.
ara colecciones@ elemento slo puede ser una varia0le %aria#t@ una varia0le
Ob+e!t gen3rica o cual)uier varia0le de o0Eeto de auto5atiLacin espec=Fica.
ara 5atrices@ elemento slo puede ser una varia0le %aria#t.
grupo No50re de una 5atriL o coleccin de o0Eetos.
instrucciones Hna o 5's instrucciones )ue se eEecutan en cada ele5ento de grupo.
Manual del Alumno
Se entra en el bloque For Eac( 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 ms elementos en grupo, las
instrucciones del bucle se siguen ejecutando para cada elemento. Cuando no hay
ms elementos en grupo, se sale del bucle y contina la ejecucin con la instruccin
que sigue a la instruccin "ext.
Exit For slo se puede usar dentro de una estructura de control For Eac(..."ext o
For..."ext 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 evaluacin de algunas condiciones (por ejemplo, !....T(en), y
transfiere el control a la instruccin siguiente a "ext.
Puede anidar bucles For Eac(..."ext colocando un bucle For Eac(..."ext dentro
de otro. Sin embargo, cada elemento del bucle debe ser nico.
Nota Si o5ite elemento en una instruccin Ne,t@ la eEecucin continOa co5o si lo Cu0iera incluido. Si se
encuentra una instruccin Ne,t antes de su instruccin 'or correspondiente@ se produce un error.
El siguiente ejemplo muestra el uso de la instruccin For Eac(..."ext:
Function *o+tr"rLi+t"$eC"rpet"+#e+peci8ic"cionec"rpet"%
$i1 8+o5 85 865 8c5 +
Set 8+o = Cre"te,/?ect#"Scriptin!4Fi2eSK+te1,/?ect"%
Set 8 = 8+o4GetFo2er#e+peci8ic"cionec"rpet"%
Set 8c = 84Fi2e+
For E"c3 86 in 8c
+ = + 7 864n"1e
+ = + 7 "<BR>"
Ne.t
*o+tr"rLi+t"$eC"rpet"+ = +
En Function
Manual del Alumno
Semana ) : *adenas y n+meros(
"perador de Concatenacin =
Se utiliza para forzar la concatenacin de las cadenas de dos expresiones.
Si#ta,i : reu&ta-o > e,prei"#A B e,prei"#C
La sintaxis del operador 7 consta de las siguientes partes:
Parte De!rip!i"#
resultado !ual)uier varia0le.
expresin1 !ual)uier expresin.
expresin2 !ual)uier expresin.
Si una expresin no es una cadena de caracteres, se convierte en un tipo Strin'. Si
ambas expresiones son "ull, el resultado tambin es "ull. Sin embargo, si slo
una expresin es "ull, esa expresin se considera como una cadena de longitud
cero al concatenarse con la otra expresin. Cualquier expresin Empty se considera
tambin una cadena de longitud cero.
"ull
Un valor que indica que una variable no contiene datos vlidos. "ull es el
resultado de:
Una asignacin explcita de "ull a una variable.
Cualquier operacin entre expresiones que contienen "ull.
Empty
Un valor que indica que una variable no tiene asignado ningn valor inicial.
Las variables Empty son iguales a 0 en un contexto numrico o de longitud
cero ("") en un contexto de cadena.
"perador >
Se utiliza para sumar dos nmeros.
Si#ta,i : reu&ta-o > e,prei"#ADe,prei"#C
La sintaxis del operador 8 consta de estas partes:
Manual del Alumno
Parte De!rip!i"#
resultado !ual)uier varia0le nu53rica.
expresin1 !ual)uier expresin.
expresin2 !ual)uier expresin.
Cuando utilice el operador 8 para concatenar dos cadenas de tipo carcter, debera
utilizar el operador 7 para que la concatenacin elimine la ambigedad y
proporcione cdigo de documentacin propia.
Cuando utilice el operador 8, no ser capaz de determinar si se producir una suma
o una concatenacin de cadenas.
El subtipo base de las expresiones determina el comportamiento del operador 8 del
siguiente modo:
Si E#to#!e
A50as expresiones son nu53ricas Su5a.
A50as expresiones son del tipo String !oncatenacin.
Hna expresin es de un tipo de datos nu53rico y la otra de tipo String Su5a.
Si una de las expresiones o ambas son expresiones de tipo "ull, resultado es "ull.
Si ambas expresiones son Empty, resultado es !nte'er. Sin embargo, slo una de
las expresiones es Empty, se devuelve la otra sin modificaciones como resultado.
"peradores de co/paracin
Utilizado para comparar expresiones.
Si#ta,i :
resultado > expresin1 operadorcomparacin expression2
resultado > objeto1 I objeto2
Los operadores de comparacin constan de las siguientes partes:
Parte De!rip!i"#
resultado !ual)uier varia0le nu53rica.
expresin !ual)uier expresin.
Manual del Alumno
operadorcomparacin !ual)uier operador de co5paracin.
objeto !ual)uier no50re de o0Eeto.
El operador !s tiene una funcionalidad de comparacin especfica que se diferencia
de los operadores en la siguiente tabla. sta contiene una lista de operadores de
comparacin y las condiciones que determinan si resultado es True, False o "ull:
Opera-or De!rip!i"# True i 'a&e i Nu&& i
E $enor )ue expresin1 *
expresin2
expresin1 +W
expresin2
expresin1 o
expresin2 W Nu&&
E> $enor o igual
)ue
expresin1 *W
expresin2
expresin1 +
expresin2
expresin1 o
expresin2 W Nu&&
F $ayor )ue expresin1 +
expresin2
expresin1 *W
expresin2
expresin1 o
expresin2 W Nu&&
F> $ayor o igual
)ue
expresin1 +W
expresin2
expresin1 *
expresin2
expresin1 o
expresin2 W Nu&&
> Igual a expresin1 W
expresin2
expresin1 *+
expresin2
expresin1 o
expresin2 W Nu&&
EF 4istinto de expresin1 *+
expresin2
expresin1 W
expresin2
expresin1 o
expresin2 W Nu&&
Cuando compara dos expresiones, puede no ser capaz de determinar fcilmente si
las expresiones se estn comparando como nmeros o como cadenas.
La siguiente tabla muestra cmo se comparan las expresiones o qu resulta de la
comparacin, dependiendo del subtipo base:
Si e#to#!e
%as dos expresiones son
nu53ricas
RealiLa una co5paracin nu53rica.
%as dos expresiones son
cadenas
RealiLa una co5paracin de cadena.
Hna expresin es nu53rica y la
otra es una cadena
%a expresin nu53rica es 5enor )ue la expresin de
cadena.
Hna expresin es Empt$ y la
otra es nu53rica
EEecuta una co5paracin nu53rica@ utiliLando B para la
expresin Empt$.
Hna expresin es Empt$ y la
otra es una cadena
EEecuta una co5paracin de cadena@ utiliLando una cadena
de longitud cero para la expresin Empt$.
%as dos expresiones son
Empt$
%as expresiones son iguales.
Manual del Alumno
0uncin InStr
Devuelve la posicin de la primera coincidencia de una cadena dentro de otra.
Si#ta,i : I#Str)/i#i!io2 1!a-e#aA2 !a-e#aC/2 !ompara!i"#1*
La sintaxis de la funcin !nStr tiene los siguientes argumentos:
Parte De!rip!i"#
inicio #pcional. Expresin nu53rica)ue esta0lece la posicin inicial para cada
0Os)ueda. Si se o5ite@ la 0Os)ueda co5ienLa en la posicin del pri5er
car'cter. Si inicio contiene Nu&&@ se produce un erro. El argu5ento inicio se
re)uiere si se especiFica comparacin.
cadena1 Re)uerido. Expresin de cadena en la )ue se 0usca.
cadena2 Re)uerido. Expresin de cadena 0uscada.
comparacin #pcional. Valor nu53rico )ue indica el tipo de co5paracin )ue se va a usar
al evaluar su0cadenas. !onsulte la seccin Valores para sa0er cu'les son los
valores per5itidos. Si se o5ite@ se realiLa una co5paracin 0inaria.
Valores
El argumento comparacin puede tener los siguientes valores:
Co#ta#te %a&or De!rip!i"#
.bBi#ar$Compare B RealiLa una co5paracin 0inaria.
.bTe,tCompare - RealiLa una co5paracin de texto.
Valores -evueltos
La funcin !nStr devuelve los siguientes valores:
Si I#Str -e.ue&.e
cadena1 es de longitud cero B
cadena1 es Nu&& Nu&&
cadena2 es de longitud cero inicio
cadena2 es Nu&& Nu&&
cadena2 no se encuentra B
cadena2 se encuentra dentro de cadena1 osicin en la )ue se encuentra la coincidencia
Manual del Alumno
inicio + Le#)cadena2* B
0uncin IsNu/eric
Devuelve un valor de tipo Boolean que indica si una expresin se puede evaluar
como un nmero.
Si#ta,i : INumeri!)expresin*
El argumento expresin puede ser cualquier expresin.
!s"umeric devuelve True si toda la expresin se reconoce como un nmero. De lo
contrario, devuelve False. !s"umeric devuelve False si expresin es una
expresin de fecha.
El siguiente ejemplo usa la funcin !s"umeric para determinar si una variable se
puede evaluar como un nmero:
D&$ M&)ar4 M&*o$/roba+&on
M&)ar " BC E As&gna un va%or.
M&*o$/roba+&on " Is!u$er&+@M&)arA E Devue%ve True.
M&)ar " #:B;.;B# E As&gna un va%or.
M&*o$/roba+&on " Is!u$er&+@M&)arA E Devue%ve True.
M&)ar " #:B He%/# E As&gna un va%or.
M&*o$/roba+&on " Is!u$er&+@M&)arA E Devue%ve Fa%se.
0or/ateo de N?/eros
0uncin 0or/atNu/,er
Devuelve una expresin con formato de nmero.
Si#ta,i :
'ormatNumber)xpresin /2!m"gitos"espu#s"e"ecimal
/2$ncluir"gito$nicio
/2%sar&ar#ntesis&ara!meros!egativos
/,'rupo"gitos1111*
La sintaxis de la funcin Format"umber tiene las siguientes partes:
Parte De!rip!i"#
Expresin Re)uerido. Expresin a la )ue se va a aplicar
Manual del Alumno
For5ato.
m!gitos!espu"s!e!ecimal #pcional. Valor nu53rico )ue indica cOantos
lugares se 5uestran a la derecCa del deci5al. El
valor predeter5inado es T-@ )ue indica )ue se usa
la conFiguracin regional del e)uipo.
#ncluir!gito#nicio #pcional. !onstante de tres estados )ue indica si
se de0e 5ostrar o no un cero inicial para valores
Fraccionarios. !onsulte la seccin Valores para
sa0er cu'les son los valores per5itidos.
$sar%ar"ntesis%aramerosegativos #pcional. !onstante de tres estados )ue indica si
se de0en encerrar o no los valores negativos entre
par3ntesis. !onsulte la seccin Valores para sa0er
cu'les son los valores per5itidos.
&rupo!gitos #pcional. !onstante de tres estados )ue indica si
se de0en agrupar o no los nO5eros con el
deli5itador de grupos especiFicado en el anel de
control. !onsulte la seccin Valores para sa0er
cu'les son los valores per5itidos.
Valores
Los argumentos IncluirDgitoInicio, UsarParntesisParamerosegativos y
!rupoDgitos tienen los siguientes valores:
Co#ta#te %a&or De!rip!i"#
TritateTrue T- True
Tritate'a&e B Aalse
TritateUeDe7au&t T1 Hsa la conFiguracin regional del e)uipo.
Cuando se omiten uno o ms de los argumentos opcionales, los valores de los
argumentos omitidos los proporciona la configuracin regional del equipo.
Nota Toda la inFor5acin de conFiguracin y valores se o0tiene de la FicCa NO5ero de !onFiguracin
regional.
El siguiente ejemplo usa la funcin Format"umber para dar formato a un nmero
para que tenga cuatro lugares decimales:
'u#!tio# E+emp&oDe'ormatNumber
Dim 9iA#(u&o2 9iSe!a#te2 9iNumero
9iA#(u&o > A3G H De7i#e u# I#(u&o e# ra-ia#e3
9iSe!a#te > A J Co)9iA#(u&o* H Ca&!u&a &a e!a#te3
E+emp&oDe'ormatNumber > 'ormatNumber)9iSe!a#te2K* H Da 7ormato a 9iSe!a#te para ;ue
te#(a !uatro &u(are -e!ima&e3
E#- 'u#!tio#
Manual del Alumno
0uncin 0or/atCurrency
Devuelve una expresin con formato como una valor de moneda, que usa el
smbolo de moneda definido en el panel de control del sistema.
Si#ta,i :
'ormatCurre#!$)xpresin/2!m"gitos"espu#s"e"ecimal
/2$ncluir"gito$nicio
/2%sar&ar#ntesis&ara!meros!egativos
/,'rupo"gitos1111*
La sintaxis de la funcin FormatCurrency tiene las siguientes partes:
Parte De!rip!i"#
Expresin Re)uerido. Expresin a la )ue se va a aplicar el
For5ato.
m!gitos!espu"s!e!ecimal #pcional. Valor nu53rico )ue indica cOantos
lugares se 5uestran a la derecCa del deci5al. El
valor predeter5inado es T-@ )ue indica )ue se usa
la conFiguracin regional del e)uipo.
#ncluir!gito#nicio #pcional. !onstante de tres estados )ue indica si
se de0e 5ostrar o no un cero inicial para valores
Fraccionarios. !onsulte la seccin Valores para
sa0er cu'les son los valores per5itidos.
$sar%ar"ntesis%aramerosegativos #pcional. !onstante de tres estados )ue indica si
se de0en encerrar o no los valores negativos entre
par3ntesis. !onsulte la seccin Valores para sa0er
cu'les son los valores per5itidos.
&rupo!gitos #pcional. !onstante de tres estados )ue indica si
se de0en agrupar o no los nO5eros con el
deli5itador de grupos especiFicado en la
conFiguracin regional del e)uipo. !onsulte la
seccin Valores para sa0er cu'les son los valores
per5itidos.
Valores
Los argumentos IncluirDgitoInicio, UsarParntesisParamerosegativos y
!rupoDgitos tienen los siguientes valores:
Co#ta#te %a&or De!rip!i"#
Manual del Alumno
TritateTrue T- True
Tritate'a&e B Aalse
TritateUeDe7au&t T1 Hsa la conFiguracin regional del e)uipo.
Cuando se omiten uno o ms argumentos opcionales, los valores de los argumentos
omitidos los proporciona la configuracin regional del equipo. La posicin del signo
de moneda relativa al valor de moneda se determina con la configuracin regional
del sistema.
Nota Toda la inFor5acin de conFiguracin se o0tiene de la FicCa $oneda de !onFiguracin regional@
excepto el cero inicial )ue se o0tiene de la FicCa NO5ero.
El siguiente ejemplo usa la funcin FormatCurrency para dar formato de moneda
a la expresin y asignarlo a MiMoneda:
$i1 *i*one"
*i*one" = For1"tCurrencK#6AAA% >*i*one" contiene N6AAA4AA
0uncin 0or/atercent
Devuelve una expresin con formato de porcentaje (multiplicada por 100) con una
carcter % inicial.
Si#ta,i :
'ormatPer!e#t)xpresin/2!m"gitos"espu#s"e"ecimal
/2$ncluir"gito$nicio
/2%sar&ar#ntesis&ara!meros!egativos
/,'rupo"gitos1111*
La sintaxis de la funcin FormatPercent tiene las siguientes partes:
Parte De!rip!i"#
Expresin Re)uerido. Expresin a la )ue se va a aplicar
For5ato.
m!gitos!espu"s!e!ecimal #pcional. Valor nu53rico )ue indica cOantos
lugares se 5uestran a la derecCa del deci5al. El
valor predeter5inado es T-@ )ue indica )ue se usa
la conFiguracin regional del e)uipo.
#ncluir!gito#nicio #pcional. !onstante de tres estados )ue indica si
se de0e 5ostrar o no un cero inicial para valores
Fraccionarios. !onsulte la seccin Valores para
sa0er cu'les son los valores per5itidos.
Manual del Alumno
$sar%ar"ntesis%aramerosegativos #pcional. !onstante de tres estados )ue indica si
se de0en encerrar o no los valores negativos entre
par3ntesis. !onsulte la seccin Valores para sa0er
cu'les son los valores per5itidos.
&rupo!gitos #pcional. !onstante de tres estados )ue indica si
se de0en agrupar o no los nO5eros con el
deli5itador de grupos especiFicado en el anel de
control. !onsulte la seccin Valores para sa0er
cu'les son los valores per5itidos.
Valores
Los argumentos IncluirDgitoInicio, UsarParntesisParamerosegativos y
!rupoDgitos tienen los siguientes valores:
Co#ta#te %a&or De!rip!i"#
TritateTrue T- True
Tritate'a&e B Aalse
TritateUeDe7au&t T1 Hsa la conFiguracin regional del e)uipo.
Cuando se omiten uno o ms argumentos opcionales, los valores de los argumentos
omitidos los proporciona la configuracin regional del sistema.
Nota Toda la inFor5acin de conFiguracin y valores se o0tiene de la FicCa NO5ero de !onFiguracin
regional.
El siguiente ejemplo usa la funcin FormatPercent para dar formato a una
expresin como porcentaje:
$i1 *iPorcent"?e
*iPorcent"?e = For1"tPercent#'(9'% >*iPorcent"?e contiene J4';O
InputBoxes y #essage Box
0uncin InputBox
Muestra una solicitud en un cuadro de dilogo, espera a que el usuario escriba texto
o haga clic en un botn y devuelve el contenido del cuadro de texto.
Si#ta,i : I#putBo,)o&i!itu-/2 t0tu&o1/2 pre-etermi#a-o1/2 po,1/2 po$1
/2 ar!5i.o-ea$u-a2 !o#te,to1*
La sintaxis de la funcin !nput&ox tiene los siguientes argumentos:
Parte De!rip!i"#
solicitud Expresin de cadena 5ostrada co5o 5ensaEe en el cuadro de di'logo. %a
Manual del Alumno
longitud 5'xi5a de solicitud es@ aproxi5ada5ente@ -B17 caracteres@
dependiendo del ancCo de los caracteres usados. Si solicitud consta de
5's de una l=nea@ puede separar las l=neas con un car'cter de retorno de
carro <C5r)-6*?@ un car'cter de avance de l=nea <C5r)-B*? o la
co50inacin de retorno de carro y avance de l=nea <C5r)-6* B C5r)-B*?
entre cada l=nea.
ttulo Expresin de cadena )ue se 5uestra en la 0arra de t=tulo del cuadro de
di'logo. Si o5ite ttulo@ el no50re de la aplicacin se 5uestra en la 0arra
de t=tulo.
predeterminado Expresin de cadena en el cuadro de texto )ue aparece co5o respuesta
predeter5inada si no se proporciona ningOn otro texto. Si o5ite
predeterminado@ el cuadro de texto se 5uestra vac=o.
posx Expresin nu53rica )ue especiFica@ en tGips@ la distancia CoriLontal desde
el 0orde iL)uierdo del cuadro de di'logo Casta el 0orde iL)uierdo de la
pantalla. Si se o5ite posx@ el cuadro de di'logo se centra CoriLontal5ente.
pos' Expresin nu53rica )ue especiFica@ en tGips@ la distancia vertical desde el
0orde superior del cuadro de di'logo Casta el 0orde superior de la
pantalla. Si se o5ite pos'@ el cuadro de di'logo se centra vertical5ente@
aproxi5ada5ente a la altura de un tercio de la pantalla.
archivodea'uda Expresin de cadena )ue identiFica el arcCivo de Ayuda )ue se va a usar
para proporcionar Ayuda contextual para el cuadro de di'logo. Si se
proporciona archivodea'uda@ ta50i3n se de0e proporcionar contexto.
contexto Expresin nu53rica )ue identiFica el nO5ero de contexto de Ayuda
asignado por el creador de la Ayuda al te5a de Ayuda adecuado. Si se
proporciona contexto@ ta50i3n se de0e proporcionar archivodea'uda.
0uncin #sgBox
Muestra un mensaje en un cuadro de dilogo, espera a que el usuario haga clic en
un botn y devuelve un valor que indica en qu botn hizo clic el usuario.
Si#ta,i : 9(Bo,)o&i!itu-/2 boto#e1/2 t0tu&o1/2 ar!5i.o-ea$u-a2
!o#te,to1*
La sintaxis de la funcin /s'&ox tiene los siguientes argumentos:
Parte De!rip!i"#
solicitud Expresin de cadena )ue se 5uestra co5o 5ensaEe en el cuadro de
di'logo. %a longitud 5'xi5a de solicitud es aproxi5ada5ente igual a
-B17 caracteres@ segOn el ancCo de los caracteres usados. Si solicitud
consta de 5's de una l=nea@ puede seperar las l=neas con un car'cter de
retorno de carro <C5r)-6*?@ un car'cter de avance de l=nea <C5r)-B*? o la
co50inacin de caracteres de retorno de carro y avance de l=nea <C5r)-6*
$ C5r)-B*? entre cada l=nea.
botones Expresin nu53rica )ue es igual a la su5a de los valores )ue especiFican
la cantidad y el tipo de 0otones )ue se van a 5ostrar@ el estilo de icono
)ue se va a usar@ la identidad del 0otn predeter5inado y el 5odo de
cuadro de di'logo. !onsulte la seccin Valores para sa0er cu'les son los
valores per5itidos. Si se o5ite@ el valor predeter5inado de botones es B.
Manual del Alumno
ttulo Expresin de cadena )ue se 5uestra en la 0arra de t=tulo del cuadro de
di'logo. Si o5ite ttulo@ el no50re de la aplicacin aparece en la 0arra de
t=tulo.
archivodea'uda Expresin de cadena )ue identiFica el arcCivo de Ayuda )ue se va a usar
para proporcionar Ayuda contextual para el cuadro de di'logo. Si se
proporciona archivodea'uda@ ta50i3n se de0e proporcionar contexto. No
est' disponi0le en plataFor5as de -9 0its.
contexto Expresin nu53rica )ue identiFica el nO5ero de contexto de Ayuda
asignado por el creador de la Ayuda al te5a de Ayuda adecuado. Si se
proporciona contexto@ ta50i3n se de0e proporcionar archivodea'uda. No
est' disponi0le en plataFor5as de -9 0its.
Valores
Los valores del argumento botones son:
Co#ta#te %a&or De!rip!i"#
.bOLO#&$ B Slo 5uestra el 0otn A!eptar.
.bOLCa#!e& - $uestra los 0otones A!eptar y Ca#!e&ar.
.bAbortRetr$I(#ore 1 $uestra los 0otones A#u&ar@ Rei#te#tar e I(#orar.
.b=eNoCa#!e& 6 5uestra los 0otones S0@ No y Ca#!e&ar.
.b=eNo 7 $uestra los 0otones S0 y No.
.bRetr$Ca#!e& 8 $uestra los 0otones Rei#te#tar y Ca#!e&ar.
.bCriti!a& -9 $uestra el icono de me#a+e !r0ti!o.
.bMuetio# 61 $uestra el icono de !o#u&ta -e a-.erte#!ia.
.bE,!&amatio# 7& $uestra el icono de me#a+e -e a-.erte#!ia.
.bI#7ormatio# 97 $uestra el icono de me#a+e -e i#7orma!i"#.
.bDe7au&tButto#A B El pri5er 0otn es el 0otn predeter5inado.
.bDe7au&tButto#C 189 El segundo 0otn es el 0otn predeter5inado.
.bDe7au&tButto#G 8-1 El tercer 0otn es el 0otn predeter5inado.
.bDe7au&tButto#K 79& El cuarto 0otn es el 0otn predeter5inado.
.bApp&i!atio#9o-a& B Aplicacin 5odalU el usuario de0e responder al cuadro de
5ensaEe antes de seguir tra0aEando en la aplicacin actual.
.bS$tem9o-a& 7B,9 Siste5a 5odalU todas las aplicaciones se suspenden Casta
)ue el usuario responde al cuadro de 5ensaEe.
El primer grupo de valores (0 a 5) describe el nmero y el tipo de botones
mostrados en el cuadro de dilogo; el segundo grupo (16, 32, 48, 64) describe el
estilo de iconos; el tercer grupo (0, 256, 512, 768) determina cul es el botn
predeterminado y el cuarto grupo (0, 4096) determina el modo del cuadro de
mensaje. Al sumar nmeros para crear un valor final para el argumento botones,
use slo un nmero de cada grupo.
Manual del Alumno
Valores -evueltos
La funcin /s'&ox devuelve los siguientes valores:
Co#ta#te %a&or Bot"#
.bOL - A!eptar
.bCa#!e& 1 Ca#!e&ar
.bAbort 6 A#u&ar
.bRetr$ 7 Rei#te#tar
.bI(#ore 8 I(#orar
.b=e 9 S0
.bNo 7 No
Cuando se proporcionan archivodea"uda y contexto, el usuario puede presionar F9
para ver el tema de Ayuda que corresponde al contexto.
Si el cuadro de dilog muestra un botn Cancelar, si presiona la tecla ESC tiene el
mismo efecto que si hace clic en Cancelar. Si el cuadro de dilogo contiene un
botn #yu-a, se proporcionar Ayuda contextual para el cuadro de dilogo. Sin
embargo, no se devuelve ningn valor hasta que no se presiona cualquiera de los
otros botones.
El siguiente ejemplo usa la funcin /s'&ox para mostrar un cuadro de mensaje y
devolver un valor que describe qu botn se presion:
D&$ M&)ar
M&)ar " MsgBo0 @#Ho%a $undo#4 =B4 #E5e$/%o de MsgBo0#A E
M&)ar +ont&ene ' o 8 segHn e% botn en e% 7ue se 3aga +%&+.
Manual del Alumno
Semana , : #ec-a . -ora y *ontroladores
de 'ventos(
0uncin Date
Devuelve la fecha actual del sistema.
Si#ta,i : Date
El siguiente ejemplo usa la funcin Date para devolver la fecha actual del sistema:
D&$ M&Fe+3a
M&Fe+3a " Date E M&Fe+3a +ont&ene %a Je+3a a+tua% de%
s&ste$a.
0uncin DateAdd
Devuelve una fecha a la que se agreg un intervalo de tiempo especificado.
Si#ta,i : DateA--)intervalo2 nmero2 fecha*
La sintaxis de la funcin Date#-- tiene las siguientes partes:
Parte De!rip!i"#
intervalo Re)uerido. Expresin de cadena )ue es el intervalo )ue desea agregar. !onsulte
la seccin Valores para sa0er cu'les son los valores per5itidos.
nmero Re)uerido. Expresin nu53rica )ue es el nO5ero de intervalo )ue desea agregar.
%a expresin nu53rica puede ser positiva@ para FecCas Futuras@ o negativas@ para
FecCas pasadas.
fecha Re)uerido. %aria#t o literal )ue representa la FecCa a la )ue se agrega intervalo.
Valores :
El argumento intervalo puede tener los siguientes valores:
%a&or De!rip!i"#
'''' A[o
( Tri5estre
m $es
' 4=a del a[o
d 4=a
) 4=a de la
se5ana
)) Se5ana del
a[o
h (ora
n $inuto
s Segundo
Manual del Alumno
Puede usar la funcin Date#-- para sumar o restar un intervalo de tiempo
especificado a una fecha. Por ejemplo, puede usar Date#-- para calcular una fecha
30 das a partir de hoy o una hora 45 minutos desde ahora. Para agregar das a
fecha, puede usar Da del ao ("y"), Da ("d") o Da de la semana ("w").
La funcin Date#-- no devolver una fecha no vlida. El siguiente ejemplo suma
un mes al 31 de enero:
!uevaJe+3a " DateAdd@#$#4 '4 #C'>Ene>;B#A
En este caso, Date#-- devuelve 28-Feb-95, no 31-Feb-95. Si fecha es 31-Ene-96,
devuelve 29-Feb-96 porque 1996 es un ao bisiesto.
Si la fecha calculada es anterior al ao 100, se produce un error.
Si el nmero no es un valor de tipo )on', se redondea al nmero entero ms
cercano antes de evaluarlo.
0uncin DateDi44
Devuelve el nmero de intervalos entre dos fechas.
Si#ta,i : DateDi77)i#ter.a&o2 7e!5aA2 7e!5aC /2primer-0aema#a/2
primeraema#aaNo11*
La sintaxis de la funcin DateDi.. tiene las siguientes partes:
Parte De!rip!i"#
intervalo Re)uerido. Expresin de cadena )ue es el intervalo )ue desea usar
para calcular las diFerencias entre fecha1 y fecha2. !onsulte la seccin
Valores para sa0er cu'les son los valores per5itidos.
fecha1* fecha2 Re)uerido. Expresiones de FecCa. 4os FecCas )ue desea usar en el
c'lculo.
primerdasemana #pcional. !onstante )ue especiFica el d=a de la se5ana. Si no se
especiFica@ se asu5e 4o5ingo. !onsulte la seccin Valores para sa0er
cu'les son los valores per5itidos.
primerasemanaa+o #pcional. !onstante )ue especiFica la pri5era se5ana del a[o. Si no
se especiFica@ se asu5e )ue la pri5era se5ana es la se5ana del - de
enero. !onsulte la seccin Valores para sa0er cu'les son los valores
per5itidos.
Valores
El argumento intervalo puede tener los siguientes valores:
%a&or De!rip!i"#
'''' A[o
( Tri5estre
m $es
' 4=a del a[o
Manual del Alumno
d 4=a
) 4=a de la se5ana
)) Se5ana del a[o
h (ora
n $inuto
s Segundos
El argumento primerdasemana puede tener los siguientes valores:
Co#ta#te %a&or De!rip!i"#
.bUeS$tem B Hsar la conFiguracin de AI N%S.
.bSu#-a$ - 4o5ingo <predeter5inado?
.b9o#-a$ 1 %unes
.bTue-a$ 6 $artes
.bWe-#e-a$ 7 $i3rcoles
.bT5ur-a$ 8 Pueves
.b'ri-a$ 9 Viernes
.bSatur-a$ 7 S'0ado
El argumento primerasemanaa#o puede tener los siguientes valores:
Co#ta#te %a&or De!rip!i"#
.bUeS$tem B Hsar conFiguracin de AI N%S.
.b'irtOa#A - !o5ienLa con la se5ana del - de enero<predeter5inado?.
.b'irt'ourDa$ 1 !o5ienLa con la se5ana )ue tiene al 5enos cuatro d=as en el
nuevo a[o.
.b'irt'u&&Wee< 6 !o5ienLa con la pri5era se5ana co5pleta del nuevo a[o.
0uncin Day
Devuelve un nmero entero entre 1 y 31, ambos incluidos, que representa el da
del mes.
Si#ta,i : Da$)fecha*
El argumento fecha es cualquier expresin que puede representar una fecha. Si
fecha contiene "ull, se devuelve "ull.
El siguiente ejemplo usa la funcin Day para obtener el da del mes a partir de una
fecha especificada:
D&$ M&D&a
M&D&a " DaG@#'; de o+tubre de ';=8#A EM&D&a +ont&ene ';.
Manual del Alumno
0uncin Ti/e
Devuelve un valor Variant del subtipo Date que indica la hora actual del sistema.
Si#ta,i : Time
El siguiente ejemplo usa la funcin Time para devolver la hora actual del sistema:
D&$ M&Hora*o$/%eta
M&Hora*o$/%eta " T&$e E Devue%ve %a 3ora a+tua% de%
s&ste$a.
0uncin Ti/eSerial
Devuelve un valor Variant del subtipo Date que contiene la hora para una hora,
minuto y segundo especficos.
Si#ta,i : TimeSeria&)hora2 minuto2 segundo*
La sintaxis de la funcin TimeSerial tiene los siguientes argumentos:
Parte De!rip!i"#
hora NO5ero entre B <-1:BB a.5.? y 16 <--:BB p.5.?@ a50os inluidos@ o una expresin
nu53rica.
minuto !ual)uier expresin nu53rica.
segundo !ual)uier expresin nu53rica.
Para especificar una hora, como 11:59:59, el intervalo de nmeros para cada
argumento TimeSerial debera 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, tambin puede especificar horas ralativas para cada argumento,
mediante el uso de cualquier expresin numrica que represente algn nmero de
horas, minutos o segundos antes o despus de una hora determinada.
Los siguientes ejemplos usan expresiones en lugar de nmeros de hora absolutos.
La funcin TimeSerial devuelve una hora para 15 minutos antes (-15) de seis
horas antes del medioda (12 - 6) o 5:45:00 a.m.
T&$e,er&a%@'8 > =4 >'B4 9A
Cuando cualquier argumento excede el intervalo aceptado para ese argumento, se
incrementa hasta la siguiente unidad mayor segn sea adecuado. Por ejemplo, si
especifica 75 minutos, se evala 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 travs de una expresin,
hace que la fecha exceda el intervalo de fechas permitido, se produce un error.
0uncin Ti/eValue
Devuelve un valor Variant del subtipo Date containing the time.
Si#ta,i : Time%a&ue)hora*
Normalmente, el argumento hora es una expresin 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 tambin puede ser cualquier expresin que represente
una hora en ese intervalo. Si hora contiene "ull, se devuelve "ull.
Manual del Alumno
Tipos de eventos
Aqu se listan los principales eventos que se pueden asociar a una imagen,
hipervnculo, cadena de texto, etc. A continuacin aparecen agrupados segn donde
se originen (ratn teclado, etc). Estos eventos son los mas usados. Existen otros,
pero no siempre funcionan bien con los dos navegadores, y adems son bastantes
exticos, acadmicos y de uso poco prctico. No los veremos aqu.
Eventos de ratn
ONCLICK Se activa con un botn del ratn.
ONDBLCLICK Se activa si se hace un doble click.
ONMOUSEDOWN Se activa si se pulsa el botn izquierdo del mouse.
ONMOUSEMOVE Se activa si se mueve el mouse.
ONMOUSEOVER
Se activa cuando el puntero se sita 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 botn pulsado en el mouse (es contrario
a ONCLICK).
ONDRAGSTART Se activa cuando se inicia un arrastre.
ONSELECTSTART Se activa cuando se inicia una seleccin con el ratn.
ONSELECT Se activa cuando se ha realizado una seleccin con el ratn.
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 en4o'ue
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 4or/ulario
ONRESET Se activa al pulsar un botn 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 pgina.
ONERROR
Se activa cuando se produce un error inesperado durante la carga
de la pgina.
ONLOAD Se activa cuando se carga la pgina.
ONUNLOAD
Se activa cuando el usuario descarga la pgina (es decir, carga
otra o pretende salir del navegador).
ONAFTERUPDATE Se activa si se actualiza o recarga la pgina.
Manual del Alumno
Semana / : Modelo de "b0etos del
1ocumento(
#odelo de ",3etos
En ste apndice vamos a listar los objetos de que disponemos en VBScript, as
como sus distintas propiedades, mtodos y eventos. Este apndice est dedicado a
los objetos en el lado del Cliente. En el lado del servidor, la lista se ampla bastante.
Como hemos comentado, este manual est orientado a VBScript en el lado del
Cliente. Sin embargo, he incluido una breve introduccin a la tecnologa ASP en el
mismo. Bien. Empecemos asegurando posiciones. Vamos a puntualizar cuatro
conceptos cuya comprensin es vital para entender el funcionamiento de la POO y
la jerarqua de objetos.
"B@ET"A Es cada una de los elementos que se gestionan en una pgina web o
en cualquier aplicacin informtica que tienen una identidad propia. Un objeto
podra ser la ventana de navegacin, 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 Apndice.
R"IEDADA Es cada una de las caractersticas de un objeto. Una propiedad
sera el color de fondo de una tabla, la barra de estado de la ventana de
navegacin, etc. Tambin llamamos propiedad a un objeto derivado de otro. Se dice
que el objeto derivado es propiedad del objeto padre.
#ET"D"A Es una operacin que se puede realizar dentro de un objeto. Por
ejemplo. Cerrar una ventana sera un mtodo del objeto ventana. Poner el foco en
un campo de formulario sera un mtodo del objeto que representa a ese campo en
concreto.
EVENT"A Un evento es la previsin de que el usuario realice una determinada
accin. En realidad el usuario puede realizar la accin o no realizarla, pero se deja
prevista en la programacin la posibilidad de que la realice. De esta forma, si la
realiza suceder algo (lo que hayamos programado) como respuesta a esa accin.
Un evento sera pasar el ratn sobre una imagen determinada, hacer clic en una
parte de la pantalla, pulsar una tecla, etc. Tambin existe la posibilidad de prever
eventos del sistema. Un evento de sistema es, por ejemplo, la carga de una pgina,
o un error en un proceso. Resumiendo: un evento se dispara cuando ocurre la
accin prevista por el mismo. Supongamos el siguiente cdigo. Utiliza el evento
ONMOUSEOVER, asociado al hiperenlace. Cuando el usuario va a pulsar el enlace y
coloca el puntero del ratn sobre el mismo, se dispara el evento, que llama a la
funcin mensaje(). Esta genera un cuadro de aviso en la pantalla y obliga al usuario
a pulsar el botn Aceptar. Con lo que nunca podr usar el enlace.
Manual del Alumno
E.e#to o#9oueO.er
<HTML>
<HEAD>
<TITLE>Prueba de evento O!MO(,EO)E</TITLE>
<,*IPT LA!.(A.E " #)B,+r&/t#>
F(!*TIO! $ensa5e@A
M,.BOQ @#!un+a /odrFs /u%sar%o#A
E!D F(!*TIO!
</,*IPT>
</HEAD>
<BODY>
<H'>
Intenta /u%sar e% en%a+e... <B>
s& /uedes.
</H'>
<A HEF " #3tt/I//MMM.grat&sMeb.+o$/&nJo$ega+&ne# O!MO(,EO)E "
#$ensa5e@A#>
A++eder a %a /Fg&na de Lat&n$a&%
</A>
</BODY>
</HTML>
Para referirse a una propiedad o un mtodo de un objeto usamos una notacin de
puntos. As:
OBRETO.POPIEDAD
O bien:
OBRETO.METODO@A
Observa que el mtodo lleva unos parntesis y la propiedad no. Esto es as porque,
en definitiva, los mtodos son casos particulares de funciones, asociadas a objetos.
Y, como cabra esperar, algunos mtodos reciben argumentos y otros no. Bien.
Veamos la lista de objetos de VBScript de Cliente.
Veamos otro ejemplo, para afianzar conceptos:
%BS!ript e# e& #a.e(a-or
<HTML>
<HEAD>
<TITLE>Otra /rueba de POO</TITLE>
</HEAD>
<BODY>
<A HEF " #3tt/I//MMM.grat&sMeb.+o$/&nJo$ega+&ne# O!MO(,EO)E
" #M&ndoM.status " EE% $e5or s&te de +&neESreturn true#>
Pu%sa a7uT /ara ver &nJo$ega+&ne
</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 cdigo. Muestra un hiperenlace y,
cuando el usuario pasa el ratn por encima, muestra un mensaje en la barra de
estado, que ya permanece ah. Bien. Analicemos el cdigo para ver como funciona.
Realmente toda la gracia est en esta lnea:
<A HEF " #3tt/I//MMM.grat&sMeb.+o$/&nJo$ega+&ne# O!MO(,EO)E
"#M&ndoM.status " EE% $e5or s&te de +&neESreturn 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
Manual del Alumno
la presencia del cursor del ratn sobre el texto que constituye el hiperenlace.
ONMOUSEOVER es el evento que queremos detectar. A la derecha el signo igual
aparece la accin que queremos desencadenar si se produce el evento especificado.
Esta accin 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 navegacin. En este caso hemos programado que
aparezca en la barra de estado una cadena literal (el mejor site de cine). Fjate que
la cadena de texto aparece encerrada entre comillas simples. A continuacin
aparece un signo de punto y coma y la instruccin 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 ratn sobre el enlace veremos la direccin de la
pgina especificada y, solo al quitar el ratn, veremos el mensaje que habamos
programado. Evidentemente sto ltimo no es lo que perseguamos. Bien. Casi
tenemos completo el estudio de esta lnea, salvo por un pequeo detalle. Palabras
reservadas del lenguaje, como son window, status, return y true aparecen en
minsculas en este ejemplo, cuando hemos dicho que en este temario las palabras
reservadas las ponamos en maysculas. 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 maysculas y minsculas. Cada palabra debe escribirse de un modo exacto,
y no de otro, o no funcionar. En la lista que incluyo en ste Apndice de objetos,
propiedades, mtodos 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:
#0Eeto GindoG
#0Eeto location
#0Eeto docu5ent
#0Eeto navigator
#0Eeto Fra5e
#0Eeto Cistory
#0Eeto linJ
#0Eeto ancCor
",3eto 4or/
Como ya hemos mencionado en este temario, los objetos siguen una jerarqua. El
de mas alto nivel es el objeto WINDOW, que representa a la ventana activa. Todos
los dems, son objetos derivados de ste. Veamos cuales son las propiedades y
mtodos que acepta cada uno, as como los eventos que les afectan.
",3eto 6indo6
Representa la ventana activa del navegador y es el mas alto de la jerarqua.
Propie-a-es:
Manual del Alumno
defaultStatus se refiere al mensaje que aparecer por defecto en la barra de estado.
document representa al documento HTML en ejecucin en ese momento.
frames [] es una matriz que contiene los frames de la ventana.
history
representa un registro histrico de las pginas visitadas en la actual
sesin de uso de Internet.
length contiene el nmero total de frames de la ventana.
location representa a la direccin (URL) actual de Internet.
name contiene el nombre de la ventana activa.
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
navegacin.
/;to-os:
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 direccin de la pgina que queremos que se cargue en la
sub-ventana. Target es la direccin 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 Explicacin
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 mens.
scrollbars booleano Ventana con barras de desplazamiento.
resizable booleano Ventana de tamao redefinible por el usuario.
width pxeles Anchura de la ventana
height pxeles Altura de la ventana.
top pxeles Posicin Y de la ventana
left pxeles Posicin x de la ventana
Eventos:
onLoad Se ejecuta cuando se carga la pgina.
onUnload Se ejecuta cuando se descarga (se cierra) la pgina.
",3eto docu/ent
Representa el documento activo.
Propie-a-es:
alinkColor Representa el color de los enlaces activos.
bgColor Representa el color de fondo del documento.
Manual del Alumno
fgColor Representa el color del texto
lastModified Representa la fecha de la ltima modificacin.
linkColor Representa el color de los enlaces.
location Representa la URL del documento.
title Representa el ttulo del documento.
vlinkColor Representa el color de los enlaces visitados.
/;to-os:
Write () Escribe un texto.
Writeln() Escribe una lnea de texto.
Eventos:
Ninguno
",3eto 4or/
Este objeto se refiere a un formulario empleado en el documento. Se accede a cada
formulario mediante un ndice: document.form [ndice]
El nmero de ndice se corresponde con el orden de creacin de formulario en el
documento.
Propie-a-es:
action
Representa la URL donde est el programa encargado de procesar un
formulario (al que se llama al activar el botn Submit).
length Es el nmero de elementos del formulario.
method Es el mtodo de envo (GET o POST).
/;to-os:
submit Se usa para forzar el envo.
Eventos:
onSubmit Se produce cuando se pulsa el botn Submit del formulario.
",3eto location
Contiene la URL de la pgina actual
Propie-a-es:
href Representa la propia URL.
pathname Representa la ruta del disco del servidor donde se aloja la pgina.
/;to-os:
Ninguno.
Eventos:
Ninguno.
",3eto navigator
Representa al navegador actual.
Propie-a-es:
appName Es el nombre del navegador.
appVersion Se refiere a la versin del navegador.
Manual del Alumno
/;to-os:
Ninguno.
Eventos:
Ninguno.
",3eto 1istory
Representa el historial de las pginas visitadas en la sesin actual de uso de
Internet
Propie-a-es:
length Representa la cantidad total de pginas visitadas.
/;to-os:
back () navega a la pgina anterior.
forward() navega a la pgina siguiente.
go (n) navega n pginas hacia delante (o hacia atrs, si n es negativo).
Eventos:
Ninguno.
Semana 12 : '3amen %arcial(
Semana 11 : JavaScript(
Introduccin
JScript es la implementacin de Microsoft de la especificacin de lenguaje ECMA
262. Es una implementacin completa, adems 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 ms que suficientemente
eficiente para los propsitos para los que est creado.
JScript no es una versin reducida de cualquier otro lenguaje (slo est
relacionado, distante e indirectamente, con Java, por ejemplo), ni es una
simplificacin de ningn 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 mnima. Ms an, las secuencias de comandos
de JScript slo pueden ejecutarse con un intrprete, 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 explcitamente los tipos de datos de las
variables. Ms an, en muchos casos JScript realiza conversiones,
automticamente, cuando son necesarias. Por ejemplo, si intenta agregar un
nmero a un elemento que contiene texto (una cadena), el nmero se convierte en
texto.
Escritura de Cdigo en @ava Script
Al igual que muchos otros lenguajes de programacin, Microsoft JScript se escribe
en forma de texto y se organiza en instrucciones, bloques formados por conjuntos
de instrucciones relacionadas y comentarios. En una instruccin puede utilizar
variables, datos inmediatos como cadenas y nmeros, y expresiones.
Instrucciones
Una instrucci<n de cdigo JScript est formada por uno o ms elementos y
smbolos en una misma lnea. Cada nueva lnea inicia una nueva instruccin, pero
es una buena idea terminar las instrucciones de forma explcita. Puede hacerlo si
agrega un punto y coma (;), que es el carcter de terminacin de JScript.
unPa5aro " #*o%&brT#S
var 3oG " neM Date@AS
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 instruccin inicia la definicin de
una funcin, que est formada por un bloque de cinco instrucciones. Las tres
ltimas instrucciones, que no estn incluidas en las llaves, no son un bloque y no
forman parte de la funcin.
I#tituto Superior Te!#o&"(i!o
Norbert Wie#er Manual del Alumno
8unction con0ert#pu2!""+% P
pie+= pu2!""+ ( 6'Q (( E+t"+ cinco in+truccione+ e+tRn en un /2o=ue4
1i22"+ = pie+ ( ;'SAQ
1i22"+N"utic"+ = pie+ ( JASAQ
c1 = pu2!""+ : '4;TQ
1etro+ = pu2!""+ ( 9<49UQ
V
M1 = 1etro+ ( 6AAAQ (( E+t"+ tre+ in+truccione+ no e+tRn en un /2o=ue4
Mr"io = M1Q
1r"io= 1i22"+Q
Co/entarios
Un comentario de una sola lnea en JScript comienza con un par de barras
inclinadas (//). Un comentario multilnea comienza con una barra inclinada seguida
por un asterisco (/*) y termina con los mismos elementos en orden inverso (*/).
un"Buen"Ie" = "Inc2uK" 1uc3o+ co1ent"rio+ en +u cIi!o4"Q (( E+te e+ un co1ent"rio e
un" +o2" 2Cne"4
(:
E+te e+ un co1ent"rio 1u2ti2Cne" =ue e.p2ic" 2" in+trucciIn e cIi!o "nterior4
L" in+trucciIn "+i!n" un 0"2or " 2" 0"ri"/2e un"Buen"Ie"4 E2 0"2or =ue e+tR encerr"o
entre co1i22"+5 +e conoce co1o un 2iter"24 Un 2iter"2 contiene in8or1"ciIn e 8or1"
irect" K e.p2Ccit"5 no 3"ce re8erenci" " 2" in8or1"ciIn e 8or1" inirect"4 #L"+
co1i22"+ no 8or1"n p"rte e2 2iter"24%
:(
(( E+te e+ otro co1ent"rio 1u2ti2Cne"5 e+crito co1o un" +erie e co1ent"rio+ e un" +o2"
2Cne"4
(( $e+puW+ e e?ecut"r 2" in+trucciIn5 puee 3"cer re8erenci" "2 contenio e 2"
0"ri"/2e4
(( un"Buen"Ie" uti2iF"no +u no1/re5 co1o en 2" +i!uiente in+trucciIn5 en 2" =ue +e
"!re!" un 2iter"2 e c"en" "
(( 2" 0"ri"/2e un"Buen"Ie" 1ei"nte conc"ten"ciIn p"r" cre"r un" nue0" 0"ri"/2e4
0"r ie"A1p2i"" = un"Buen"Ie" H " Nunc" puee +"/er cuRno tenrR =ue "0eri!u"r 2o =ue
3"ce4"Q
Asignaciones e igualdad
El signo igual (=) se utiliza en JScript para indicar una accin en la que se asigna
un valor. Es decir, una instruccin de cdigo JScript podra decir
unEntero " CS
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 ms detalle en Controlar el
flujo del programa.
Expresiones
Una expresin JScript es algo que una persona puede leer como una expresin de
tipo Boolean o como una expresin numrica. Las expresiones contienen caracteres
de smbolos como "+" en lugar de palabras como "sumado a". Una expresin est
formada por cualquier combinacin vlida de valores, variables, operadores y
expresiones.
0"r un"E.pre+ion= "9 : #T ( ;%"Q
0"r un"Se!un"E.pre+ion = "*"t34PI : r"io : '"Q
0"r un"Tercer"E.pre+ion = un"Se!un"E.pre+ion H "O" H un"E.pre+ionQ
0"r un"Cu"rt"E.pre+ion = "#" H un"Se!un"E.pre+ion H "% O #" H un"E.pre+ion
I#tituto Superior Te!#o&"(i!o
Norbert Wie#er Manual del Alumno
Caracteristicas
Es simple, no hace falta tener conocimientos de programacin para poder
hacer un programa en JavaScript.
Maneja objetos dentro de nuestra pgina 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 dinmico, responde a eventos en tiempo real. Eventos como presionar un
botn, pasar el puntero del mouse sobre un determinado texto o el simple
hecho de cargar la pgina o caducar un tiempo. Con esto podemos cambiar
totalmente el aspecto de nuestra pgina al gusto del usuario, evitndonos
tener en el servidor un pgina 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 da, JavaScript, es un lenguaje muy usado, sus principales
aplicaciones son:
Responder a eventos locales dentro de la pgina, como apretar un botn,
La realizacin de clculos en tiempo real
La validacin de formularios dentro de una pgina.
La personalizacin de la pgina por el usuario, que le permitir tener una
pgina web a su medida.
La inclusin de datos del propio sistema, como son la hora y la fecha.
Aunque segn pasa el tiempo sus aplicaciones se van incrementando.
I#tituto Superior Te!#o&"(i!o
Norbert Wie#er Manual del Alumno
Donde incluirlo
Antes siquiera de que conozcamos la sintaxis o una primera orden de JavaScript,
debemos saber primero cmo 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 docu/ento
Es decir entre los comandos <BODY> y </BODY> usando el comando SC!PT
<,T/)>
<,E#D>
<T!T)E>Titulo<=T!T)E>
<=,E#D>
<&OD6>
<SC!PT )#"*3#*E>?avaScript>
<@AA escon-emos el co-i'o>
-ocument.0rite$B,ola 2ue talB%C
== (asta a2ui escon-o AA>
<SC!PT>
<=&OD6>
<=,T/)>
Este codigo se ejecuta inmediatamente al cargar la pagina y lo que produce es un
texto sobre la pagina, para ello use el metodo 0rite del objeto -ocument, que
representa al documento actual.
Nota que use un comentario <!-- --> para ocultar el codigo a los navegadores que
no soportan JavaScript.
En arc1ivo aparte
En este caso todo el codigo del script esta situado en otro archivo y se hace una llamada.
<,T/)>
<,E#D>
<T!T)E>Titulo<=T!T)E>
<=,E#D>
<&OD6>
<SC!PT SC>co-i'o.+s>
<SC!PT>
<=&OD6>
<=,T/)>
Nota que aqui no fue neceario esconder ningun codigo y que los navegadores que
no soporte el comando SC!PT simplemente lo ignoraran.
7sando /ane3adores de evento
Los comandos de JavaScript son evaluados inmediatamente al cargarse la pagina.
Las funciones son almacenadas, pero no ejecutadas, hasta cierto evento.
I#tituto Superior Te!#o&"(i!o
Norbert Wie#er Manual del Alumno
<,T/)>
<,E#D>
<T!T)E>Titulo<=T!T)E>
<&OD6>
<# ,EF>BB on/ouseOver>B0in-o0.status>DFi'uraDCreturn trueB>
<!/* SC>.i'.'i.><=#>
<=&OD6>
<=,T/)>
Nota que aqui es un evento el que dispara.
&aciendo una lla/ada a 4uncin
Dentro de la cabecera, despues del titulo. Es decir, entre los comandos </TITLE y
</!E"D y luego la llamada a la #uncion en el cuerpo.
<,T/)>
<,E#D>
<T!T)E>Titulo<=T!T)E>
<SC!PT )#"*3#*E>?avaScript>
<@AA escon-emos el co-i'o>
.uncion llama-a$x%E
alert$B)e -i+e 2ue "O@B8x%C
F
== (asta a2ui escon-o AA>
<SC!PT>
<=,E#D>
<&OD6>
"o (a'a Clic <# ,EF>B?avaScript:llama-a$DCurioso@D%B>#G3!<=#>
<=&OD6>
<=,T/)>
Observa que aqu se defini la funcin en la cabecera, pero recin se ejecuta al
hacer clic en el enlace, que es el evento que llama a la funcin a la cual se le para
un parmetro.
"OT#: Excepto en texto encomillado , JavaScript es sensible a maysculas y
minsculas, por lo que tendrs que tener el cuidado al usar por ejemplo
-ocument.0rite de escribirlo as, en minsculas o no se interpretar. Cualquier
error simplemente es ignorado. Se puede usar la comilla simple para los valores de
atributos.
I#tituto Superior Te!#o&"(i!o
Norbert Wie#er Manual del Alumno
Semana 12 : Scriptin Basics(
Varia,les de @ava Script
Las variables se utilizan el Microsoft JScript para almacenar valores en sus
secuencias de comandos. Son un mtodo 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 varia,les
Aunque no es necesario, se considera una buena prctica declarar las variables
antes de utilizarlas. Se hace utilizando la instruccin var. La nica ocasin en la que
se debe utilizar la instruccin var es al declarar variables locales a una funcin. En
las restantes ocasiones, utilizar la instruccin var para declarar las variables antes
de utilizarlas es una prctica recomendada.
Los siguientes ejemplos de cdigo son sobre la declaracin de variables:
0"r 1i1 = "Un 3o1/re5 un p2"n5 un c"n"25 !P"n"1R!"Q (( E2 0"2or "21"cen"o en 1i1 e+
e2 tipo c"en"4
(( L" 8r"+e entre co1i22"+5 e2 0"2or "+i!n"o " 1i15 e+ un 2iter"2 e c"en"4
0"r ror = 9Q (( E2 0"2or "21"cen"o en ror e+ e tipo nu1Wrico4
0"r nen = trueQ (( E2 0"2or "21"cen"o en nen e+ e tipo Boo2e"n4
0"r 8i8 = '4U6S'S6S'S (( E2 0"2or "21"cen"o en 8i8 e+ e tipo nu1Wrico4
No/,rar varia,les
JScript es un lenguaje que distingue entre maysculas y minsculas, por tanto, es
diferente llamar a una variable mi$ontador que llamarla &I$ontador. Adems, los
nombres de las variables, que pueden tener cualquier longitud, deben seguir ciertas
reglas:
El primer carcter debe ser una letra (mayscula o minscula) o un
carcter de subrayado (_), o un signo de dlar ($).
Los siguientes caracteres pueden ser letras, nmeros, caracteres de
subrayado o signos de dlar.
El nombre de una variable no puede ser una palabra reservada.
Algunos ejemplos de nombres de variables vlidos:
_numeropaginas
Parte9
Numero_elementos
Algunos nombres de variables no vlidos:
99Globos // Comienza con un nmero.
Smith&Wesson // El signo & no es un carcter vlido para los
nombres de las variables.
En los casos en los que quiera declarar una variable e iniciarla sin proporcionar
ningn valor concreto, deber asignarle un valor especial, null.
0"r F"F = nu22Q
0"r not"nto = 9 : F"FQ (( En e+te punto5 not"nto +e con0ierte en A4
I#tituto Superior Te!#o&"(i!o
Norbert Wie#er Manual del Alumno
Si declara una variable sin asignarla un valor, la variable existir, pero ser no
definida.
0"r !ootQ
0"r e+per"rA= 6 : !ootQ (( A+i!n" e2 0"2or N"N " e+per"rA5 K" =ue !oot no e+tR
e8ini"4
Una variable se puede definir de forma implcita (sin utilizar var) tan slo con
asignarle un valor. Sin embargo, no se puede utilizar una variable que an no haya
sido declarada de ningn modo. Si lo hace obtendr un error en tiempo de
ejecucin.
2e2 = ""Q (( L" 0"ri"/2e +e ec2"r" e 8or1" i1p2Ccit"4
0"r unLio = 0K0 H FeFQ (( Gener" un error5 K" =ue 0K0 K FeF no e.i+ten4
Conversin
Dado que JScript es un lenguaje en el que no es necesario declarar los tipos de
datos, las variables en JScript tcnicamente no tienen un tipo fijo. En cambio,
tienen un tipo equivalente al tipo del valor que contienen. Bajo determinadas
circunstancias, es posible forzar la conversin automtica de una variable de un tipo
de dato en un tipo diferente. Se pueden incluir nmeros en las cadenas, pero las
cadenas no se pueden incluir directamente en los nmeros, por lo que se
proporcionan las funciones de conversin explcitas, parse!nt$% y parseFloat$%.
0"r e2$e+e = 6Q
0"r e2)"+t" = 6AQ
0"r =ue)"cer= "Cont"r e+e "Q
=ue)"cerH= e2$e+e H " 3"+t" " H e2)"+t" H "4"Q
Despu;s -e e+ecutar este c<-i'o la variable queHacer contiene BContar -es-e 9 (asta 9H.B El
-ato num;rico (a si-o converti-o en una ca-ena.
0"r "3or"Xue= AQ
"3or"XueH= 6 H "6A"Q (( En e+te c"+o5 co1o "6A" e+ un" c"en"5
(( e2 oper"or "H=" 2" conc"ten"44
Despus de ejecutar el cdigo, la variable ahora'ue 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
nmero, por tanto, el nmero se convertir en una cadena.
2. Dado que los valores de ambos lados del operador 8 son cadenas, se
realiza una concatenacin de ellas. El resultado es "110"
3. Comprueba los tipos de ambos lados del operador +=. ahora'ue
contiene un nmero y "110" es una cadena, as que se convierte el
nmero en una cadena.
4. Como ahora hay cadenas a ambos lados del operador +=, se realiza
una concatenacin de cadenas. El resultado es "0110".
5. Este resultado se almacena en ahora'ue.
0"r entonce+ = AQ
entonce+H= 6 H p"r+eInt#"6A"%Q (( En e+te c"+o5 "H=" re"2iF" un" +u1"4
Despus de ejecutar este cdigo, la variable entonces contiene el entero 11.
I#tituto Superior Te!#o&"(i!o
Norbert Wie#er Manual del Alumno
Semana 13 : 4ipos de datos y
operadores(
Tipos de Datos
*-u. son los tipos de datos de @Script+
Microsoft JScript tiene seis tipos de datos. Los tipos principales son: numricos,
cadenas, objetos y Boolean. Los otros dos son null y no -e.ini-o
.
Tipo de dato Cadena
Las cadenas estn delimitadas por comillas simples o dobles. (Utilice comillas
simples para delimitar cadenas que utilicen comillas dobles.) Una cadena tambin
es un objeto en JScript, pero es un caso especial, con propiedades especiales. A
continuacin hay ejemplos de cadenas:
"L" 0"c" +"2tI +o/re 2" 2un"4"
>"BE+ i1po+i/2e!" !ritI e2 3o1/re4>
"T'"
Una cadena puede contener cero o ms caracteres unicode. Cuando no contiene
ninguno, se denomina cadena de longitud cero ("").
Tipo de dato nu/.rico
JScript permite utilizar nmeros enteros y en coma flotante. Los enteros pueden ser
positivos, 0 o negativos; un nmero en coma flotante puede contener un punto
decimal, , una "e" (mayscula o minscula), que se utiliza para representar "diez a
la potencia de" en notacin cientfica, o ambos. Estos nmeros siguen el estndar
IEEE 754 para la representacin numrica. Por ltimo, algunos valores numricos
son especiales:
"a", o no un nmero
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 dgitos
del 0 al 7. Si un nmero est precedido por un "0" pero contiene los dgitos "8" o
"9", es un nmero decimal. Si un nmero que de otro modo sera un octal contiene
la letra "e" (o "E") se genera un error.
Los enteros hexadecimales ("hex") se especifican anteponiendo "0x" (la "X" puede
ser mayscula o minscula) y pueden contener los dgitos del 0 al 9 y las letras de
I#tituto Superior Te!#o&"(i!o
Norbert Wie#er Manual del Alumno
la A a la F (maysculas o minsculas). La letra "e" es un dgito permisible en la
notacin hexadecimal y no indica la existencia de un nmero exponencial. Las letras
de la A a la F se utilizan para representar, como dgitos simples, los nmeros que
van del 10 al 15 en base 10. Es decir, 0xF equivale a 15 y 0x10 equivale a 16.
Los nmeros octales y hexadecimales pueden ser negativos, pero no fracciones. Un
nmero que comience con un nico "0" y contenga un punto decimal es un nmero
decimal en coma flotante, si un nmero 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 nmeros:
4AAA65 A4AAA65 6e-T5 64Ae-T (( Cu"tro nY1ero+ en co1" 82ot"nte5 too+
e22o+ e=ui0"2ente+4
94T;e' (( Un nY1ero en co1" 82ot"nte5
e=ui0"2ente " 9T;4
T' (( Un nY1ero entero4
A9UU (( Un entero oct"25 e=ui0"2ente " ';;4
AA4AAA6 (( Co1o 2o+ nY1ero+ oct"2e+ no pueen
tener eci1"2e+5 W+te e=ui0"2e " A4
A9US (( Un entero5 e=ui0"2ente " 9US4
AE88 (( Un entero 3e."eci1"25 e=ui0"2ente "
';;4
A.9UCF (( Un entero 3e."eci1"25 e=ui0"2ente "
6T'SU4
A.9eU (( Un entero 3e."eci1"25 e=ui0"2ente "
<<<4
A.94T;e' (( Co1o 2o+ nY1ero+ 3e."eci1"2e+ no
pueen tener p"rte+ eci1"2e+5 W+te e=ui0"2e " 94
Tipo Boolean
Los posibles valores de tipo Boolean sontrue y .alse. Son valores especiales, y no
se pueden utilizar como 1 y 0.
Nota En una co5paracin@ cual)uier expresin )ue se evalOe co5o B se to5ar' co5o False@ y cual)uier
expresin )ue se evalOe co5o un nO5ero distinto de cero se to5ar' co5o true. As=@ la siguiente expresin
se evalOa co5o true:
#8"2+e == A%
Tipo de dato no de4inido
Un valor no definido es simplemente un valor asignado a una variable despus 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.
I#tituto Superior Te!#o&"(i!o
Norbert Wie#er Manual del Alumno
Ta50ien pueden usar los siguientes
caracteres
Z0 indica un retroceso <0acJspace?
ZF indica un avance de pagina <Aor5
Feed?
Zn Indica nuva linea <NeG %ine?
Zr Indica un retorno de carro <!arrage
return?
Zt Indica un ta0ulador <Ta0?
ZS se puede incluir co5illas. EE:
SPos3 ZS!Ce5oZS del SolarS
"peradores de @ava Script
JScript tiene un amplio conjunto de operadores, incluidos aritmticos, lgicos, de
bits y de asignacin. Tambin existen algunos operadores variados.
CIlculo )<'icos De bits #si'naci<n Varios
Descripci<n SJmbolo Descripci<n SJmbolo Descripci<n SJmbolo Descripci<n SJmbolo Descripci<n SJmbolo
Negacin
unaria
- NOT lgico ! NOT de bits ~ Asignacin = -elete delete
Incremento ++ Menor que < Desplazamiento
de bits hacia la
izquierda
<< Asignacin
compuesta
(P= typeo. typeof
Decremento -- Mayor que > Desplazamiento
hacia la derecha
>> voi- void
Multiplicacin * Menor que o
igual a
<= Desplazamiento
a la derecha sin
signo
>>>
Divisin / Mayor que o
igual a
>= AND de bits &
Mdulo
aritmtico
% Igualdad == XOR de bits ^
Adicin + Desigualdad != OR de bits |
Sustraccin - AND lgico &&
OR lgico ||
Condicional
(trinario)
?:
Coma ,
Identidad ===
No identidad !==
recedencia de operadores
En JScript los operadores se evalan en un orden particular. Este orden se conoce
como la precedencia de operadores. La siguiente tabla muestra una lista de los
I#tituto Superior Te!#o&"(i!o
Norbert Wie#er Manual del Alumno
operadores en orden de precedencia de mayor a menor. Los operadores de la
misma fila se evalan de izquierda a derecha.
Opera-or De!rip!i"#
. ;> <?
Acceso a ca5pos@ indexacin de 5atrices y lla5adas a
Funciones
NN TT T \ ] typeoF neG
void delete
#peradores unarios@ tipos de datos devueltos@ creacin de
o0Eetos@ valores no deFinidos
X Y ^ $ultiplicacin@ divisin@ divisin 5dulo
N T N Adicin@ sustraccin@ concatenacin de cadenas
** ++ +++ 4esplaLa5iento de 0its
* *W + +W
$enor )ue@ 5enor )ue o igual a@ 5ayor )ue@ 5ayor )ue o igual
a
WW ]W WWW ]WW Igualdad@ desigualdad@ identidad@ no identidad
M AN4 de 0its
V X#R de 0its
_ #R de 0its
MM AN4 lgico
__ #R lgico
/: !ondicional
W ,%W Asignacin@ asignacin con operacin
@ Evaluacin 5Oltiple
Los parntesis se usan para modificar el orden de evaluacin. La expresin
encerrada entre parntesis se evala por completo antes de usar su valor en el
resto de la instruccin.
Un operador con mayor precedencia se evala antes que uno con menor
precedencia. Por ejemplo:
F = US : #<J H 9 H T;%
En esta expresin hay cinco operadores: =, *, (), + y +. Segn las normas de
precedencia, se evalan en el siguiente orden: (), *, +, +, =.
1. Lo primero es la evaluacin de la expresin que est encerrada entre
parntesis: Hay dos operadores de adicin 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 multiplicacin: Se multiplican 78 y 144, dando
como resultado un valor igual a 11232.
3. Por ltimo se realiza la asignacin: Se asigna 11232 a z.
I#tituto Superior Te!#o&"(i!o
Norbert Wie#er Manual del Alumno
Arreglos y Cadenas
Indexacin de /atrices
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 automtica de longitud (vea
objetos intrnsecos para obtener una explicacin sobre el control automtico de la
longitud de una matriz), la variable de longitud tendra el valor 51, en lugar de 4.
Se pueden crear matrices en las que no existan espacios vacos en el nmero de
elementos, pero no es necesario. De hecho, en JScript, no es necesario que sus
matrices tengan subndices numricos.
En JScript, los objetos y las matrices son esencialmente idnticos. La diferencia real
no se encuentra en los datos, si no en el mtodo utilizado para hacer referencia a
los miembros de una matriz o a las propiedades y mtodos de un objeto.
Re4erencias a /atrices
Existen dos mtodos principales para hacer referencia a los miembros de una
matriz. Normalmente se hace referencia a las matrices utilizando corchetes. Los
parntesis encierran un valor numrico o una expresin que se evala como un
nmero entero no negativo. El siguiente ejemplo asume que la variable num)ntr
est definida y que se le ha asignado un valor en alguna parte de la secuencia de
comandos.
2"Li+t" = 2i/ret"$ireccione+Znu1Entr[Q
2"Pri1er"Line" = 2"Li+t" Z6[Q
Este mtodo de referencia equivale al mtodo utilizado para hacer referencia a
objetos, aunque en estos ltimos debe aparecer despus del punto el nombre de
una propiedad existente. Si esa propiedad no existe, el cdigo generar un error.
El segundo mtodo para hacer referencia en una matriz es crear un objeto o matriz
que contenga las propiedades numeradas y generar los nmeros mediante un
bucle. El siguiente ejemplo genera dos matrices, una para el nombre y otra para la
direccin, a partir de la lista de libroDirecciones. Cada una de ellas contiene cuatro
propiedades. Por ejemplo, una instancia de elombre creada a partir de las
propiedades que van desde [Name1] a [Name4] en la*ista, podra contener "G."
"Edward" "Heatherington" "IV", o "George" "" "Sand" "".
2"Li+t" = 2i/ret"$ireccione+Znu1Entr[Q
8or #i = 6Q i
< TQ iHH% P
e2No1/re Zi[ = 2"Li+t"Z"No1/re" H i[Q
2"$ireccionZi[ = 2"Li+t"Z"$ireccion" H i[Q
V
I#tituto Superior Te!#o&"(i!o
Norbert Wie#er Manual del Alumno
Aunque esta instancia en concreto, es corta y se podra haber escrito fcilmente en
la notacin con punto (es decir, haciendo referencia a la*ista, elombre, y
laDireccion como objeto en lugar de hacerlo como matrices), esto no siempre es
posible. Es posible que algunas veces una determinada propiedad no exista hasta el
momento de la ejecucin, o que no exista forma de saber con antelacin cul ser.
Por ejemplo, si la matriz libretaDirecciones estuviera organizada por el apellido en
lugar de estarlo por una lista numrica, el usuario probablemente podra 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 funcin
correctas en alguna parte de la secuencia de comandos.
2"Li+t" = 2i/ret"$ireccione+Z!etN"1e#%[Q
2"Li+t"Ini0= 2"Li+t" Zo/tenerPri1erNo1/re #%[Q
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.
",3etos IntrBnsecos
Microsoft JScript ofrece nueve objetos intrnsecos (o "incorporados"). Estos objetos
son #rray, &oolean, Date, Function, *lobal, /at(, "umber, Ob+ecty Strin'.
Cada uno de los objetos intrnsecos tienen mtodos y propiedades asociados, que
se describen en detalle en la referencia del lenguaje. Algunos objetos tambin se
describen aqu.
",3eto 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
nmero (o por nombre, si les asigna nombres). Para crear una nueva matriz, utilice
el operador ne0 y el constructor #rray$%, como en el siguiente ejemplo.
0"r 2o+*e+e+ = ne& Arr"K#6'% P
2o+*e+e+ZA[ = "Ene"Q
2o+*e+e+Z6[ = "Fe/"Q
2o+*e+e+Z'[ = "*"r"Q
2o+*e+e+Z9[ = "A/r"Q
2o+*e+e+ZT[ = "*"K"Q
2o+*e+e+Z;[ = "\un"Q
2o+*e+e+ZJ[ = "\u2"Q
2o+*e+e+ZU[ = "A!o"Q
2o+*e+e+ZS[ = "Sep"Q
2o+*e+e+Z<[ = ",ct"Q
2o+*e+e+Z6A[ = "No0"Q
2o+*e+e+Z66[ = "$ic"Q
V
Al crear una matriz utilizando la palabra clave #rray, JScript incluye en la matriz
una propiedad length de slo escritura, que graba el nmero de entradas de una
matriz. Si no especifica un nmero, la longitud se establece a 0 y la matriz no tiene
entradas. Si especifica un nmero, la longitud se establece a ese nmero. Si
I#tituto Superior Te!#o&"(i!o
Norbert Wie#er Manual del Alumno
especifica ms de un parmetro, los parmetros se utilizan como entradas de la
matriz y el nmero de parmetros se asigna a la propiedad length, como en el
siguiente ejemplo, que es equivalente al ejemplo anterior.
0"r 2o+*e+e+ = ne& Arr"K#"Ene"5 "Fe/"5 "*"r"5 "A/r"5 "*"K"5 "\un"5
"\u2"5 "A!o"5 "Sep"5 ",ct"5 "No0"5 "$ic"%Q
JScript cambia automticamente el valor de len't( si agrega elementos a una
matriz que cre con la palabra clave #rray.
",3eto 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 Strin' tiene algunos mtodos
incorporados, que puede utilizar con sus cadenas. Uno de esos mtodos es el
mtodo substrin', que devuelve parte de la cadena. Este mtodo recibe dos
nmeros como argumentos.
un"C"en" = "A6'9T;JUS<"Q
0"r un"Porcion = un"C"en"4+u/+trin!#T5 U%Q (( E+t"/2ece un"Porcion "
"T;J"4
0"r otr"Porcion = un"C"en"4+u/+trin!#U5 T%Q (( E+t"/2ece otr"Porcion
" "T;J"4
(( Si +e uti2iF" e2 e?e1p2o e cre"ciIn e Arr"K "nterior]
pri1er"Letr" = 2o+*e+e+Z;[4+u/+trin!#A56%Q (( E+t"/2ece 2" 0"ri"/2e
pri1er"Letr" " "\"4
Otra propiedad del objeto Strin' es la propiedad len't(. Esta propiedad contiene
el nmero de caracteres que hay en la cadena, que es igual a 0 en una cadena
vaca. Esto es un valor numrico y se puede utilizar directamente en clculos.
0"r Lon!itu = ")o2" 1uno"42en!t3 (( E+t"/2ece 2" 0"ri"/2e Lon!itu
" 6A4
",3eto #at1
El objeto /at( tiene una cantidad de propiedades y mtodos, todos ellos
predefinidos. Las propiedades son nmeros especficos. Uno de estos valores es pi
(aproximadamente 3,14159...). Es la propiedad /at(.P!, mostrada en el siguiente
ejemplo.
(( Se ec2"r" un" 0"ri"/2e r"io K +e 2e "+i!n" un 0"2or nu1Wrico4
0"r "re"Circu2o = *"t34PI : r"io : r"ioQ (( ,/+er0e =ue *"t3 K PI
e+tRn en 1"KY+cu2"+4
Uno de los mtodos incorporados del objeto /at( es el mtodo de exponenciacin
o po0, que eleva un nmero a una potencia especificada. El siguiente ejemplo usa
pi y exponenciacin.
(( E+t" 8Ir1u2" c"2cu2" e2 0o2u1en e un" e+8er" con un r"io
e+peci8ic"o4
0o2u1en = #T(9%:#*"t34PI:*"t34po&#r"io59%%Q
I#tituto Superior Te!#o&"(i!o
Norbert Wie#er Manual del Alumno
",3eto Date
Utilice el objeto Date para capturar la fecha de hoy y para calcular diferencias entre
fechas. Este objeto tiene varios mtodos y propiedades, todos ellos predefinidos. En
general, el objeto Date proporciona el da de la semana; el mes, da y ao; y la
hora en horas, minutos y segundos. Esta informacin est basada en el nmero de
milisegundos transcurridos desde el 1 de enero de 1970, 00:00:00.000 GMT. GMT
son las iniciales de "Greenwich Mean Time"; el trmino preferido es UTC u "Horario
Universal Coordinado", que hace referencia a seales emitidas por el horario
estndar mundial.
Nota ara PScript@ la Cora co5ienLa en la 5edianocCe del - de enero de -,7BU no puede solicitar a
PScript )ue cree un o0Eeto Date )ue represente una Cora anterior a esa. Si necesita tra0aEar con Coras
anteriores@ de0e escri0ir su propio cdigo para Cacerlo@ una tarea For5ida0le.
Para crear un nuevo objeto Date se utiliza el operador ne0. El siguiente ejemplo
calcula, para el ao actual, el nmero de das transcurridos y el nmero de das que
faltan.
(:
E+te e?e1p2o uti2iF" 2" 1"triF e no1/re+ e 1e+e+ pre0i"1ente e8ini"4
L" pri1er" in+trucciIn "+i!n" 2" 8ec3" e 3oK5 en 8or1"to "$C" *e+ Fec3" AA]AA]AA A^o"
5 " 2" 0"ri"/2e e+toE+)oK4
:(
0"r e+toE+)oK = ne& $"te#%Q
0"r 3oK = ne& $"te#%Q (( C"ptur" 2" 8ec3" e 3oK4
(( E.tr"e e2 "^o5 1e+ K C"4
0"r e+teAno = 3oK4!et-e"r#% H 6<AAQ
0"r e+te*e+ = 2o+*e+e+Z3oK4!et*ont3#%[Q
0"r e+te$i" = e+te*e+ H " " H 3oK4!et$"te#% H "5" H #p"r+eInt#3oK4!et-e"r#%% H 6<AA%Q
(( $eter1in" e2 nY1ero e C"+ tr"n+currio e+e e2 inicio4
3oK = *"t34roun#$"te4p"r+e#e+te$i"%(S4JTeU%Q
(( )"ce 2o 1i+1o con e2 principio e2 "^o4
0"r pri1er$i" = "6 e enero e " H e+teAnoQ
pri1er$i" = *"t3482oor#$"te4p"r+e#pri1er$i"%(S4JTeU%Q
(( Lo 0ue20e " 3"cer p"r" e2 8in"2 e2 "^o5 en c"+o e =ue +e" un "^o /i+ie+to4
0"r u2ti1o$i" = "96 e icie1/re e " H e+teAnoQ
u2ti1o$i" = *"t3482oor#$"te4p"r+e#u2ti1o$i"%(S4JTeU%Q
(( C"2cu2" e2 nY1ero e C"+ e2 "^o4
0"r i"+EnAno = #u2ti1o$i" - pri1er$i"% H 6Q
(( $eter1in" cuRnto+ C"+ 3"n tr"n+currio K cuRnto+ 8"2t"n4
0"r i"+Tr"n+currio+= e+te$i" - pri1er$i"Q
0"r i"+F"2t"n = i"+EnAno - i"+Tr"n+currio+Q
(( E+t"/2ece co1ent"rio+ p"r" 2" 1"Kor p"rte e2 "^o4
0"r co1ent"rio6 = i"+Tr"n+currio+H " C"+ 3"n tr"n+currio en e2 "^o4"Q
0"r co1ent"rio' = "E+o +i!ni8ic" =ue 8"2t"n " H i"+F"2t"nH " i"+ p"r" ter1in"r e2 "^o
" H e+teAno H "4"Q
(( Cu/re 2o+ c"+o+ e+peci"2e+] inicio K 8in"2 e "^o K un +o2o C"4
i8 #i"+Tr"n+currio+ == A% P
co1ent"rio6 = "E+ uno e enero5 " H e+teAno H "4"Q
V
i8 #i"+Tr"n+currio+ == 6% P
co1ent"rio6 = "SI2o 3" tr"n+currio un C"4"Q
V
i8#i"+Tr"n+currio+ == i"+EnAno% P
co1ent"rio6 = e+teAno H " "c"/" e ter1in"r4"Q
V
i8 #i"+F"2t"n == A% P
co1ent"rio' = "Lo+ 1e?ore+ e+eo+ en e2 nue0o "^o4"Q
V
i8 #i"+F"2t"n == 6% P
co1ent"rio' = "SI2o =ue" un C" p"r" ter1in"r e2 "^o " H e+teAno H "4"Q
V
i8 #i"+F"2t"n == i"+EnAno% P
co1ent"rio' = "Fe2iF "^o nue0o4"Q
I#tituto Superior Te!#o&"(i!o
Norbert Wie#er Manual del Alumno
U
",3eto Nu/,er
Adems de las propiedades numricas especiales (por ejemplo P!) que estn
disponibles en el objeto /at(, muchas otras propiedades estn disponibles en
Microsoft JScript a travs del objeto "umber.
Propie-a- De!rip!i"#
$AX`VA%HE
El nO5ero 5's grande posi0le@ alrededor de -@7,EN6B&U puede
ser positivo o negativo. <El valor var=a ligera5ente entre un
siste5a y otro.?
$IN`VA%HE El nO5ero 5's pe)ue[o posi0le@ alrededor de 1.11ET6B&U puede
ser positivo o negativo. <El valor var=a ligera5ente entre un
siste5a y otro.?
NaN Valor no nu53rico especial@ Sno es un nO5eroS.
#SITIVE`INAINITK !ual)uier valor positivo 5ayor )ue Nu50er.$AX`VA%HE
se convierte auto5'tica5ente a este valorU representado co5o
SInFS.
NEDATIVE`INAINITK !ual)uier valor negativo 5ayor )ue TNu50er.$AX`VA%HE
se convierte auto5'tica5ente a este valorU representado co5o ST
InFS.
"umber."a" es una propiedad especial que se define como "no es un nmero".
Por ejemplo, una divisin por cero devuelve "a". Si intenta analizar una cadena
que no se puede analizar como un nmero, tambin devuelve "umber."a". Si
compara "a" con cualquier otro nmero o consigo mismo obtiene como resultado
que no son iguales. Para verificar que un resultado es igual a "a", no compare el
resultado con "umber."a"; utilice la funcin is"a"$%.
I#tituto Superior Te!#o&"(i!o
Norbert Wie#er Manual del Alumno
Semana 1! : 'structuras de control(
Control del 0lu3o del rogra/a
*or 'u. controlar el 4lu3o de la e3ecucin+
Muy frecuentemente, es necesaria una secuencia de comandos para funciones
diferentes bajo diferentes condiciones. Por ejemplo, podra escribir una secuencia
de comandos que comprobara la hora cada hora y que cambiara algn parmetro
durante el transcurso del da. Podra escribir una secuencia de comandos que
acepta algn tipo de entrada y acta de una u otra forma segn la entrada
proporcionada. O podra escribir una secuencia de comandos que repita una accin
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 comprobacin es true o .alse. Puede comprobar valores numricos, de
tipo Boolean o cadenas indistintamente.
JScript proporciona estructuras de control para un amplio intervalo de posibilidades.
Las estructuras de control ms sencillas son las instrucciones condicionales.
7sar instrucciones condicionales
JScript admite las instrucciones condicionales i. e i....else. En las instrucciones i.
se comprueba una condicin y si la condicin cumple la comprobacin, se ejecuta
algn cdigo de JScript que haya escrito. (En la instruccin i....else, se ejecuta un
cdigo distinto si la condicin no cumple la comprobacin.) La forma ms sencilla
de una instruccin i. se puede escribir completamente en una sola lnea, pero se
usan mucho ms las instrucciones i. e i....else de mltiples lneas.
Los siguientes ejemplos demuestran distintas sintaxis que puede usar con las
instrucciones i. e i....else. El primer ejemplo muestra el tipo de comprobacin
Boolean ms sencillo. Si (y slo si) el elemento encerrado entre parntesis da como
resultado true, se ejecuta la instruccin o el bloque de instrucciones que sigue a la
instruccin i..
(( L" 8unciIn +1"+3#% +e e8ine en cu"2=uier otr" p"rte e2 cIi!o4
i8 #ne&S3ip%
+1"+3#c3"1p"!neBott2e5/o&%Q (( Co1pro/"ciIn e tipo Boo2e"n p"r"
+"/er +i ne&S3ip e+ true4
(( En e+te e?e1p2o5 2" co1pro/"ciIn no +e cu1p2e " 1eno+ =ue "1/"+
conicione+ +e"n 0er"er"+4
i8 #rin4co2or == ""1"ri22o o+curo" 77 rin4te.ture == ""rru!"+
!r"ne+ K pe=ue^"+"%
P
2"Re+pue+t" = #"_E+ un 1e2In` </r> "%Q
V
(( En e+te e?e1p2o5 2" co1pro/"ciIn +e cu1p2e +i cu"2=uier" e 2"+
conicione+ e+ 0er"er"4
0"r 2"Re"ccion = ""Q
i8 ##Pe+oEnLi/r"+ > 6;% aa #Pe+oEnLi/r"+ > T;%%
P
2"Re"ccion = #"BXuW 2ino !"tito! </r>"%Q
V
I#tituto Superior Te!#o&"(i!o
Norbert Wie#er Manual del Alumno
e2+e
2"Re"ccion = #"BE+ un !"to enor1e! </r>"%Q
"perador condicional
JScript tambin admite una forma condicional implcita. Utiliza un signo de
interrogacin despus de la condicin que va a comprobar (en lugar de la palabra i.
antes de la condicin) y especifica dos alternativas, una para usarla si la condicin
se cumple y otra para usarla si no se cumple. Las alternativas estn separadas por
dos puntos.
0"r 3or"+ = ""Q
(( CIi!o =ue e+peci8ic" =ue 2" 0"ri"/2e 3or"+ tiene e2 contenio e
(( 2")or" o 2")or" - 6'4
3or"+ H= #2")or" >= 6'% ` " p414" ] " "414"Q
Su(ere#!ia Si tiene )ue co5pro0ar varias condiciones Euntas y sa0e )ue alguna tiene 5's posi0ilidades
de cu5plirse@ o de no cu5plirse@ )ue las de5's@ dependiendo de si las co5pro0aciones est'n conectadas
#R <__? o con AN4 <MM?@ puede sacriFicar la velocidad de eEecucin de su secuencia de co5andos
colocando esa condicin pri5ero en la instruccin condicional. or eEe5plo@ si tres condiciones de0en ser
verdaderas <usando operadores MM? y la segunda co5pro0acin no se cu5ple@ no se co5prue0a la tercera
condicin.
4e For5a si5ilar@ si de varias condiciones@ slo una de0e ser verdadera <usando operadores __?@ la
co5pro0acin se detiene cuando cual)uier condicin cu5ple la co5pro0acin. Esto es particular5ente
eFectivo si las condiciones )ue desea co5pro0ar i5plican la eEecucin de lla5adas a Funciones o de otro
cdigo.
Hn eEe5plo de los eFectos secundarios de cortocircuito@ es )ue en el siguiente eEe5plo no se eEecutar'
eEecutarsegundo si eEecutarpri5ero<? devuelve B o 7a&e.
i. $$e+ecutarprimero$% >> H% KK $e+ecutarse'un-o$% >> H%%
== al'Ln c<-i'o
7sar repeticiones o ,ucles
Existen varias formas de ejecutar una instruccin o un bloque de instrucciones
repetidas veces. En general, la ejecucin repetitiva se llama ejecucin en bucle.
Normalmente se controla mediante la comprobacin de alguna variable cuyo valor
cambia cada vez que se ejecuta el bucle. Microsoft JScript es compatible con
muchos tipos de bucles: .or, .or...in, 0(ile, -o...0(ile y s0itc(.
7sar ,ucles 4or
La instruccin .or especifica una variable de contador, una condicin de
comprobacin y una accin que actualiza el contador. Justo antes de cada ejecucin
del bucle (esto se llama una iteracin del bucle), se comprueba la condicin.
Despus de ejecutar el bucle, la variable de contador se actualiza antes de
comenzar la siguiente iteracin.
Si nunca se cumple la condicin del bucle, ste nunca se ejecuta. Si la condicin 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.
I#tituto Superior Te!#o&"(i!o
Norbert Wie#er Manual del Alumno
(:
L" e.pre+iIn e "ctu"2iF"ciIn #"icountHH" en 2o+ +i!uiente+ e?e1p2o+%
+e e?ecut" "2 8in"2 e2 /uc2e5 e+puW+ e =ue e2 /2o=ue e in+truccione+ =ue
8or1"n e2
cuerpo e2 /uc2e +e e?ecut" K "nte+ e co1pro/"r 2" coniciIn4
:(
0"r 2i1ite = 66Q (( E+t"/2ece un 2C1ite e 66 en e2 /uc2e4
0"r +u1" = ne& Arr"K#2i1ite%Q (( Cre" un" 1"triF 22"1"" +u1" con 66
1ie1/ro+5 e+e A 3"+t" 6A4
0"r 2"Su1" = AQ
+u1"ZA[ = AQ
8or#0"r icount = 6Q icount < 2i1iteQ icountHH% P (( En e+te c"+o5
cuent" e+e 6 3"+t" 6A4
2"Su1" H= icountQ
+u1"Zicount[ = 2"Su1"Q
V
0"r nue0"Su1" = AQ
8or#0"r icount = 6Q icount > 2i1iteQ icountHH% P (( E+to nunc" +e e?ecut"4
nue0"Su1" H= icountQ
V
0"r +u1" = AQ
8or#0"r icount = 6Q icount > AQ icountHH% P (( E+to e+ un /uc2e in8inito4
+u1" H= icountQ
V
7sar ,ucles 4or<<<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 .or...in itera por todos
los ndices de la matriz. El contador es una cadena, no un nmero.
8or #? in p"+t"Vere% (( p"+t"Vere e+ un o/?eto con 0"ri"+
propie"e+
P
(( V"ri"+ in+truccione+ e cIi!o \Script4
V
7sar ,ucles 61ile
El bucle 0(ile es muy parecido a un bucle .or. La diferencia es que un bucle 0(ile
no tiene incorporada una variable de contador o una expresin de actualizacin. Si
ya tiene alguna condicin que cambia y que se refleja en el valor asignado a una
variable y desea usarla para controlar la ejecucin repetitiva de una instruccin o
un bloque de instrucciones, utilice un bucle 0(ile.
0"r 2o+*o1ento+ = ""Q
0"r 2"Cuent" = T'Q (( Inici" 2" 0"ri"/2e e cont"or4
&3i2e #2"Cuent" >= 6% P
i8 #2"Cuent" > 6% P
2o+*o1ento+ = "SI2o =ue"n " H 2"Cuent" H " 1o1ento+4"Q
V
e2+e P
2o+*o1ento+ = "SI2o =ue" un 1o1ento4"Q
V
2"Cuent"--Q (( Actu"2iF" 2" 0"ri"/2e e cont"or4
V
2o+*o1ento+ = "Ter1inI"Q
I#tituto Superior Te!#o&"(i!o
Norbert Wie#er Manual del Alumno
Nota 4e0ido a )ue los 0ucles :5i&e no tienen varia0les de contador expl=citas incorporadas@ todav=a son
5's vulnera0les a crear 0ucles inFinitos )ue otros tipos de 0ucles. Ade5's@ en parte por)ue no es
necesaria5ente F'cil de descu0rir dnde y cu'ndo se actualiLa la condicin del 0ucle@ slo es 5uy F'cil
escri0ir un 0ucle :5i&e en el )ue la condicin nunca se actualice. 4e0e tener 5ucCa precaucin al dise[ar
0ucles :5i&e.
7sar instrucciones ,rea9 y continue
Microsoft JScript proporciona una instruccin para detener la ejecucin de un bucle.
La instruccin brea5 se puede usar para detener la ejecucin si se cumple alguna
condicin (que se supone una condicin especial). La instruccin continue se
puede usar para pasar inmediatamente a la siguiente iteracin, saltando el resto del
bloque de cdigo pero actualizando la variable de contador como sucede si el bucle
es un bucle .or o .or...in.
0"r e2Co1ent"rio = ""Q
0"r e2Re+to = AQ
0"r 2"S"2i" = 9Q
0"r co1pro/"r = 'UQ
8or #Mcuent" = 6Q Mcuent" <= 6AQ Mcuent"HH%
P
e2Re+to = co1pro/"r O Mcuent"Q
i8 #e2Re+to == 2"S"2i"%
P
/re"MQ (( S"2e e2 /uc2e "2 encontr"r e2 pri1er re+to i!u"2 "
+"2i"4
V
e2Co1ent"rio = co1pro/"r H " i0iio por " H Mcuent" H " e?" un re+to i!u"2
" " H e2Re+toQ
V
8or #Mcuent" = 6Q Mcuent" <= 6AQ Mcuent"HH%
P
e2Re+to = co1pro/"r O Mcuent"Q
i8 #e2Re+to != 2"S"2i"%
P
continueQ (( Se2eccion" +I2o 2o+ re+to+ i!u"2e+ " 2" +"2i"5 i!nor"no
too+ 2o+ e1R+4
V
(( CIi!o e \Script =ue u+" 2o+ re+to+ +e2eccion"o+4
V
0"r 2o+*o1ento+ = ""Q
0"r 2"Cuent" = T'Q (( Se inici" e2 cont"or4
&3i2e #2"Cuent" >= 6% P
(( i8 #2"Cuent" < 6A% P (( A0ertenci"
(( E+te u+o e continue cre" un /uc2e in8inito4
(( continueQ
(( V
i8 #2"Cuent" > 6% P
2o+*o1ento+ = "SI2o =ue"n " H 2"Cuent" H " 1o1ento+4"Q
V
e2+e P
2o+*o1ento+ = "SI2o =ue" un 1o1ento4"Q
V
2"Cuent"--Q (( Se "ctu"2iF" e2 cont"or4
V
2"Cuent" = "Ter1inI"Q
I#tituto Superior Te!#o&"(i!o
Norbert Wie#er Manual del Alumno
Semana 1$ : Ventanas y modelo de
ob0etos(
",3eto 6indo6
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 sesin. Ahora veremos su mtodos y
propiedades ms usadas
open
ZV"ri"/2e=[Z&ino&4[open#"URL"5"No1/re"5"Propie"e+"%Q
El mtodo 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 mtodo: el navegador automticamente sabr que
pertenece al objeto window. El parmetro URL contendr la direccin de la ventana
que estamos abriendo: si est en blanco, la ventana se abrir con una pgina en
blanco. El Nombre ser el que queramos que se utilize como parmetro de un
TARGET y las Propiedades son una lista separada por comas de algunos de los
siguientes elementos:
tool0ar;Wyes_no>
location;Wyes_no>
directories;Wyes_no>
status;Wyes_no>
5enu0ar;Wyes_no>
scroll0ars;Wyes_no>
resiLa0le;Wyes_no>
GidtCWpixels
CeigCtWpixels
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 combinacin toolbar=no, directories=no,
menubar=no.
close
V"ri"/2e4c2o+e#%Q
Cierra la ventana Variable-
I#tituto Superior Te!#o&"(i!o
Norbert Wie#er Manual del Alumno
A no ser que hayamos acabado de abrirla nosotros pedir al usuario una ventana
para que decida l si quiere o no cerrarla.
alert
V"ri"/2e4"2ert#"*en+"?e"%Q
Muestra una ventana de dilogo 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.
de4aultStatus
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.
",3eto docu/ent
Es un objeto derivado de window que identifica a un documento HTML.
6rite
ocu1ent4&rite#"C"en""%Q
Escribe en un documento HTML, en el lugar del mismo donde hayamos situado el
script que contiene al m:todo, la cadena dada. El mtodo writeln hace lo
mismo, pero incluyendo al final un retorno de carro.
last#odi4ied
Contiene la fecha y hora en que se modific el documento por ltima vez y se suele
usar en conjuncin con write para aadir al final del documento estas
caractersticas.
,gColor
Modifica el color de fondo del documento. El color deber estar en el formato usado
en HTML. Es decir, puede ser red o FF0000.
",3eto 1istory
Este objeto se deriva de document y contiene todas las direcciones que se han
visitado en la sesin actual. Tiene estos tres mtodos:
o -ocument.(istory.bac5$%: Volver a la pgina anterior.
o -ocument.(istory..or0ar-$%: Ir a la pgina siguiente.
I#tituto Superior Te!#o&"(i!o
Norbert Wie#er Manual del Alumno
o -ocument.(istory.'o$-on-e%: Ir a donde se indique, siendo donde un
nmero tal que go(1)=forward() y go(-1)=back().
",3eto 4or/
Este objeto derivado de document se refiere a un formulario. Puede ser til para
verificarlos antes de enviarlos.
su,/it
"ombre.submit$%
Enva el formulario llamando Nombre.
text
Contiene el texto contenido en un campo de edicin de un formulario.
",3eto date
Este es un objeto de propsito general que permite trabajar con fechas y horas
",3eto /at1
Este otro objeto de propsito general incluye las diversas funciones matemticas
ms comunes, como abs o sin o el valor PI.
",3eto navigator
A travs de este objeto podremos averiguar varias caractersticas del navegador
que usamos. Por ejemplo:
o navi'ator.app"ame: Nombre del navegador.
o navi'ator.appVer: Nmero principal de versin-
o navi'ator.lan'ua'e: Idioma del mismo-
o navi'ator.plat.orm: Plataforma donde esta ejecutndose.
No podemos sobreescribir estos atributos, pero s leerlos.
",3eto screen
Con este objeto podremos averiguar la configuracin de la pantalla. Al igual que en
el anterior, todos sus atributos son de slo lectura.
o screen.(ei'(t: Altura--
o screen.0i-t(: Anchura.
I#tituto Superior Te!#o&"(i!o
Norbert Wie#er Manual del Alumno
o screen.pixelDept(: Nmero de bits por pixel.
Eventos
Un evento, como su mismo nombre indica, es algo que ocurre. Para que una rutina
nuestra se ejecute slo cuando suceda algo extrao deberemos llamarla desde un
controlador de eventos. Estos controladores se asocian a un elemento HTML y se
incluyen as:
<A )REF="3ttp]((3o1e4net+c"pe4co1" on*ou+e,0er="*iFuncion#%">
$ista de Eventos
Aqu se expone una pequea gua de eventos definidos en JavaScript :
E.e#to De!rip!i"# E&eme#to ;ue &o a-mite#
on%oad Ter5inar de cargarse una p'gina
*B#4K...+
*ARA$ESET...+
*%AKER...+
onHn%oad Salir de una p'gina <descargarla?
*B#4K...+*ARA$ESET...+
*%AKER...+
on$ouse#ver asar el ratn por enci5a
*A (REA..+
*AREA...+
*%AKER...+
on$ouse#ut 2ue el ratn deEe de estar enci5a
*A (REA..+
*AREA...+
*%AKER...+
onSu05it Enviar un For5ulario *A#R$...+
on!licJ ulsar un ele5ento *INHT TKEWS0utton@ cCecJ0ox@ linJ@ radioS...+
onBlur erder el cursor
*INHT TKEWStextS...+
*TEXTAREA...+
*%AKER...+
on!Cange
!a50iar de contenido o perder el
cursor
*INHT TKEWStextS...+
*TEXTAREA...+
onAocus !onseguir el cursor
*INHT TKEWStextS...+
*TEXTAREA...+
*%AKER...+
onSelect Seleccionar texto
*INHT TKEWStextS...+
*TEXTAREA...+
7n e3e/plo
Como ejemplo, vamos a hacer que una ventana aparezca automticamente en
cuanto pasemos un cursor por encima de un elemento <A> (e impidiendo, de paso,
que quien est viendo la pgina pueda hacer uso del mismo).
<)T*L>
<)EA$>
I#tituto Superior Te!#o&"(i!o
Norbert Wie#er Manual del Alumno
<SCRIPT LANGUAGE="\"0"Script">
<!-- Se u+"n 2o+ co1ent"rio+ p"r" e+coner e2 cIi!o " n"0e!"ore+ +in
\"0"Script
8unction A2"r1"#% P
"2ert#"No 1e pi+e+5 =ue 22e0o c3"nc2"+"%Q
return trueQ
V
(( -->
<(SCRIPT>
<()EA$>
<B,$->
<A )REF="e0ento+43t12" on*ou+e,0er="A2"r1"#%">
P"+" por "=uC enci1"
<(A>
<(B,$->
<()T*L>
",3eto event
Este objeto permite la identificacin de un evento con el atributo type y su
localizacion con x e y, entre otras cosas. As, por ejemplo, podramos hacer:
<A )REF="3ttp]((3o1e4net+c"pe4co1" on*ou+e,ut=>"2ert#")u/o un e0ento
"He0ent4tKpeH" en e2 en2"ce4"%>>
P"+" por "=uC enci1" K cu"no te 0"K"+ +"2rR 2" 0ent"nit"
<(A>
Su importancia radica en el hecho de que se puede usar para capturar toda clase de
eventos por medio de la funcin captureEvents$e). El argumento de esta
funcin es una propiedad del objeto event que indica el tipo de eventos que
desees capturas de este modo:
c"ptureE0ent+#e0ent4CLICb a e0ent4*,USE,VER a e0ent4BLUR%
que permitira la captura de todos los eventos on)oa-, on/ouseOver y on&lur.
El nico uso que le he encontrado a estas posibilidades est en la creacin de
objetos nuevos, que de este modo tendran un control de eventos propio.
I#tituto Superior Te!#o&"(i!o
Norbert Wie#er Manual del Alumno
Semana 1& : 54M6 1in7mico(
D&T#$
DHTML no es precisamente un lenguaje de programacin. Ms 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 pgina que antes.
Cualquier pgina que responde a las actividades del usuario y realiza efectos y
funcionalidades se puede englobar dentro del DHTML, pero en este caso nos
referimos ms a efectos en el navegador por los cuales se pueden mostrar y ocultar
elementos de la pgina, se puede modificar su posicin, dimensiones, color, etc.
DHTML nos da ms control sobre la pgina, gracias a que los navegadores
modernos incluyen una nueva estructura para visualizar en pginas web
denominada capa. Las capas se pueden ocultar, mostrar, desplazar, etc.
Para realizar las acciones sobre la pgina, como modificar la apariencia de una
capa, seguimos necesitando un lenguaje de programacin del lado del cliente como
Pavascript o VBScript.
Dentro del concepto de D,T/) se engloban tambin las ,o+as -e Estilo en
Casca-a o CSS (Casca-e Style S(eets), que veremos a continuacin.
-u. es CSS
CSS, es una tecnologa que nos permite crear pginas web de una manera ms
exacta. Gracias a las CSS somos mucho ms dueos de los resultados finales de la
pgina, pudiendo hacer muchas cosas que no se poda hacer utilizando solamente
HTML, como incluir mrgenes, tipos de letra, fondos, colores...
CSS son las siglas de Cascading Style Sheets, en espaol 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 tecnologa entera.
ara e/pe;ar
Las Hojas de Estilo en Cascada se escriben dentro del cdigo HTML de la pgina
web, solo en casos avanzados se pueden escribir en un archivo a parte y enlazar la
pgina con ese archivo. En un principio vamos a utilizar la manera ms directa de
aplicar estilos a los elementos de la pgina, mas adelante veremos la declaracin
en archivos externos. Para ello, y esto es la primera leccin de este artculo, vamos
a conocer un nuevo atributo que se puede utilizar en casi todas las etiquetas HTML:
style.
E+emplo:
<p style="color:green;font-weight:bold">El prrafo 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 artculo vamos a conocer muchos atributos de CSS,
los dos primeros que hemos visto aqu son:
I#tituto Superior Te!#o&"(i!o
Norbert Wie#er Manual del Alumno
Color: indica el color del contenido la etiqueta donde estemos utilizndolo,
generalmente indica el color del texto.
FontA0ei'(t: 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 lBneas
Con CSS podemos definir el espacio que hay entre cada lnea del documento,
utilizando el atributo line-height. Por ejemplo, podemos definir que para todo un
prrafo el espacio entre cada una de sus lneas sea 25 pixels:
<p style="line-height: 25px;">
Un prrafo normal en el que cada una de las lneas est separada 25 pixels de la otra. Hay que poner
suficiente texto como para que se vean 2 lneas, as saldrn separadas
</p>
Espaciado entre caracteres
Se puede definir tambin el espacio entre cada carcter. Esto se hace con el
atributo de CSS letter-spacing. Veamos un ejemplo:
<p style="letter-spacing:12cm">
Este prrafo tiene las letras espaciadas por 1 centmetro.
</p>
Este atributo, al igual que ocurre con muchos otros de CSS, no est soportado por
todos los navegadores. En concreto Netscape, en su versin 4 todava no lo incluye.
Enlaces sin su,rayado
Uno de los efectos ms significativos y fciles de realizar con CSS es eliminar el
subrayado de los enlaces de una pgina web. Existe un atributo que sirve para
definir la decoracin 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 decoracin:
<a href="mipagina.html" style="text-decoration:none">
Incluir estilos para todo un sitio 6e,
Una de las caractersticas ms potentes de la programacin con hojas de estilo
I#tituto Superior Te!#o&"(i!o
Norbert Wie#er Manual del Alumno
consiste en definir los estilos de todo un sitio web. Esto se consigue creando un
archivo donde tan slo colocamos las declaraciones de estilos de la pgina y
enlazando todas las pginas del sitio con ese archivo. De este modo, todas las
pginas comparten una misma declaracin de estilos y, por tanto, si la cambiamos,
cambiarn todas las pginas.
Veamos ahora todo el proceso para incluir estilos con un fichero externo.
9A Creamos el .ic(ero con la -eclaraci<n -e estilos
Es un fichero de texto normal, que puede tener cualquier extensin, aunque le
podemos asignar la extensin .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. Sera errneo incluir
cdigo HTML en este archivo: etiquetas y dems. Podemos ver un ejemplo a
continuacin.
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;
}
MA Enla1amos la pI'ina 0eb con la (o+a -e 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 pgina web entera que enlaza con la declaracin de estilos anterior:
<html>
<head>
<link rel="STYLESHEET" type="text/css" href="estilos.css">
<title>Pgina que lee estilos</title>
</head>
<body>
<h1>Pgina que lee estilos</h1>
<p>
Esta pgina tiene en la cabecera la etiqueta necesaria para enlazar con la hoja de estilos. Es muy fcil.
</p>
</body>
</html>
)as CSS tienen muc(o mIs +u'o
Las Hojas de Estilo en Cascada son un estndar muy amplio, con unas
especificaciones y posibilidades muy grandes. En este artculo hemos visto unos
cuantos efectos interesantes que realizar aunque no tengamos ningn conocimiento
previo. Sin embargo, lo mejor para trabajar con esta tecnologa es conocerla bien,
gracias a ello, los resultados sern mucho ms sorprendentes.
I#tituto Superior Te!#o&"(i!o
Norbert Wie#er Manual del Alumno
Semana 1) : JavaScript : Animaci8n(
ANI#ACI"NES
La animacin en JavaScript puede ser de texto, imgenes 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 imgenes e id en caso de texto. De esta
manera podremos hacer referencia al elemento deseado desde la funcin encargada
de ejecutar la animacin.
A continuacin, aadiremos el evento con la llamada a la funcin (si es necesario,
en muchas ocasiones se llama a la funcin por medio del mtodo 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 aadir obligatoriamente el atributo style con todos
aquellos estilos que intervengan en la animacin. De entre todos los estilos que
existen, podemos destacar los que hay en la siguiente tabla.
ESTI$"S
S9:4A;9S
1'S*<9%*9=
:
style="Position:absolute;top:pos;left
:pos"
Posibilita el
cambio de
posicin.
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 realizarn en la funcin que tengamos
preparada para ello. Para todos los cambios que realicemos la sintaxis a seguir es:
S!"T#N!S:
no1/reLeti=uet"4+tK2e4e+ti2o=0"2orQ
no1/reLeti=uet"4"tri/uto=0"2orQ
Si nuestra animacin avanza segn un intervalo de tiempo, debemos utilizar el
mtodo setTimeout() para establecer el intervalo de tiempo y la llamada a la
funcin. Este mtodo se puede utilizar en cualquier parte del cdigo, pero
normalmente se encuentra al principio del cdigo y dentro de la funcin donde se
I#tituto Superior Te!#o&"(i!o
Norbert Wie#er Manual del Alumno
realiza cada uno de los pasos de nuestra animacin. La sintaxis del mtodo es
(recordar respetar maysculas y minsculas):
S!"T#N!S:
setT&$eout@#no$breVJun+&n@A#4&nterva%o $&%&segundosAS
E@E#$"S
E?E/P)O 9: +exto con movimiento en hori,ontal.
<3t12>
<3e">
<+cript>
0"r 3oriFont"2=6'Q
+etTi1eout#"1ue0e#%"5;AA%Q
8unction 1ue0e#%
P
3oriFont"2H=6AQ
TEET,64+tK2e42e8t=3oriFont"2Q
i8#3oriFont"2>='AA%
3oriFont"2=6'Q
+etTi1eout#"1ue0e#%"5;AA%Q
V
<(+cript>
<(3e">
</oK>
<p i="TEET,6" +tK2e="po+ition]"/+o2uteQ top]6JQ 2e8t]6'">
TEET,
<(p>
<(/oK>
<(3t12>
E?E/P)O M: +exto -ue aparece " desaparece.
<3t12>
<3e">
<+cript>
0"r e+t"o=trueQ
+etTi1eout#"0er#%"5;AA%Q
8unction 0er#%
P
e+t"o=!e+t"oQ
i8#e+t"o==true%
TEET,64+tK2e40i+i/i2itK="0i+i/2e"Q
e2+e
TEET,64+tK2e40i+i/i2itK="3ien"Q
+etTi1eout#"0er#%"5;AA%Q
V
<(+cript>
<(3e">
</oK>
<p i="TEET,6" +tK2e="0i+i/i2itK]0i+i/2e">TEET,<(p>
<(/oK>
<(3t12>
I#tituto Superior Te!#o&"(i!o
Norbert Wie#er Manual del Alumno
E?E/P)O O: Imagen -ue cambia cuando entra " sale el ratn.
<3t12>
<3e">
<+cript>
8unction p"+"#0"2or%
P
i8#0"2or==6%
i1!4+rc="ten64!i8"
e2+e
i1!4+rc="ten'4!i8"
V
<(+cript>
<(3e">
</oK>
<i1! n"1e="i1!" +rc="ten'4!i8" on*ou+e,0er=p"+"#6%Q on*ou+e,ut=p"+"#'%Q>
<(/oK>
<(3t12>
E?E/P)O P: Imgenes -ue van cambiando solas.
<3t12>
<3e">
<+cript>
0"r e+t"o=trueQ
+etTi1eout#"c"1/io#%"5;AA%Q
8unction c"1/io#%
P
e+t"o=!e+t"oQ
i8#e+t"o==true%
i1!4+rc="teni+t"64!i8"
e2+e
i1!4+rc="teni+t"'4!i8"
+etTi1eout#"c"1/io#%"5;AA%Q
V
<(+cript>
<(3e">
</oK>
<i1! n"1e="i1!" +rc="teni+t"64!i8">
<(/oK>
<(3t12>
E?E/P)O Q: $ambiamos la imagen segn situemos el ratn en un texto o
en otro.
<3t12>
<3e">
<+cript>
8unction i1"!#0"2or%
P
i8#0"2or==6%
i1!4+rc="teni+t"64!i8"
e2+e
i1!4+rc="teni+t"'4!i8"
V
<(+cript>
<(3e">
I#tituto Superior Te!#o&"(i!o
Norbert Wie#er Manual del Alumno
<bodG>
<t"/2e /orer="6" &it3="6;O">
<tr>
<t &it3="6AAO"><p on*ou+e,0er=i1"!#6%Q>I*AGEN 6<(t>
<(tr>
<tr>
<t &it3="6AAO"><p on*ou+e,0er=i1"!#'%Q>I*AGEN '<(t>
<(tr>
<(t"/2e>
</r>
<i1! n"1e="i1!" +rc="teni+t"64!i8">
<(/oK>
<(3t12>
E?E/P)O R: $ambiar la imagen por medio de un control. )n este caso una
lista .select/. )s igual -ue en el caso anterior. *o nico -ue cambia es el
evento -ue gestiona la llamada a la funcin.
<3t12>
<3e">
<+cript>
8unction c"1/io#0"2or%
P
i8#0"2or=="i1"!en6"%
i1!4+rc="teni+t"64!i8"
e2+e
i1!4+rc="teni+t"'4!i8"
V
<(+cript>
<(3e">
</oK>
<+e2ect +iFe="9" n"1e="2i+t"" onC3"n!e=c"1/io#0"2ue%Q>
<option 0"2ue="i1"!en6">I1"!en 6<(option>
<option 0"2ue="i1"!en'">I1"!en '<(option>
<(+e2ect>
</r>
<i1! n"1e="i1!" +rc="teni+t"64!i8">
<(/oK>
<(3t12>
E?E/P)O S: Una imagen movindose en vertical automticamente.
<3t12>
<3e">
<+cript>
0"r 0ertic"2=9;Q
0"r i"=trueQ
+etTi1eout#"1o0er#%"5'AA%Q
8unction 1o0er#%
P
i8#0ertic"2<='AA 77 i"==true%
0ertic"2H=6AQ
e2+e
P
0ertic"2-=6AQ
i"=8"2+eQ
i8#0ertic"2<=9;%
i"=trueQ
V
i1!4+tK2e4top=0ertic"2Q
+etTi1eout#"1o0er#%"5'AA%Q
V
<(+cript>
<(3e">
</oK>
<i1! n"1e="i1!" +rc="pic4!i8"
I#tituto Superior Te!#o&"(i!o
Norbert Wie#er Manual del Alumno
+tK2e="po+ition]"/+o2uteQ 2e8t]6'Q top]9;">
<(/oK>
<(3t12>
I#tituto Superior Te!#o&"(i!o
Norbert Wie#er Manual del Alumno
Semana 1, : Aplicaci8n Web(
Coo9ies
Parece ms 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:
no$bre"va%orSWe0/&res"+adu+&dadSX
Slo el servidor que ha enviado al usuario una determinada cookie puede
consultarla. Cada galleta tiene un tamao mximo de 4 Kb y puede haber un
mximo 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.
0unciones ,%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.

8unction 1"n"rG"22et"#no1/re5 0"2or5 c"uci"% P
ocu1ent4cooMie = no1/re H "=" H e+c"pe#0"2or%
H ##c"uci" == nu22% ` "" ] #"Q e.pire+=" H c"uci"4toG*TStrin!#%%%
V
Con esta funcin mandamos una galleta. Vemos que el valor es codificado por
medio de la funcin 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.
8unction con+u2t"rG"22et"#no1/re% P
0"r /u+c"1o+ = no1/re H "="Q
i8 #ocu1ent4cooMie42en!t3 > A% P
i = ocu1ent4cooMie4ine.,8#/u+c"1o+%Q
i8 #i != -6% P
i H= /u+c"1o+42en!t3Q
? = ocu1ent4cooMie4ine.,8#"Q"5 i%Q
i8 #? == -6%
? = ocu1ent4cooMie42en!t3Q
return une+c"pe#ocu1ent4cooMie4+u/+trin!#i5?%%Q
V
V
V
I#tituto Superior Te!#o&"(i!o
Norbert Wie#er Manual del Alumno
Declaramos la variable buscamos que contiene el nombre de la galleta que
queremos buscar ms el igual que se escribe justo despus 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.
7n e3e/plo
Vamos a ver un ejemplo. Utilizaremos una galleta llamada
VisitasAlCursoDeJavaScript para guardar el nmero de veces que has visitado este
curso:
(&T#$)
(&EAD)
(SCRIT $AN27A2ECD@avaScriptD)
(EFF Se usan los co/entarios para esconder el cdigo a navegadores sin @avaScript
4unction ContadorGH I
var 4ec1aCne6 Date GJJ5 KL5 MKHN OO $a 4ec1a de caducidad es MK de dicie/,re del KJJJ
i4 GEGnu/Cconsultar2alletaGDVisitasAlCursoDe@avaScriptDHHH
nu/ C PN
nu/>>N
/andar2alletaGDVisitasAlCursoDe@avaScriptD5 nu/5 4ec1aHN
i4 Gnu/CCKH
docu/ent<6riteGDesta es la pri/era ve; 'ue lees este capBtulo<DHN
else I
docu/ent<6riteGD1as visitado este curso D>nu/>D veces<DHN
Q
Q
OO FF)
(OSCRIT)
(O&EAD)
(B"D:)
or lo 'ue veo5
(SCRIT $AN27A2ECD@avaScriptD)
(EFF
ContadorGHN
OO FF)
(OSCRIT)
(OB"D:)
(O&T#$)
%a Funcin consulta el valor de la galleta incre5entandolo y@ si no existe@ lo pone a
uno. %uego escri0e en el docu5ento el nO5ero de veces )ue Cas visitado el curso
Semana 1/ : ('3amen #inal)(
Semana 22 : ('3amen Sustitutorio)(

You might also like