Visual Basic Scripting Edition

download Visual Basic Scripting Edition

of 58

Transcript of Visual Basic Scripting Edition

Visual Basic Scripting Edition Microsoftndice Temtico Bsico Intermedio Avanzado

Qu es VBScript? Qu es ActiveX? Etiquetas SCRIPT? Comentarios en VBScript Variables o Variables Implcitas o Variables Explcitas o Option Explicit o VarType y TypeName : Tipo de Dato Contenido en la Variable o Variables Globales o Variables Locales o Variables Public o Variables Private o Constantes o isDate, isEmpty, isNull, isNumeric, isObject o Conversin de Tipos de Datos (CBool, CByte, CCur, CDate, CDbl, CInt, CLng, CSng, CStr) Qu es un Procedimiento? Qu es una Funcin? o Exit o Paso de Parmetros ByRef o Paso de Parmetros ByVal Operadores Lgicos Funciones o Sqr : Raz Cuadrada o Sgn : Signo o Abs : Valor Absoluto o Int : Parte Entera o Fix : Parte Entera o Round : Redondeo o Rnd : Aleatorio (Random) o Randomize : Semilla (seed) Ventanas o Alerta : Alert o Confirmacin : Confirm

Dilogo Personalizado : MsgBox o Entrada de Texto : Prompt o Entrada de Texto Personalizado : InputBox Estructuras de Control de Flujo o If - Then Else o Select - Case o For - Next o Do - Loop Arreglos o Estticos Funcin Ubound : ndice mayor de un arreglo Funcin Lbound : ndice menor de un arreglo o Multidimensionales o Dinmicos Unidimensionales o Dinmicos Multidimensionales o Comando Erase : Reinicializa o Funcin isArray : La variable es de tipo arreglo? Cadenas de Texto : String o Funcin Chr : Carcter asociado o Funcin Asc : Cdigo ANSI o Funcin len : Longitud de una Cadena de Texto o Funcin Mid : Extrae caracteres o Funcin Left : Extrae los primeros caracteres o Funcin Right : Extrae los ltimos caracteres o Funcin inStr : Busca ocurrencias o Funcin Split : Separar un String o Funcin Join : Cmo convertir un arreglo en string? o Funcin Replace : Reemplazar caracteres o Funcin Filter : Filtrado o Funcin LCase : Convertir a minsculas o Funcin UCase : Convertir a maysculas o Funcin StrComp : Comparar strings o Funciones de formato de cadenas o Funcin String : Generacin de cadenas con un mismo carcter o Funcin Space : Generacin de cadenas de espacios en blanco o Funcin Trim, LTrim, RTrim (trailing) : Elimina espacios en blanco al inicio y final (rastrear) Funcin SetTimeOut - ClearTimeOut : Ejecucin en un intervalo de tiempo especifico Funcin SetInterval - ClearInterval : Ejecucin periodica Manejo de Fechas y Tiempo o Funcin Date : Obtener Fecha o Funcin Time : Obtener Tiempo o Funcin Now : Obtener Fecha y Tiempoo

Funcin DateValue : Subtipo de fecha o Funcin DateSerial : Subtipo de fecha especifico o Funcin TimeValue : Subtipo tiempo o Funcin TimeSerial : Subtipo tiempo especifico o Funciones Day, Month, Year, WeekDay : Da, Mes, Ao, Da de la semana o Funciones Hour, Minute, Second : Horas, Minutos, Segundos o Funcin MonthName : Nombre del Mes o Funcin WeekdayName : Nombre del Da de la semana o Funcin DatePart : Parte de una fecha o Funcin DateAdd : Adicionar tiempo o Funcin DateDiff : Intervalo entre 2 fechas Constantes para Coloreso

Bsico Intermedio Avanzado

Eventos o Manejadores de Eventos o Eventos del Mouse o Eventos del Teclado o Eventos OnLoad - OnUnload o Evento OnError Formularios o Input On Error Resume Next DOM, Document Object Model : Modelo de Objetos del Documento o Objeto Window o Window.Open : Com abrir una nueva ventana? o Objeto Document

Bsico Intermedio Avanzado

CreateObject GetObject Scripting Runtime Library o Objeto Dictionary Mtodos del Objeto Dictionary Propiedades del Objeto Dictionary o Objeto FileSystemObject El Modelo FileSystemObject Objetos FileSystemObject Controles ActiveX Comunicacin con un Applet Java Scriptlets ASP

VBScript or JScript? | Run-Time Errors | VBScript or JScript? | Translating to VBScript from JavaScript | Translating to VBScript from JScript Qu es VBScript? Antes de comenzar con la definicin de VBScript, comentaremos que desde el punto de vista de Microsoft un lenguaje de Scriptes un conjunto de normas, instrucciones y mtodos que encapsulado en forma de un servidor OLE se adhiere a la especificacin ActiveX Scripting. Desde otro punto de vista un script es una clase particular de programa que es interpretado en tiempo de ejecucin, generalmente por el procesador de comandos del sistema o shell. Ahora bien, "no todos los programas son scripts", pero "los scripts siempre son programas", un programa es un conjunto de instrucciones que la computadora ejecuta de una manera ordenada. Si est pensando en que sus pginas sean ms genericas por decirlo de algn modo, es decir, que el cdigo de scripting que tenga su pgina sea soportado por la mayora de navegadores (browsers) y por cada una de sus versiones, la recomendacin a seguir es utilizar JSCript, Por qu?, quiz la primer razn de peso es porque Netscape no soporta VBScript, al utilizar VBScript para web estaria dejando una gran parte de usuarios fuera, ya que el cdigo simplemente no funcionaria, adems de generar un sin fin de errores. Tenga en cuenta que usar VBScript tampoco garantiza que trabaje para todos los navegadores, puesto que existen diferentes modelos de objetos HTML en cada navegador. El usar un lenguaje de scripting u otro se basa en el anlisis de lo que quiere lograr y de conocer que herramienta soluciona mejor sus necesidades. VBScript hereda la sintaxis y caractersticas de codificacin del popular lenguaje Visual Basic para aplicaciones (VBA). VBScript es utilizado en el entorno de un navegador para:

Validacin previa de datos Proporcionar o requerir informacin a los usuarios Inicializacin y control de componentes ActiveX o de Applets Java Ejecucin de clculos Utilizacin de "Cookies" Aadir interactividad a la pgina respondiendo a las acciones de los usuarios Modificar dinmicamente la apariencia de la pgina Facilitar la navegacin en varias instancias de un navegador simultnemaente

Creacin de objetos reutilizables a partir del uso de Scriptlets en Explorer.

Qu es ActiveX? Conjunto de tecnologas desarrollado por Microsoft, basado en el Modelo de Componentes COM - Component Object Model, pero ms en OLE. Controles ActiveX Etiquetas SCRIPT Antes de continuar es necesario el dominio del Lenguaje de Marcacin de Hiper Texto mejor conocido como HTML, si no lo dominas puedes consultar el Tutorial Si domina HTML estar familiarizado con la siguiente estructura:

Untitled

Para hacer uso de VBScript es necesario escribir el cdigo entre las etiqueas de HTML que a su vez son escritas entre las etiquetas aunque no es restrictivo a est nica posibilidad ya que puede ser escrito entre las etiquetas inclusive despues de estas. La recomendacin es escribirlas dentro de los elementos head. La etiqueta tiene propiedades como:

defer language="" src="" type=""

La propiedad ms utilizada ser type la cul define el tipo de script a utilizar, es decir, JavaScript, VBScript o cualquier otro. De esta manera se ndica al navegador que tipo de Script deber interpretar en tiempo de ejecucin. A fin de hacer aplicaciones a prueba de errores se recomienda escribir el cdigo entre etiquetas de comentarios HTML ya que si el navegador no soporta scripting simplemente se ignorar el cdigo. Comentarios en VBScript

La manera de comentar lneas en VBScript es a travs de la inclusin de una apstrofe al inicio de la lnea (') o escribir la palabra reservaba REM Variables VBScript realiza la declaracin dinmica implcita de variables, es decir, las variables no tienen tipo ya que por defecto sonvariant y es en el momento de asignacin de valores cuando se incluyen de manera automtica en un tipo determinado, por lo que VBScript si tiene tipos de datos implcitos: Byte Integer Long Single Double Currency Decimal Date String Boolean Empty Null Object Nothing Error

La declaracin en VBScript de una variable puede hacerse de 2 formas posibles: Variables Implcitas Las variables implcitas en VBScript se daclara simplemente escribiendo el nombre de la variable y asignandole un valor. Variables Implicitas informatique.com.mx

Ejecutar

Variables Explcitas Las variables explcitas se definen por medio de la palabra reservada Dim seguido del nombre de la variable mientras no sea igual al nombre de una palabra reservada o que su longitud exceda los 200 caracteres, el primer caracter deber ser una letra, podr estar compuesta por digitos y caracateres de subrayado. Variables Explicitas informatique.com.mx

Ejecutar Option Explicit La instruccin Option Explicit se utiliza para forzar al programador a declarar variables de manera explcita, es decir, mediante el empleo de la palabra reservada Dim lo cual permite eliminar errores ya que al declarar variables de manera implcita podemos cometer un error al escribir el nombre de la variable y VBScript lo interpreta como una nueva variable. Si utiliza Option Explicit VBScript gener un error por cada variable no declarada de manera explcita, mostrando el mensajeVariable no definida. VarType y TypeName : Tipo de Dato Contenido en la Variable La funcin VarType regresa un valor asociado a un tipo de dato, se pasa como parmetro la variable de la cual deseamos conocer el tipo de dato que contiene.Valor Tipo de Dato Significado 0 1 vbEmpty vbNull Variable sin inicializar Variable Nula

2 3 4 5 6 7 8 9 10 11 12 13 14

vbInteger vbLong vbSingle vbDouble vbCurrency vbDate vbString vbObject vbError vbBoolean vbVariant vbByte

Entero de 2 bytes Entero largo de 4 bytes Nmero de precisin simple Nmero de precisin doble Nmero de moneda Fecha Cadena de Texto Objeto Nmero de error generado por VBScript Variable de tipo verdadero o falso Tipo variante en arreglos Nmero de tipo byte La variable contiene una vector

vbDataObject Objeto de acceso a datos

8192 vbArray

La funcin TypeName regresa una cadena de texto con el tipo de dato que contiene la variable. Ejemplo Variables Globales Todas aquellas variables declaradas en un script fuera de subrutinas (procedimientos o funciones). Su mbito de accin es global, es decir, se puede acceder a ellas desde cualquier punto de un script o desde otro script. Variables Locales Todas aquellas variables declaradas dentro del cdigo de subrutinas (procedimientos o funciones). Su mbito de accin es local solo aplican al cuerpo de la subrutina. Variables Public Por defecto todas las variables globales definidas en un script son pblicas y su mbito de accin es aplicable desde otrosscripts. Es posible declarar una variable global antecediento la palabra clave Public. Variables Private

Por defecto las variables son public y pueden ser accedidas desde cualquier script dentro de un mismo documento web y desde otros documentos web, por ejemplo en el caso de los Frames, si deseamos restringir el mbito de las variables solo al propio documento web en el cual estn contenidas basta con anteceder la palabra clave private. Si trabaja con Frames para acceder a variables contenidas en un documento web distinto escriba la palabra clave Top utilizando lanotacin de punto escriba el nombre del Frame y el nombre de la variable, ejemplo: Top.miFrame.mivariable Constantes Es posible declarar una constante en VBScript antecediento al nombre de la variable la palabra reservada Const. A una constante es posible aplicarle un modificador Public o Private. isDate, isEmpty, isNull, isNumeric, isObject Las funciones isDate, isEmpty, isNull, isNumeric, isObject determinan una variable contiene el tipo de dato respectivo.Valor de la Variable

Funcin

Dim contenedor1 contenedor2 = null

window.document

Conversin de Tipos de Datos VBScript puede convertir el contenido de tipo de dato de las variables a otro tipo de dato especifico a travs de las siguientes funciones:Valor de la Variable

Funcin

Tipo de Dato Convierte a tipo Boolean, un valor 0 lo convierte a False y cualquier otro en True Convierte a tipo Byte Convierte a tipo Currency

Convierte a tipo Date Convierte a tipo Double, numerico de de punto flotante de doble precisin Convierte a tipo Integer Convierte a tipo Long Convierte a tipo Single, numerico de de punto flotante de precisin sencilla Convierte a tipo string

Qu es un Procedimiento? Tambin conocidos como procedimientos personalizados, no son ms que subrutinas, para definir un procedimiento es necesario escribir la palabra reservada:Sub

lo cual indica el inicio del procedimiento a continuacin se escribe el nombre que le daremos, por ejemplo:Sub procSuma

Si el procedimiento aceptar parmetros o argumentos, estos se escribiran entre parntesis y cada argumento deber ir separado por comas (,). Ejemplo:Sub procSuma(x,y,z)

Lo siguiente es escribir el conjunto de instrucciones por medio de las cuales ser posible cumplir con el objetivo del procedimiento, la parte comprendida entre el inicio y final del procedimiento se conoce con el nombre de cuerpo del procedimiento. por ltimo es necesario indicar el final del procedimiento para ello utilizamos las palabras reservadas:End Sub

Por lo que un procedimiento podria lucir de la siguiente manera:Sub procSuma(x,y,z) cuerpo del procedimiento End Sub

Para invocar un procedimiento basta con escribir su nombre, seguido de los argumentos si es que recibe argumentos sin parntesis ya que un procedimiento no devuelve valores:procSuma 1,2,3

Ejemplo Qu es una Funcin? Una funcin es similar a un procedimiento la diferencia est en que las funciones regresan valores y los procedimientos no. Para definir una funcin e indicar su inicio es necesario escribir la palabra reservada:Function

a continuacin se escribe el nombre que tendr la funcin por ejemplo:Function funSuma

Si la funcin recibe argumentos estos deben escribirse entre parntesis y separados por comas (,).Function funSuma(valor1,valor2,valor3)

Lo siguiente es escribir el conjunto de instrucciones por medio de las cuales ser posible cumplir con el objetivo de la funcin, la parte comprendida entre el inicio y final de la funcin se conoce con el nombre de cuerpo de la funcin. Para que una funcin regrese un valor es necesario escribir el nombre de la funcin seguido del operador = y del valor que deseamos regresar:suma = valor1 + valor2 + valor3

Para indicar el final de la funcin deben escribirse las palabras reservadas:End Function

La funcin completa luciria as:Function funSuma(valor1,valor2,valor3) funSuma = valor1 + valor2 + valor3 End Function

Para invocar una funcin basta con escribir su nombre y los argumentos que recibe entre parntesis ya que una funcin regresa valores:

funSuma(3,20.99,-0.99)

Cuando no nos interesa el valor que regresa una funcin pero si nos interesa que se ejecute es posible ignorar ese resultado tratandola como un procedimiento, es decir, invocar la funcin como si fuera un procedimiento lo que significa omitir el uso de los parntesis:funSuma 3,20.99,-0.99

Otra manera de ignorar el valor que regresa una funcin es llamandola a travs de la palabra reservada call:call funSuma(3,20.99,-0.99)

Ejemplo Exit Para terminar la ejecucin de un procedimiento o funcin en cualquier momento escriba respectivamente:Exit Sub Exit Function

Paso de Parmetros ByRef El paso de parmetros en VBScript para funciones y procedimientos por default es ByRef, es decir, por referencia lo cual significa que se pasa un puntero a la propia variable por lo que se modifica de inmediato su valor. Ya que por omisin los parmetros pasan por referencia no es necesario definirlo, pero es posible solo escribiendo antes del parmetro la palabra reservada byRef en la definicin del procedimiento o funcin, para ello siga la siguiente sintaxis:funSuma(ByRef a)

Ejemplo Paso de Parmetros ByVal El paso de parmetros ByVal, es decir, por valor significa que el valor que recibe la funcin o procedimiento no es ms que una copia del valor original, ms no la propia variable. Para especificar que el parmetro ser una copia del valor de la variable es necesario escribir antes del parmetro la palabra reservada ByVal en la definicin del procedimiento o funcin. Ejemplo:funSuma(ByVal a)

Ejemplo Operadores Lgicos VBScript utiliza los siguientes operadores lgicos: And, Or, Xor, Eqv, Imp y Not Funciones VBScript posee las funciones necesarias para facilitar la construccin de aplicaciones web. Funcin Sqr : Raz Cuadrada Regresa la raz cuadrada de un nmero positivo que recibe como parmetro.

Sgn : Signo Si el nmero que se le enva como argumento es positivo la funcin regresa el valor 1, en otro caso regresa el valor -1

Abs : Valor Absoluto Regresa el valor absoluto del nmero que se le enva como argumento, es decir, priva al nmero de su signo. Por ejemplo -3.1416 y +3.1416 dan como resultado 3.1416.

Int : Parte Entera Regresa la parte entera del nmero que se le enva como argumento, si el nmero tiene signo negativo regresa el nmero negativo ms prximo menor o igual al nmero.

Fix : Parte Entera

Regresa la parte entera del nmero que se le enva como argumento, si el nmero tiene signo negativo regresa el nmero negativo ms prximo mayor o igual al nmero.

En vez de emplear la funcin Fix puede utilizar la siguiente formula equivalente:Sgn(valor) * Int(Abs(valor))

Round : Redondeo Regresa el valor redondeadode un nmero que recibe como argumento, ajustandolo a un nmero determinado de cifras decimales.Round(valor,numeroDecimales)

Rnd : Aleatorio (Random) Regresa un nmero pseudo-aleatorio entre 0 y 1, opcionalmente puede recibir un argumento, el cual si es mayor a cero el resultado es el mismo que cuando se omite el argumento. Note que al dar clic despus de la carga o actualizacin de la pgina siempre se genera la misma secuencia de nmeros pseudo-aleatorios, esto es debido a que VBScript genera la secuencia de nmeros pseudo-aleatorios a partir de un valor llamado semilla(seed), y se llaman pseudo-aleatorios porque realmente una computadora no puede generar nmeros totalmente al azar, por ello que siempre se obtendrn los mismo nmeros. Ahora bien esta secuencia de nmeros que se genera es infinita por lo que depende donde comience la lectura (seed) de esta lista se obtendr una secuencia distinta y si siempre comienza la lectura en el mismo punto, se obtendr siempre la misma secuencia de nmeros. Para generar nmeros pseudo-aleatorios en un intervalo diferente de 0 y 1 utilice la siguiente formula:nAleatorio = Int(nFinal - nInicial + 1) * Rnd + nInicial

Por ejemplo si desea generar nmeros pseudo-aleatorios en el rango de 21 a 33 escriba:nAleatorio = Int(33 - 21 + 1) * Rnd + 21

Randomize : Semilla (seed) La funcin Rnd siempre genera la secuencia de nmeros pseudo-aleatorios y comienza su lectura en el mismo punto. La funcion Randomize ndica donde comienza la lectura, recibe como argumento un nmero que actua como semilla para la generacin aleatoria, aunque se recomienda utilizarla sin argumentos ya que al omitir el argumento semilla la computadora por defecto toma el nmero de milisegundos transcurrido desde que se encendio la computadora, de esta manera la posibilidad de que se encienda la computadora y se invoque la funcin en el mismo numero de milisegundos transurrido es casi nula y as obtener nmeros aleatorios.

Cuadros VBScript posee un conjunto de ventanas a travs de las cuales es posible notificar al usuario sobre un evento, interactuar con el usuario por medio de ventanas de dialogo, entradas de texto, etc. Alerta : Alert Despliega un cuadro de alerta con el dato que recibe como argumento. Utilizelo para notificaciones al usuario.

Confirmacin : Confirm Despliega un cuadro de confirmacin con el dato que recibe como argumento adems de dos botones [Aceptar] y [Cancelar] con lo cual es posible esperar una respuesta por parte del usuario.

Dilogo Personalizado : MsgBox

El cuadro de dilogo personalizado recibe un argumento obligatorio y tres opcionales su sintaxis es:[Resultado] = MsgBox(Texto [,Botones] [,Ttulo] [,Ayuda, Contexto])

El argumento opcional Texto es una cadena de caracteres alfanumrica, que ser el texto a desplegar en la ventana. Ttulo, es una cadena alfanumrica que se desplegar como ttulo de la ventana de dilogo.

Entrada de Texto : Prompt La funcin Prompt permite cuadros de entrada de texto, Sintaxis:Respuesta = Prompt(Texto[,ValorPorDefecto])

El segundo argumento es opcional y se recomienda siempre inicializarlo con una cadena vaca en caso de no asignarle un verdadero valor por defecto, ya que de no hacerlo el valor por defecto que utiliza VBScript es "Undefined".

Si el usuario selecciona cancelar o cierra la ventana el valor que regresa es nulo el mismo que puede checarse con la funcinisNull(). Entrada de Texto Personalizado : InputBox Este tipo de cuadro es similar al Cuadro de Entrada de Texto pero es posible adems especificar las coordenadas en las que deber aparecer el cuadro y es posible invocar un archivo con extensin hlp, todo esto es posible a travs de la funcin InputBoxcuya sintaxis es:R = InputBox(Texto [,Ttulo] [,ValorPredeterminado] [,PosicionX] [,PosicionY] [,Ayuda, Contexto])

Nota, si no se especifican las coordenas (X,Y) el cuadro aparece al centro, los valores de las coordenadas se expresan en Twips. Un Twip mide el tamao que tendra el objeto si se imprimiera, su nombre tiene origen en la frase "un veintavo de punto" que en ingles es "one twentieth of a point" puesto que el punto es una medida comn en sistemas de impresin. En un centimetro hay 567 twips, en una pulgada hay 1440.

Si no se especifica un valor predeterminado al campo de texto, este aparece vaco. En caso de que el usuario de clic en el botn [Cancelar] el valor que regresa es un dato vaco mismo que puede comprobarse mediante el uso de la funcin isEmpty. Estructuras de Control de Flujo Como cualquier lenguaje de programacin, VBScript posee estructuras de control de flujo para la ejecucin de bloques de cdigo dada una condicin y para la ejecucin de bloques de cdigo repetidamente mientras cierta condicin se cumpla. If - Then ElseIf condicion Then instrucciones else instrucciones End If

Si la evaluacin de la condicin es verdadera se ejecuta el cdigo comprendido en la primer parte de la estructura, en caso contrario, es decir, si la evaluacin de la condicin es falsa se ejecuta la segunda parte del cdigo la comprende la clausela else, esta segunda parte es opcional. La sintaxis de la estructura puede prescindir de las clausulas else If siempre y cuando se escriba la estructura en la misma lnea:If condicion Then intruccion - End

Lo anterior no significa que solo se ndique una nica instruccin, es posible escribir las instrucciones necesarias para ello se ndica mediante el empleo del separador (:) el final de cada instruccin.If condicion Then instruccion1 : instruccion2 : instruccion3 : ...

Tambin es posible utilizar una variante de la estructura cuando se tienen varias alternativas posibles:Dim nDia nDia = DatePart("w", dFecha) if nDia = 1 then nombreDia = "Domingo" elseif nDia = 2 then nombreDia = "Lunes" elseif nDia = 3 then nombreDia = "Martes" elseif nDia = 4 then nombreDia = "Mircoles" elseif nDia = 5 then nombreDia = "Jueves"

elseif nDia = 6 then nombreDia = "Viernes" elseif nDia = 7 then nombreDia = "Sbado" elseif nDia = 7 then nombreDia = "Domingo" end if

Select - Case Hay quienes aseguran que es ms eficiente utilizar una estructura If - Then IfElse - End If cuando se tienen multiples alternativas posibles, sin embargo existe una estructura similar para dicho ejemplo:Select Case datePart("w",Now) Case 2 alert "Hoy es Lunes" Case 3 alert "Hoy es Martes" Case 4 alert "Hoy es Mircoles" Case 5 alert "Hoy es Jueves" Case 6 alert "Hoy es Viernes" Case Else alert "Es Fin de Semana!" End Select

Esta estructura evalua una expresion y dado el valor que resulte de la expresion se ejecuta el cdigo especifico en el cual el resultado coincida. For - Next Utilice esta estructura de control cuando conozca previamente el nmero de veces que deber repetirse una instruccin o conjunto de instrucciones, sintaxis:For var = valorInicial To valorFinal [step incremento| decremento] instrucciones Next

En esta estructura requiere de un valor inicial a partir del cual iniciar el ciclo y de un valor final que los finalice, sin embargo es posible interrumpir la ejecucin del ciclo mediante el empleo de la instruccin Exit For la cual termina la ejecucin del For para continuar con la lnea siguiente del cdigo. Es posible establecer el valor del contador mediante el empleo de la instruccin step seguido de su valor. Si se omite la instruccin por defecto el valor del contador es 1.

Ejemplo:For i = 1 To 10 if i = datePart("w",Now) Then Exit For Next Alert i

Do - Loop A diferencia de For la estructura de control Do - Loop se utiliza cuando no se conoce previamente cuantas veces se deber repetir una instruccin o conjunto de instrucciones. A este tipo de ciclos se les conoce tambin como ciclos indeterminados. Existen 2 variantes de Do1. 2. 3. 4. 5. 6. - Loop:

Dim i i = 1 Do While i = "Primero evalua y despus ejecuta" i = i + 1 Loop Alert i

7.8. 9. 10. 11. 12. 13. Dim i i = 1 Do i = i + 1 Loop While i = "Primero ejecuta y despus evalua" Alert i

14. La diferencia entre Do - While - Condicin - Loop y Do - Loop - While Condicin es que este ltimo ejecuta el cuerpo del ciclo al menos 1 vez, ya que despus de ejecutar las instrucciones evalua la condicin. Existe una tercer variante, que podra considerarse obsoleta aunque no lo es:While condicin instrucciones Wend

Mencionamos que podra considerarse obsoleta aunque no es as ya que su equivalente es:Do While condicin instrucciones Loop

Siendo est ltima estructura ms reciente y utilizada en un sentido menos ortodoxo.

Arreglos Un arreglo o vector define un tipo de dato con estructura, es decir, permite la posibilidad de almacenar un conjunto de datos heterogeneo (lista de elementos de tipo de dato distinto), que en la estructura reciben el nombre de elementos en un contenedor llamado Arreglo puesto que el conjunto de elementos almacenados disponen de cierto orden. Cada elemento ocupa una posicin en el arreglo la cual se conoce con el nombre de ndice, en el caso de VBScript comienzan a partir del ndice nmero 0. Arreglos Estticos Un arreglo o vector esttico es aquel cuyo tamao es fijo, es decir, el nmero de elementos que contendr, no cambiar y ser siempre el mismo durante la ejecucin del programa. Para definir un arreglo o vector esttico utilice:Dim aEstatico(9)

Lo cual define un arreglo que siempre contendr 10 elementos, note que seguido del nombre de la variable entre parentesis se escribe el -nmero mximo de elementos que puede contener el arreglo menos 1- ya que comienzan a contarse los elementos a partir del ndice nmero 0.

Para inicializar el arreglo con un valor predeterminado puede escribir:Dim aEstatico(9) 'Contendr 10 elementos aEstatico(0) = 0 aEstatico(1) = "c" aEstatico(2) = "cadena" aEstatico(3) = -1 aEstatico(4) = #21/09/1971# aEstatico(5) = null aEstatico(6) = Now aEstatico(7) = Time aEstatico(8) = 3.1416 aEstatico(9) = False Sub contenidoArreglo For i = 0 To 9 str = str & aEstatico(i) Next alert(str) End sub

Tambin es posible inicializarlo de forma directa:

Dim aEstatico aEstatico = Array(0,"c","cadena",1,#21/09/1071#,null,Now,Time,3.1416,False)

Note que si inicializa de manera directa un arreglo, primero se declara una variable definiendo nicamente su nombre, despus se inicializa a travs del empleo de la palabra reservada Array y entre parntesis el contenido del arreglo separando cada elemento por una coma (,). Funcin Ubound La funcin Ubound() regresa el ndice mayor de un arreglo. El primer argumento que recibe es obligatorio y es el nombre del arreglo, el segundo argumento que recibe es opcional y especifica para el caso de arreglos multidimensionales la dimensin de la cual deseamos obtener su ndice mayor, en caso de omitir el segundo argumento por defecto se trabaja sobre la primer dimensin del arreglo. Para conocer el ndice mayor de un arreglo esttico, escriba:Ubound(nombreArregloEstatico)

Para conocer el ndice mayor de la primer dimensin de un arreglo multidimensional, puede escribir:Ubound(nombreArregloMultidimensional)

o su

equivalente: Ubound(nombreArregloMultidimensional,1) Para conocer el ndice mayor de la segunda dimensin de un arreglo multidimensional, escriba:Ubound(nombreArregloMultidimensional,2)

Esta funcin es de suma utilidad para el recorrido de arreglos, ya que el valor que regresa es el ndice mayor del arreglo, es decir, es el nmero de ndice hasta el cual es posible leer un arreglo:Dim aUnidim(4) 'Contendr 5 elementos aUnidim(0) = "a" aUnidim(1) = "e" aUnidim(2) = "i" aUnidim(3) = "o" aUnidim(4) = "u" Sub longitud alert "ndice Mayor: " & Ubound(aUnidim) End Sub Sub MostrarContenido For i = 0 To Ubound(aUnidim) str = str & "ndice " & i & " : " & aUnidim(i) & Chr(13) Next

alert(str) End sub

Funcin Lbound La funcin Lbound() regresa el ndice menor de un arreglo. En VBScript los arreglos siempre comenzarn a partir del ndice 0 por lo que la utilidad de esta funcin rdica su uso en casos especiales, donde por alguna circunstancia el primer ndice del arreglo es arbitrario. Arreglos Multidimensionales Un arreglo o vector multidimensional es aquel que contiene ms de una lista de elementos, es decir, ms de una dimensin, a este tipo de estructura tambin se le conoce con el nombre de matriz. Para definir un arreglo o vector multidimensional utilice:Dim aMultiDim(nRenglones,nColumnas)

"In a two-dimensional array, the first number is always the number of rows; the second number is the number of columns."Representacin Conceptual de un Arreglo multidimensional (3,4) (0,0) (0,1) (0,2) (0,3) (0,4) (1,0) (1,1) (1,2) (1,3) (1,4) (2,0) (2,1) (2,2) (2,3) (2,4) (3,0) (3,1) (3,2) (3,3) (3,4)

Si requiere definir un arreglo de 12 renglones por 2 columnas escribir:Dim aMenu(11,1)

Para asignar valores a cada dimensin o lista de elementos, emple el nmero de rengln y columna, ejemplo:Dim aMenu(11,1) aMenu(0,0) = "Home" aMenu(1,0) = "Best Practices" aMenu(2,0) = "HTML" aMenu(3,0) = "JavaScript" aMenu(4,0) = "Language C" aMenu(5,0) = "C ++" aMenu(6,0) = "Java" aMenu(7,0) = "SQL"

aMenu(8,0) = "ActionScript" aMenu(9,0) = "Flash" aMenu(10,0) = "VBScript" aMenu(11,0) = "Contact" aMenu(0,1) = "http://www.informatique.com.mx" aMenu(1,1) = "http://www.informatique.com.mx/GoodPractices" aMenu(2,1) = "http://www.informatique.com.mx/HTML" aMenu(3,1) = "http://www.informatique.com.mx/JavaScript" aMenu(4,1) = "http://www.informatique.com.mx/Language C" aMenu(5,1) = "http://www.informatique.com.mx/C ++" aMenu(6,1) = "http://www.informatique.com.mx/Java" aMenu(7,1) = "http://www.informatique.com.mx/SQL" aMenu(8,1) = "http://www.informatique.com.mx/ActionScript" aMenu(9,1) = "http://www.informatique.com.mx/Flash" aMenu(10,1) = "http://www.informatique.com.mx/VBScript" aMenu(11,1) = "http://www.informatique.com.mx/Contact" Sub contenidoArregloMul For columna = 0 To 11 For renglon = 0 To 1 if renglon Mod 2 = 0 then str = str & aMenu(columna,renglon) & " : " else str = str & aMenu(columna,renglon) End If Next str = str & Chr(13) Next Alert(str) End sub

Representacin Grfica Arreglo Multidimensional (11,1)

Arreglos Dinmicos Unidimensionales Un arreglo o vector dinmico es aquel cuyo tamao varia, es decir, el nmero de elementos que contendr, puede cambiar y variar durante la ejecucin del programa. Para definir un arreglo o vector dinmico utilice:Dim aDinamico()

Al no especificar el tamao y dimensiones del arreglo se considera de tipo dinmico, sin embargo antes de asignar valores es necesario especificar el tamao y dimensin a travs de la palabra reservada ReDim:ReDim aDinamico(3)

Una vez redimensionado el arreglo es posible asignarle valores, cada vez que se desee cambiar el tamao y dimensin del arreglo es necesario

utilizar ReDim. Si trata de asignarle valores al arreglo antes de especificar su tamao y dimensin marcar un errorejemplo. Ejemplo de Arreglo Dinmico Unidimensional Cuando redimensiona un arreglo unidimensional el contenido del arreglo se pierde Ejemplo. Para conservar el contenido del arreglo se utiliza la palabra reservaba Preserve escribiendola despus de la instruccin ReDimEjemplo. Arreglos Dinmicos Multidimensionales Es posible redimensionar un arreglo multidimensional ejemplo, pero existe un inconveniente cuando se utiliza la palabra reservadaPreserve, para conservar los datos, ya que unicamente es posible conservar una dimensin por lo que si disminuye o aumenta el tamao de la dimensin cero(rengln) marcar un error ejemplo. Slo es posible disminuir o aumentar el tamao de la dimensin 1(columna) ejemplo. Un arreglo multidimensional que no contiene datos ocupa 20 bytes ms 4 bytes por cada una de sus dimensiones, por lo que un arreglo Dim aMulti(1,2,3,4) ocupa 20 + 4 + 4 + 4 + 4 = 36 bytes. Una vez que se asigna un valor a algn elemento del arreglo se suma lo que ocupe cada uno de sus elementos. Comando Erase VBScript proporciona el comando Erase el cual reinicializa los elementos de un arreglo esttico y libera el espacio de almacenamiento de un arreglo dinmico. En Arreglos Estticos Erase no recupera memoria en arreglos estticos reinicializa y establece los valores de los elementos de un arreglo esttico nmerico en 0, de un arreglo esttico de strings en cadena vaca ("") y de un arreglo de objetos en Nothing.Erase Dim aEstatico(9) Erase aEstatico ' Cada elemento es reinicializado

En Arreglos DinmicosErase

libera la memoria utilizada por arreglos dinmicos.

Antes de que el programa pueda hacer referencia a un arreglo dinmico es necesario re-declarar su dimensin utilizando sentenciaReDim.Dim aDinamico() ReDim aDinamico(9) ' Asignacin de espacio de almacenamiento Erase aDinamico ' Libera la memoria utilizada por el arreglo.

Funcin isArray La funcin isArray() indica si una variable es de tipo arreglo regresando el valor true sino regresa el valor false. Ejemplo:Dim nEdad Dim aPersona(5) document.write("nEdad es de tipo arreglo?: " & isArray(nEdad) & "
") document.write("aPersona es de tipo arreglo?: " & isArray(aPersona))

Salida: Cadenas de Texto : String Un string o cadena de texto es una variable que almacena un conjunto de caracteres:Dim protocolo, nombreSitio, url protocolo = "http://" nombreSitio = "www.informatique.com.mx" url = protocolo & nombreSitio document.write("" & url & "")

Salida: Como puede notar, el valor que se le asigna a la variable protocolo es encerrado entre comillas dobles ("). Es posible concatenar o unir dos o ms cadenas mediante el operador ampersand (&), tambin es posible utilizar el operador de suma (+) pero es menos verstil y slo puede unir valores de tipo string en cambio el operador ampersand tiene una conversin implcita por lo que puede concatenar valores con diferente tipo de datos. Funcin Chr La funcin Chr() regresa el carcter asociado con el cdigo de carcter especificado por el ANSI (American National Standards Institute - Instituto de Estndar Nacional Americano).

Recibe un slo argumento el cual es un nmero (cdigo) que identifica un carcter (charcode). Los nmeros del 0 al 31 son iguales que el estndar, es decir, cdigos ASCII no visualizables.For i = 0 To 255 Document.write(Chr(i)) Next

VBScript tiene representaciones simblicas de algunos caracteres:

0 - Carcter Nulo : vbNullChar o vbNullString 8 - Retroceso : no disponible 9 - Tabulacin : vbTab 10 - Lnea siguiente : vbLf 13 - Retorno de carro : vbCr 13 + 10 - Nueva lnea : vbCrLf, vbNewLine 11 - Tabulacin vertical : vbverticalTab 12 - Pgina siguiente : vbFormFeed

Se da preferencia al uso de vbNewLine a partir de la versin 3 de VBScript ya que algunos sistemas operativos generan una nueva lnea poniendo Chr(13) y Chr(10) (Retorno de carro y Nueva lnea) pero en otros sistemas basta con poner Chr(10). Funcin Asc La funcin Asc() regresa el cdigo ANSI del carcter correspondiente a la primer letra del string que recibe como argumento.For i = Asc(" ") To Asc("") Document.write(Chr(i) & " : " & i) Next

Aplicativos:Sub digitos For i = Asc("0") To Asc("9") sDigitos = sDigitos & Chr(i) Next Msgbox sDigitos End Sub Sub letrasMinusculas For i = Asc("a") To Asc("z") sLetrasMinusculas = sLetrasMinusculas & Chr(i) Next Msgbox sLetrasMinusculas End Sub

Sub letrasMayusculas For i = Asc("A") To Asc("Z") aLetrasMayusculas = aLetrasMayusculas & Chr(i) Next Msgbox aLetrasMayusculas End Sub

Funcin Len : Longitud de una Cadena de Texto La funcin len() regresa el nmero de caracteres en un string o el nmero de bytes requerido para almacenar una variable. Existe una variante de esta funcin lenB la cual regresa el nmero de bytes utilizados para representar el string. Ejemplo:Sub longitud(sCadena) alert "Longitud de """ & sCadena & """ = " & len(sCadena)_ & Chr(13) & "Nmero de bytes utilizados para su representacin= " & lenB(sCadena) End Sub

Funcin Mid La funcin Mid() regresa un nmero especifico de caracteres de un string, es decir, a partir de un string es posible extraer un sub-string. Recibe 3 argumentos el primero especifica el string fuente, el segundo especifica a partir de que posicin comenzar la extraccin y el tercero especifica la longitud de tendr el substring obtenido.Sub substring(sCadena,nInicio,nLong) alert "sub-string: " & Mid(sCadena,nInicio,nLong) End Sub

Cadena: A partir del caracter nmero: Longitud del substring a extraer:

Funcin Left : Extrae los primeros caracteres La funcin Left() extrae los n primeros caracteres de un string, recibe 2 argumentos el primero es el string del cual se extraer la sub-cadena y el segundo especifica el nmero de caracteres a extraer.

Cadena: Nmero de caracteres a extaer:

Funcin Right : Extrae los ltimos caracteres La funcin Right() extrae los n ltimos caracteres de un string, recibe 2 argumentos el primero es el string del cual se extraer la sub-cadena y el segundo especifica el nmero de caracteres a extraer.Cadena: Nmero de caracteres a extaer:

Funcin inStr : Busca ocurrencias La funcin inStr() busca las ocurrencias de un sub-string en un string, el primer argumento es opcional y establece en donde iniciar la bsqueda, el segundo argumento es el string donde se va a buscar, el tercer argumento es el sub-string a buscar y el ltimo argumento es opcional el cual por default define una bsqueda binaria (vbBinaryCompare), aunque es posible cambiar al modo de bsqueda a comparacin textual el cual no es sensitivo al uso de maysculas o minsculas, es decir, el sub-string puede ser informatique o INFORMATIQUE, para ello establezca el valor en vbTextCompare para este ltimo argumento. Existe una variante de esta funcin llamada InStrRev cuya diferencia funcional es que empieza la bsqueda de izquierda a derecha. Regresa 0 si no encontro el sub-string. Ejemplo:Sub buscarSubCadena(sCadena,sSubCadena,nModo) If nModo(0).checked Then nModo = vbBinaryCompare else nModo = vbTextCompare End if alert(InStr(1,sCadena,sSubCadena,nModo)) End Sub

Cadena: Sub-Cadena: Bsqueda Binaria (default) Bsqueda Textual

Funcin Split : Separar un String La funcin Split() regresa un arreglo de una dimensin conteniendo un nmero especifico de sub-strings Su primer argumento es obligatorio ya que especifica el string a separar, si este string tiene longitud igual a cero la funcinSplit() regresar un arreglo vaco el cual es un arreglo sin elementos y sin datos. El segundo argumento es opcional y es un sub-string que se utiliza como separador (identifica el lmite del sub-string) o patrn es decir cada que encuentre este sub-string separa el string fuente, al ser opcional por defecto el separador es un espacio (" "), si la longitud de este sub-string es igual a cero el arreglo slo contendr un elemento que contiene la expresin completa del string. El tercer argumento es opcional e indica el nmero de sub-strings o piezas en las que se podr dividir el string, el valor -1 indica regresar todos los substrings. El ltimo y cuarto argumento establece el tipo de comparacin el cual puede ser sensitivo (vbBinaryCompare) o no-sensitivo (vbTextCompare)Sub separarCadena Dim mySite mySite = "www.informatique.com.mx" mySite = Split(mySite,".") For i = 0 To Ubound(mySite) str = str & "Sub-String " & i & " = " & mySite(i) & Chr(13) Next Alert(str) End Sub

Note que se omiten los caracteres que son utilizados como separador. Funcin Join : Cmo convertir un arreglo en string? La funcin Join() regresa un string creado por la unin de un nmero de substrings contenidos en un arreglo. Recibe 2 argumentos el primero es un arreglo de una dimensin. El segundo es opcional y especifica el separador a utilizar, es decir, despus de cada elemento contenido en el arreglo se agrega el separador especificado, si se omite por defecto se utiliza el espacio (" ") y si la longitud del separador es igual a cero todos los elementos del arreglo son concatenados sin separadores. Separador a utilizar :

Funcin Replace : Reemplazar caracteres La funcin Replace() regresa un string en el cual un sub-string especifico ser reemplazado por otro sub-string un nmero especifico de veces. Argumentos: Replace(expression, find, replacewith[, start[, count[, compare]]])

expression, argumento requerido el cual es un string que contiene los sub-strings a reemplazar. find, argumento requerido el cual especifica el sub-string que ser buscado en expression. replacewith, argumento requirido el cual especifica el sub-string que reemplazar los caracteres definidos en findcontenidos en expression. start, argumento opcional el cual especifica la posicin a partir de la cual la bsqueda iniciar, si se omite el valor asumido es1, debe ser utilizado en conjunto con el argumento count count , argumento opcional el cual especifica el nmero de veces que ser reemplazado el sub-string si es omitifo por default el valor es -1, lo cual significa realizar todas las sustituciones posibles y debe utilizarse en conjunto con el argumentostart. compare, argumento opcional, el cual indica el tipo de comparasin a realizar binaria(vbBinaryCompare) o textual(vbTextCompare), si es omitido el default es 0 lo cual significa una comparasin binaria.Cadena: Buscar: Reemplazar por: Iniciar en la posicin:

Nmero de veces a reemplazar:

Funcin Filter : Filtrado La funcin Filter(InputStrings, Value[, Include[, Compare]]) regresa un arreglo que contiene un subconjunto destrings de otro arreglo basados en un criterio utilizado como filtro. Argumentos:

InputStrings, argumento requerido que especifica un arreglo de strings de una dimensin -to be searched. Value, argumento requerido que especifica el string a buscar.

Include, argumento booleano opcional que indica la forma en que sern regresados los sub-strings que incluyen o excluyen el valor, si el valor es true el filtro regresa aquellos elementos que contengan el substring de bsqueda, Si el valor esfalse el filtro regresa aquellos elementos que no-contengan el sub-string de bsqueda, Compare, argumento opcional que indica el tipo de comparasin a utilizar (vbBinaryCompare o vbTextCompare).

Ejemplo:Sub filtrar(sFilter, sModo) Dim aFiltrado Dim aNombres(12) aNombres(0) = "Marisela" aNombres(1) = "Natalia" aNombres(2) = "Maria Elena" aNombres(3) = "Ivonne" aNombres(4) = "Maria" aNombres(5) = "Deyanira" aNombres(6) = "Maria Ins" aNombres(7) = "Biridiana" aNombres(8) = "Maria de Jess" aNombres(9) = "Liliana" aNombres(10) = "Maria Anglica" aNombres(11) = "Leticia" aNombres(12) = "Maria Magdalena" If sModo Then aFiltrado = Filter(aNombres, sFilter, True) else aFiltrado = Filter(aNombres, sFilter, False) End If For i = 0 To Ubound(aFiltrado) str = str & "Coincidencia " & i & ": " & aFiltrado(i) & chr(13) Next If str = "" Then Alert "No se encontro ninguna coincidencia!" else alert(str) End If End Sub

El arreglo contiene los elementos:

Marisela Natalia Maria Elena Ivonne Maria Deyanira Maria Ins Biridiana Maria de Jess

Liliana Maria Anglica Leticia Maria Magdalena

Elementos que contengan: Elementos que no contengan:

Funcin LCase : Convertir a minsculas Regresa un string que ha sido convertido a minsculasAlert(LCase(document.frmCase.sCadena.value)) Alert(UCase(document.frmCase.sCadena.value))

Funcin UCase : Convertir a maysculas Regresa un string que ha sido convertido a maysculas

Funcin StrComp : Comparar strings La funcin StrComp(string1, string2[, compare]) Regresa un valor el cual indica el resultado de la comparacin de unstring. Valores de regreso posibles:

Si el primer string es menor que el segundo regresa el valor -1 Si el primer string es igual que el segundo regresa el valor 0 Si el primer string es mayor que el segundo regresa el valor 1 Si el primer string o el segundo es Null regresa el valor Null

Cadena 1:

Cadena 2:

Funciones de formato de cadenas VBScript brinda funciones de formateo de cadenas de texto o strings:

FormatCurrency(Expression[,NumDigitsAfterDecimal [,IncludeLeadingDigit [,UseParensForNegativeNumbers [,GroupDigits]]]]) FormatDateTime(Date[, NamedFormat])

FormatNumber(Expression [,NumDigitsAfterDecimal [,IncludeLeadingDigit [,UseParensForNegativeNumbers [,GroupDigits]]]]) FormatPercent(Expression[,NumDigitsAfterDecimal [,IncludeLeadingDigit [,UseParensForNegativeNumbers [,GroupDigits]]]])

onclick="VBScript:Alert FormatCurrency(document.frmFormateo.nMoneda.value)"

Moneda :

onclick="VBScript:Alert onclick="VBScript:Alert onclick="VBScript:Alert onclick="VBScript:Alert onclick="VBScript:Alert

FormatDateTime(Now,0)" FormatDateTime(Now,1)" FormatDateTime(Now,2)" FormatDateTime(Now,3)" FormatDateTime(Now,4)"

Fecha y Hora del Sistema: Funcin String : Generacin de cadenas con un mismo carcter La funcin String puede generar una cadena formada por un nico carcter o valor ANSI (en este caso el valor debe estar en el rango 0-255) y repetido tantas veces sea especificado. En el caso de especificar una cadena de caracteres slo se tomar como valor el primer carcter.onclick="VBScript:Alert String(document.frmStr.nVeces.value,document.frmStr.sChar.value)" onclick="VBScript:Alert String(document.frmStr.nVeces.value,Chr(document.frmStr.nCode.value))"

Nmero de veces a ser repetido: Carcter: Cdigo:

Funcin Space : Generacin de cadenas de espacios en blanco La funcin Space() regresa una cadena de longitud especificada formada por espacios en blanco.Alert "La cadena es: """ & Space(nLong) & """"

Longitud de la cadena:

Funcin Trim, LTrim, RTrim (trailing) : Elimina espacios en blanco al inicio y final (rastrear) La funcin Trim() recibe como argumento una cadena de texto o string y regresa el contenido de la cadena pero sin los espacios en blanco que hubiera al inicio y al final.Alert "La cadena es: """ & Trim(sCadena) & """"

Cadena:

La funcin LTrim elimina los espacios en blanco al inicio de una cadena mientras que la funcin RTrim elimina los espacios en blanco al final de una cadena. Funcin SetTimeOut : Ejecucin en un intervalo de tiempo especifico VBScript proporciona la posibilidad de ejecutar una funcin en un intervalo de tiempo especifico a travs de la funcinSetTimeOut() Sintaxisvar = SetTimeOut("nombreFuncin", intervaloTiempo)

Es posible cancelar esta accin mediante el empleo de la funcin ClearTimeOut(). Ejemplo Funcin SetInterval : Ejecucin periodica VBScript proporciona la posibilidad de ejecutar una funcin repetidamente en un intervalo de tiempo especifico a travs de la funcin SetInterval(). Sintaxisvar = SetInterval("nombreFuncin", intervaloTiempo)

Es posible cancelar esta accin mediante el empleo de la funcin ClearInterval. Ejemplo Manejo de Fechas y Tiempo

Las fechas vlidas en VBScript comienzan del 1 de Enero del ao 100 al 31 de Diciembre del ao 9999. En su defecto el rango permitido de fechas vlidas en valores de tipo Integer es del -32.768 a 32.767.Sub nombre_Dias For i = 0 To 6 Dim dFecha, nPos, sDia dFecha = FormatDateTime(Date + i, vbLongDate) nPos = InStr(dFecha, " ") sDia = Left(dFecha, nPos - 2) str = str & sDia & Chr(13) Next Alert str End Sub

Funcin Date : Obtener Fecha La funcin Date regresa la fecha del sistema.document.write Date

Salida: Funcin Time : Obtener Tiempo La funcin Time regresa el tiempo del sistema.document.write Time

Salida: Funcin Now : Obtener Fecha y Tiempo La funcin Now regresa la fecha y tiempo del sistema.document.write Now

Salida: Funcin DateValue : Subtipo de fecha La funcin DateValue() regresa un Variant sub-tipo fecha.d = DateValue("Septiembre 21, 1971")

Funcin DateSerial : Subtipo de fecha especifico

La funcin DateSerial() regresa un Variant sub-tipo de fecha especificado por ao, mes y da Sintaxis:DateSerial(ao,mes,da)

Ejemplo:d1 = DateSerial(1970, 1, 1) d2 = DateSerial(1990 - 10, 8 - 2, 1 - 1)

Funcin TimeValue : Tiempo La funcin TimeValue() regresa un Variant sub-tipo fecha conteniendo el tiempo.t = TimeValue("4:35:17 PM")

Funcin TimeSerial : Tiempo especifico La funcin TimeSerial() regresa un Variant sub-tipo fecha contenendo el tiempo especificado por horas, minutos y segundos. Returns a Variant of subtype Date containing the time for a specific hour, minute, and second Sintaxis:TimeSerial(horas,minutos,segundos)

Ejemplo:tE = TimeSerial(12 - 6, -15, 0)

Funciones Day, Month, Year, WeekDay Day(fecha),

regresa un nmero en el rango de 1 a 31 correspondiente al da del mes de la fecha que recibe como argumento. Month(fecha), regresa un nmero en el rango de 1 a 12 correspondiente al mes de la fecha que recibe como argumento. Year(fecha), regresa el ao correspondiente a la fecha que recibe como argumento. WeekDay(fecha), regresa un nmero en el rango de 1 a 7 correspondiente al da de la semana de la fecha que recibe como argumento. Es este caso el valor 1 corresponde al da Domingo (2 = Lunes, 3 = Martes, 4 = Mircoles, 5 = Jueves, 6 = Viernes, 7 = Sbado). Es posible cambiar el valor de inicio de los das especificandolo en el segundo argumento que puede recibir esta funcin, por lo que la expresin WeekDay(Now,2) establece que el

valor 1 corresponde al da Lunes.. Si el valor de inicio de los das es 0 se toma como inicio el configurado por el sistema, lo cual podra ser lo ms idoneo." Hoy es: " & Day(Now) & "/" & Month(Now) & "/" & Year(Now) & " Da de la semana: " & WeekDay(Now) " Hoy es: " & Day(Now) & "/" & Month(Now) & "/" & Year(Now) & " Da de la semana: " & WeekDay(Now,2) " Hoy es: " & Day(Now) & "/" & Month(Now) & "/" & Year(Now) & " Da de la semana: " & WeekDay(Now,0)

A partir de la versin 3 de VBScript se incorporaron las siguiente constantes para el manejo de los das de la semana: vbUseSystemDayOfWeek

:0

:1 vbMonday : 2 vbTuesday : 3 vbWednesday : 4 vbThursday : 5 vbFriday : 6 vbSaturday : 7vbSunday

Funciones Hour, Minute, Second : Horas, Minutos, Segundos Hour(tiempo),

regresa la parte correspondiente a la hora del argumento

que recibe.Minute(tiempo),

regresa la parte correspondiente a los minutos del argumento que recibe. Second(tiempo), regresa la parte correspondiente a los segundos del argumento que recibe.

El siguiente cdigo podra mostrarnos la hora en la que se cargo la pgina, pero tiene un pequeo defecto el cual es que para valores del 0 al 9 se presentan tal cual y en el caso de formatos de horas se precede un 0 entes de estos valores por lo que sera necesario implementar una funcin para desplegar una mejor presentacin de la hora:document.write " La hora es: " & Hour(Now) & ":" & Minute(Now) & ":" & Second(Now)

Funcin MonthName : Nombre del Mes A partir de la versin 2 podemos encontrar disponible la funcin MonthName() que regresa el nombre del mes, recibe 2 argumentos, el primero corresponde al valor numrico del mes a obtener y el segundo que es

un valor booleano opcional que en el caso de ser false (el cual es el valor por default) regresa el nombre del mes completo, en caso de ser true regresa el nombre del mes abreviado:document.write "El mes actual es: " & MonthName(Month(Now)) & "
" document.write "El mes actual abreviado es: " & MonthName(Month(Now),true)

Funcin WeekdayName : Nombre del Da de la semana A partir de la versin 2 podemos encontrar disponible la funcin WeekdayName(), que regresa el nombre del da de la semana, recibe 3 argumentos: 1. Requerirdo, tipo numrico en el rango del 1 al 7, que indica el da de la semana a obtener. 2. Opcional, tipo booleano, por default False que regresa el nombre completo y true regresa el nombre abreviado. 3. Opcional, tipo numrico para indicar cual es el primer da de la semana.document.write "Da actual: " & WeekdayName(Weekday(Now)) & "
" document.write "Da actual abreviado: " & WeekdayName(Weekday(Now),true) & "
" document.write "Da actual (da de inicio): " & WeekdayName(Weekday(Now), , vbMonday)

Funcin DatePart : Parte de una fecha La funcin DatePart() regresa la parte especificada por su primer argumento, la cual puede ser: Intervalos de TiempoCadena yyyy q m y d w ww h n s Obtiene el ao el trimestre el mes el da del ao el da el da de la semana la semana del ao la hora los minutos los segundos

El segundo argumento puede ser la fecha y hora de la cual se desea obtener una de sus partes. El tercer argumento es opcional el cual especifica el da de inicio de la semana y el cuarto argumento tambin opcional especifica la semana de inicio del ao.document.write document.write document.write document.write "
" document.write document.write "
" document.write "
" document.write document.write document.write "Ao actual es: " & DatePart("yyyy",now) & "
" "Trimestre actual es: " & DatePart("q",now) & "
" "Mes actual es: " & DatePart("m",now) & "
" "Da del ao actual es: " & DatePart("y",now) & "Da actual es: " & DatePart("d",now) & "
" "Da de la semana actual es: " & DatePart("w",now) & "Semana del ao actual es: " & DatePart("ww",now) & "Hora actual es: " & DatePart("h",now) & "
" "Minuto actual es: " & DatePart("n",now) & "
" "Segundo actual es: " & DatePart("s",now) & "
"

Puede hacer uso de las siguientes constantes: vbUseSystem, vbFirstJan1, vbFirstFourDays, vbFirstFullWeek, Funcin DateAdd : Adicionar tiempo La funcin DateAdd(interval, number, date) regresa una fecha a la cual se adiciono un intervalo de tiempo especificado en el primer argumento que recibe.

interval, string requerido que especifica la medida de adicin (ver valores posibles). number, valor numrico requerido que especifica la cantidad de tiempo a adicionar, puede ser positivo en el caso de fechas futuras o negativo en el caso de fechas pasadas. date, Variant, o literal que representa la fecha a la cual se adicionara un intervalo.

dHace1Mes = DateAdd("m", -1, Now) dEn1Mes = DateAdd("m", 1, Now)

Funcin DateDiff : Intervalo entre 2 fechas La funcin DateDiff(interval, date1, date2 [,firstdayofweek[, firstweekofyear]]) regresa el intervalo entre 2 fechas

interval, string requerido que especifica la medida de tiempo que se desea calcular entre date1 y date2 (ver valores posibles). date1, date2 , fechas requeridas deseadas para usar en el calculo. firstdayofweek, constate opcional que especifica el da de inicio de de la semana, si se omite Sunday/Domingo es asumido.

firstweekofyear, constante opcional, que especifica la primer semana del ao, si se omite, la primera semana asumida esJanuary 1/1 deenero

El siguiente ejemplo muestra el cuidado que se debe tener al tratar con esta funcin ya que puede ser confusa:dBase = DateValue("Septiembre 21, " & Year(Now)) document.write "Fecha base : " & dBase & "
" dTest = DateAdd("m", -1, dBase) document.write "Meses transcurridos del " & dTest &_ " al " & dBase & " : " & DateDiff("m", dTest, dBase) & " 1
" dTest = DateAdd("d", -1, dTest) document.write "Meses transcurridos del " & dTest &_ " al " & dBase & " : " & DateDiff("m", dTest, dBase) & " 1
" dTest = DateAdd("d", 2, dTest) document.write "Meses transcurridos del " & dTest &_ " al " & dBase & " : " & DateDiff("m", dTest, dBase) & "
" dTest = DateAdd("d", 9, dTest) document.write "Meses transcurridos del " & dTest &_ " al " & dBase & " : " & DateDiff("m", dTest, dBase) & "
" dTest = DateAdd("d", 1, dTest) document.write "Meses transcurridos del " & dTest &_ " al " & dBase & " : " & DateDiff("m", dTest, dBase) & " 1
"

Recuerde que podra vlidar si un dato es de tipo fecha a travs de la funcin isDate(valor) aunque tendr que realizar unos cuantos ajustes, por ejemplo isDate("21 Septiembre 1971") e isDate(21 September 1971) podran ser o no vlidas dependiendo de la configuracin, intentalo! da clic en la liga y pruebalo!. Constantes para Colores VBScript proporciona valores constantes para colores, por ejemplo:Constante vbBlack vbRed vbGreen vbYellow vbBlue vbCyan Color Negro Rojo Verde Amarillo Azul Can

vbMagenta Magenta

vbWhite

Blanco

Ejemplo:

Pasa el puntero del mouse sobre este texto, Qu sucedio? Eventos Un evento es una notificacin que ocurre en respuesta de una determinada accin, la cual puede ser producida por el usuario o por un cambio de estado en algn elemento del documento HTML. Cuando se produce un evento, el objeto Event refleja la situacin actual de dicho evento, se adapta para cada elemento HTML, provee las propiedades y mtodos correspondientes. El objeto Event es una propiedad del objeto Window de un documento HTML. A travs de este objeto es posible por ejemplo determinar quien produjo el evento (srcElement) o cancelar el Event Bubblingque significa que un elemento puede estar contenido dentro de otros elementos y desencadenar los eventos de estos, ejemplo: De click aqu para ejecutar un Event Bubbling

De click aqu para ejecutar un Event Bubbling Tambin es posible cancelar el Event Bubbling utilizando el mtodo CancelBubble. La propiedad returnValue establece o recupera el valor de regreso de un evento, su sintaxis es:event.returnValue [ = bValue ]

Otros eventos:

OnAbort OnBounce OnChange OnFilterChange OnFinish OnReset OnResize OnScroll OnStart OnSubmit

Manejadores de Eventos Un Manejador de Eventos es aquella rutina o funcin que un programador escribe para responder a un evento comoonMouseOver, onMouseOut, onMouseClick etc. Es posible establecer un manejador de eventos de varias formas, por ejemplo utilizando el atributos propio del evento de una etiqueta HTML y asociarle el nombre de una rutina o funcin seguida de parntesis, por ejemplo:

Si omite escribir los parentesis no se ejecutara ninguna accin Es posible escribir lo anterior de otra forma utilizando cdigo inline, para lo cual primero se escribe VBScript: seguido de las instrucciones a realizar:

Otra posibilidad es escribir un manejador especifico para un evento asociado a una etiqueta HTML esta forma es prioritaria a las dems, para ello es necesario especificar un valor para el atributo id de la etiqueta HTML a la cual se desea asociar un manejador de eventos y escribir el cdigo VBScript respectivo: Etiqueta HTML:

El atributo for de la etiqueta script establece para que etiqueta deber funcionar el script, el cual es relacionado por medio del valor del atributo id de la etiqueta HTML, el atributo event establece el tipo de evento para el cual deber responder el script.

Una posibilidad ms es escribir una funcin cuyo nombre estar compuesto por el valor asignado en el atributo id de la etiqueta HTML para la cual se desea que responda el manejador, seguido del carcter guin bajo - underscore (_), seguido del nombre el evento al cual responder, ejemplo:

El cdigo HTML ser:

Eventos del Mouse Es posible controlar los eventos del mouse en un documento HTML y asociarlos a un elemento en especifico, por ejemplo si deseamos asociarlo al elemento document escribiriamos como nombre de la funcin:Sub Document_nombreEvento

Donde nombreEvento puede ser: 1. 2. 3. 4. 5. 6. 7. OnMouseMove OnMouseOver OnMouseOut OnMouseDown OnMouseUp OnMouseClick OnMouseDblClick

Para conocer que botn pulso el usuario utilice:window.event.Button

Lo cual regresa alguno de los siguientes valores constantes:Valor 0 1 2 4 Botn Ningn botn pulsado Izquierdo Derecho Central

Ejemplo de eventos del mouse Eventos del Teclado Es posible controlar los eventos del teclado asociandoles un manejador para ello emplearemos los eventos: OnKeyDown OnKeyUp OnKeyPress

Cuando un evento del teclado ocurre la propiedad keyCode del objeto event la cual contiene el Unicode correspondiente a la tecla y con ayuda de la funcin Chr(code) es posible saber que carcter est asociado a dicho Unicode. Tambin ocurren las propiedades ShiftKey, CtrlKey y AltKey las cuales contienen un valor true en caso de que esten activas Ejemplo de eventos del mouse Eventos OnLoad - OnUnload El evento OnLoad ocurre cuando se ha terminado de cargar el documento HTML y el evento OnUnload cuando se cambia a otro ducumento HTML o cuando se cierra la ventana del navegador que contiene el documento HTML. Ejemplo de eventos load Evento OnError better reference El evento OnError ocurre cuando se produce un error en la carga de algn elemento del documento HTML o un error en el script. Ejemplo de evento OnError Formularios La manera posible de obtener datos del usuario y hacer que los envie al servidor para su procesamiento es a travs del uso de formularios en las pginas. Los formularios consisten a su vez de otros elementos tales como, campos de entrada de texto, listas de seleccin, botones, etc. la mayora de estos son elementos input y es mediante su propiedad type que se especifica por

ejemplo si es un text o button. Un elemento de tipo especial para formularios es textarea el cual no pertenece al grupo de elementos input. Para obtener ms informacin sobre formularios visite el tutorial de HTML. Input Es posible establecer un manejador de eventos para un elemento input a travs de VBScript, ya nos hemos referido a los eventscomo tales. 1. Empezaremos escribiendo un formulario y dos campos de texto: Entrada de Texto 1: Entrada de Texto 2:

Para asociarles un manejador de eventos sera necesario asignar un valor a la propiedad id del elemento input de tipo textsiendo este tipo el valor por default, por ello que se pueda omitir el escribir la propiedad type. Es posible que para acceder a un elemento input sea necesario hacerlo desde form por lo que ser necesario hacer lo propio para el elemento form, es decir asignar un valor a su propiedad name. 2. El siguiente paso ser escribir un manejador para algn evento que deseemos controlar, para efectos prcticos haremos algo sencillo como desplegar un mensaje al usuario cada vez que este se posicione en el elemento y cada vez que se abandone:Sub entrada1_OnFocus() Alert "Dato requerido" End Sub Sub entrada1_OnBlur() IF isEmpty(document.frmEj.entrada1.value)_ Or isNull(document.frmEj.entrada1.value)_ Or document.frmEj.entrada1.value = "" Then Alert "recuerde que es un dato requerido" else Alert "El dato proporcionado es: " & document.frmEj.entrada1.value End if End Sub Sub entrada2_OnFocus() Alert "Dato 2 opcional" End Sub Sub entrada2_OnBlur() Alert "El dato proporcionado es: " & document.frmEj.txt2.value End Sub

Note que las funciones inician con el nombre del valor asignado a la propiedad id del elemento sobre el cual actuar el manejador, pero para acceder a los valores que contienen los elementos input es posible hacerlo a travs de las propiedades name o id. 3. Ahora agregaremos un botn y su respectivo controlador de evento Sub btnOk_OnClick() Alert "Enviando datos, por favor espere..." End Sub

Entrada de Texto 1:

Entrada de Texto 2:

Algunas propiedades/metodos comunes de elementos en formularios:

idName.value idName.Checked idName.AccessKey = "T" idLista.Size = 5 idLista.Multiple = False idLista.Options(nOpcion).Value = "valor" idLista.Options.Add = "valor" idLista.options.Add "valor" idLista.options.Add "valor", nPosEnLista idLista.options.Remove nPosEnLista idLista.Length idLista(nOpcion).Selected idImg.x idImg.y idImg.Src idImg.dynSrc idImg.Loop idImg.vSpace idImg.hSpace

On Error Resume Next La sentencia On Error Resume Next indica al interprete de VBScript que al encontrar un error lo ignore y coninue en la lnea siguiente. DOM, Document Object Model : Modelo de Objetos del Documento Para mejor referencia: About the W3C Document Object Model, Using the HTML+TIME Document ObjectModel, Document Object Model (DOM) Level 1 Specification (Second Edition)

El Modelo de Objetos del Documento (DOM) es un estndar para navegadores (browsers) que define la Jerarqua de los objetos que un Documento HTML debe contener, por lo que es posible que un navegador pueda soportar o extender este Modelo. Microsoft Internet Explorer (IE) 6 soporta todas las propiedades, mtodos y colecciones definidas en la especificacin del Modelo de Objetos del Documento del World Wide Web Consortium (W3C). Qu es el DOM? por el w3c "The Document Object Model is a platform- and language-neutral interface that will allow programs and scripts to dynamically access and update the content, structure and style of documents."http://www.w3c.org/DOM/#what

Es por lo anterior que VBScript puede acceder a los objetos de un documento, as como tambin IE extiende los objetos contenidos en un Documento HTML. Objeto Window El objeto Window se encuentra en la cima de la Jerarqua del DOM, el cual representa una ventana abierta del IE y es a travs de este objeto que es posible acceder a todas las propiedades y eventos del navegador. Algunas propiedades de Window: ms informacin sobre window Ejemplo del Objeto Window Window.Open : Com abrir una nueva ventana? El objeto Window posee el evento Open con el cual es posible abrir en una ventana un URL especifico, a esta ventana es posible darle las caractersticas que deseemos, tales como: toolbar, status, resize, width, height, left, top, etc. El siguiente ejemplo abre una nueva ventana:Window.Open("http://msdn.microsoft.com/workshop/author/dhtml/reference /methods/open_0.asp")

Es posible abrir una ventana modal de la siguiente forma:Window.showModalDialog "nombrePagina.html"

Este tipo de ventanas modales tienen la caracterstica de esperar una accin por parte del usuario sin permitir a este pasar a la ventana padre (ventana que abrio la ventana modal) hasta que la ventana modal se cierre. Tambin es posible obtener valores de una ventana modal, para ello utilizar una variante de la instruccin anterior la cual incluye parntesis:document.frmModalData.datos.value = Window.showModalDialog("modal.html")

De esta manera se obtiene el valor de regreso del mtodo Window.showModalDialog. Es necesario indicar lo que window regresa utilizando la sentencia ReturnValue y escribirlo en el evento OnUnload del documento que se abre en la ventana modal:Window.ReturnValue = document.frmModal.hora.value &_ " El nombre del usuario es: " & document.frmModal.nombreUsuario.value

Objeto Document El objeto Window contiene una coleccin de propiedades, eventos, mtodos y objetos, entre los objetos que contiene se encuentraDocument que hace referencia al Documento HTML que contiene la ventana. Algunas propiedades de este objeto son: activeElement, Title, bgcolor, linkColor, aLinkColor, vLinkColor, LastModified, Location, URL, ParentWindow, etc. tiene los eventos Write y WriteLn con los cuales es posible escribir texto en el documento al momento de ser cargado, este texto puede contener cdigo HTML. Estos documento son comunmente utilizados en cdigo de VBScript.Window.Document

CreateObject La funcin CreateObject(servername.typename una referencia a un objeto automatizado [, location])

crea y regresa

servername es requerido, especifica el nombre del objeto de la aplicacin typename es requerido, especifica el tipo o clase de objeto a crear location es opcional, especifica el nombre del servidor donde el objeto ser creado

GetObject La funcin GetObject([pathname] [, class]) regresa una referencia a un objeto automatizado desde un archivo.

pathname, string opcional que especifica la ubicacicin del archivo que contiene el objeto a obtener, si se omite este argumento, el argumento ser requerido. class, string opcional que especifica la clase de un objeto.

Scripting Runtime Library Un Script Windows es una infraestructura de Scripting comprensiva para las plataformas Microsoft Windows. Un Script Windows provee dos motores de script: Visual Basic Scripting Edition y Microsoft JScript, los cuales pueden ser incrustados dentro de aplicaciones Windows. Tambin proveen una serie extensa de tecnologas que facilitan a un usuario de script escribir Aplicaciones Windows. La Biblioteca Scripting Runtime

comprende objetos tales como:

Dictionary Object FileSystemObject Object Script Encoder

Objeto Dictionary Lo que se conoce en Visual Basic y Visual Basic For Aplications como coleccin en VBScript existe un objeto similiar llamadoDictionary. Este objeto es equivalente a un arreglo asociativo en PERL. Un objeto Dictionary es un arreglo asociativo que lo mismo puede almacenar referencias a objetos que nmeros, cadenas o cualquier tipo de dato, a cada item (elemento) de este arreglo se le asocia o le corresponde un Key o llave nico, as siempre existira el par key-item. Por medio de Key es posible recuperar un item o dato. Key usualmente puede ser un entero o string, puede ser cualquier cosa excepto un array, al ser key de cualquier tipo no es posible acceder a los items mediante un ndice como en el caso de los arreglos, pero existe una solucin para acceder a los items mediante un ciclo y es utilizando el mtodo object.Keys( ) para obtener un arreglo que contiene unicamente las keys del objeto Dictionary, lo mismo se hace para los items mediante el mtodoobject.Items( ), el cdigo seria:

arreglo = objetoDictionary.keys For i = 0 To objetoDictionary.Count - 1 objetoDictionary.Item(arreglo(i)) Next

Dictionary

forma parte de la biblioteca Scripting

1. Para crear un objeto Dictionary declare una variable:Dim oDic

2. Utilice la funcin CreateObject() para asignar a la variable oDic una referencia a un objeto Dictionary:Set oDic = CreateObject("Scripting.Dictionary")

Mtodos del Objeto Dictionary El objeto Dictionary para su manejo posee los mtodos Add, Exists, Items, Keys, Remove y RemoveAll.1. nombreObjeto.Add (key, item),

sirve para agregar un key e item al

objeto Dictionary.2. object.Exists(key), 3. 4. 5. 6.

regresa true si la key que se especifica existe en un objeto Dictionary o false si no existe. object.Items( ), regresa un arreglo que contiene todos los items contenidos en un objeto Dictionary. object.Keys( ), regresa un arreglo que contiene todas las keys existentes en un objeto Dictionary. object.Remove(key), elimia una key e item de un objeto Dictionary. object.RemoveAll( ) , elimina todas las keys e items de un objeto Dictionary.

Propiedades del Objeto Dictionary Las propiedades del objeto Dictionary son: object.CompareMode[ = compare],

estable y regresa el modo de comparacin de string-keys en un objetoDictionary. object.Count, regresa el nmero de items en una collecin u objeto Dictionary, esta propiedad slo es de lectura. object.Item(key)[ = newitem], establece y regresa un item especificado para una key en un objeto Dictionary. object.Key(key) = newkey, establece una llave en un objeto Dictionary.

Ejemplo de Dictionary (Mtodos y Propiedades) Objeto FileSystemObject La biblioteca Scripting provee un objeto llamado FileSystemObject (FSO) que permite manipular unidades de disco (drives), directorios (folders) y archivos (Files). El Modelo FileSystemObject Este objeto est basado en un Modelo que permite usar mtodos, propiedades y eventos a travs de la notacin de punto para manipular directorios y archivos. Utilice esta herramienta basada en objetos con:

HTML para crear pginas web Windows Scripting Host, para crear archivos batch para Microsoft Windows Script Control, para proveer capacidades de scripting para el desarrollo de aplicaciones en otros lenguajes

Utilizar FSO en el lado del cliente plantea serios asuntos de seguridad sobre la capacidad de proveer de manera potencial el acceso no-bienvenido a el sistema de archivos local del cliente. Este Modelo puede crear scripts ejecutados por pginas web de internet del lado del servidor. Si se utiliza del lado del servidor, la configuracin de IE por default establece no permitir el uso del objeto FSO del lado del cliente. Si se cambia la configuracin podrian hacer vulnerable a una computadora local a accesos nobienvenidos al sistema de archivos lo cual resultaria en una total destruccin de la integridad del sistema de archivos causando perdida de datos o algo peor. El Modelo FSO da a las aplicaciones del lado del servidor la capacidad de crear, alterar, mover y eliminar directorios o la capacidad para detectar la existencia de un directorio en particular y su ubicacin. Tambin es posible encontrar informacin sobre los directorios como el nombre de estos, la fecha en que fueron creados o la fecha en que se modifico por ltima vez, etc. El Modelo FSO tambin hace posible procesar archivos. Al procesar archivos, la meta fundamental es almacenar datos en un espacio y recurso eficiente fcil de acceder y formatear, para ello se necesita poder crear archivos, insertar/cambiar datos y poder leer su salida. Es posible almacenar datos en un base de datos como Access o SQL Server. Almacenar los datos en un archivo

de texto puede ser la solucin ms eficiente en caso de no requerir todas las caractersiticas extras asociadas con una base de datos. El Modelo FSO el cual est contenido en la biblioteca de enlace dinmico Scripting (Scrrun.dll) soporta la creacin de archivos de texto y su manipulacin a travs del objeto TextStream. Objetos FileSystemObject El Modelo de Objetos FSO contiene los siguiente objetos y colecciones: FileSystemObject object,

objeto principal que contiene mtodos y propiedades que permiten crear, eliminar, obtener informacin y en general manipular unidades, directorios y archivos. Muchos de los mtodos asociados con este objeto se duplican en otros objetos FSO por conveniencia. Provee acceso al sistema de archivos de una computadora. Drive Object, contiene mtodos y propiedades que permiten recopilar informacin respecto a unidades de disco del sistema, informacin como su nombre o si esta disponible. Note que la unidad a no es necesariamente un disco duro, puede ser un CD-ROM, unidad de memoria, etc. La unidad a no necesita estar instalada fisicamente al sistema, puede tambin estar conectada lgicamente a travs de una red. Mtodos: No tiene Propiedades: AvailableSpace Property | DriveLetter Property | DriveType Property | FileSystem Property | FreeSpace Property | IsReady Property | Path Property | RootFolder Property | SerialNumber Property | ShareName Property | TotalSize Property | VolumeName Property

Drives Collection,

proporciona una lista de unidades conectadas al sistema, fisica o lgicamente. La coleccin de unidades incluyen todas las unidades sin importar su tipo. Las unidades removibles no necesitan tener un medio insertado para que aparezcan en esta coleccin. File Object, contiene mtodos y propiedades que permiten crear, eliminar o mover un archivo. Tambin permite consultar al sistema respecto a un nombre de archivo, ruta y dems propiedades. Mtodos: Copy Method | Delete Method | Move Method | OpenAsTextStream Method

Propiedades : Attributes Property | DateCreated Property | DateLastAccessed Property | DateLastModified Property | Drive Property | Name Property | ParentFolder Property | Path Property | ShortName Property | ShortPath Property | Size Property | Type Property Files Collection,

proporciona una lista de todos los archivos contenidos dentro de un directorio. Folder Object contiene mtodos y propiedades que permiten crear o mover directorios. Tambin permite consultar al sistema respecto a nombres de directorios, rutas y dems propiedades. Folders Collection proporciona una lista de todos los sub-directorios de un directorio. TextStream Object permite leer y escribir archivos de texto.

El primer paso para usar el objeto FSO es crearlo(CreateObject()) mediante su invocacin utilizando la biblioteca Scripting:Dim oFSO Set oFSO = CreateObject("Scripting.FileSystemObject")

Una vez creado el objeto es posible utilizar cualquiera de sus mtodos o propiedades Ejemplo FSO Controles ActiveX Los controles ActiveX proporcionan absoluta flexibilidad al definir su funcionalidad a travs de sus mtodos, propiedades y eventos, tambin proporcionan una interfaz de usuario para facilitar la interaccin con este por medio de los manejadores de eventos que proporciona el propio control. Cmo se incrusta un control ActiveX en un documento HTML?, en general para facilitar la incrustacin de cualquier tipo deobjetos incluyendo los controles ActiveX y otros como applets, scriptlets, etc. el W3C - World Wide Web Consortium propuso la etiqueta HTML la cual adopto Microsoft para los controles ActiveX. El elemento HTML object al igual de otros elementos HTML define una serie de propiedades: classid="",

establece el objeto concreatamente, para controles ActiveX es el identificador de clase del objeto,

Un identificador de clase o clsid de un control Activex es un nmero de 128 bits de identifica de manera nica al control, el cual es generado por un potente algoritmo que asegura su exclusividad en la identificacin de cualquier control, independientemente del lugar y momento de su creacin, este clsid se agrega automticamente en el registro de Windows cuando se registra este en el sistema (instalacin manual o automtica desde redS) codebase="",

especifica el URL donde se encuentra el control, para que el navegador lo descargue e instale en caso de que no este instalado en la mquina cliente. codetype="", especifica el tipo de objeto que se va a incrustrar en el documento HTML, para los controles ActiveX no es necesario especificar este valor. data="", especifica el URL del cual el objeto, (en este caso el control ActiveX) puede obtener sus datos declare, en caso de agregar esta propiedad se est especificando que nicamente declare el objeto pero no se instanciar realmente. dir="", id="", especifica un identificador para el objeto, a travs de este es posible acceder a sus propiedades y mtodos type="", accesskey="", tecla aceleradora align="", alineacin archive="", border="", borde class="", clase CSS height="", especifica el alto hspace="", especifica la separacin horizontal, con otro elemento lang="", especifica el lenguaje, el valor es una abreviatura referente al nombre del pas name="", especifica el nombre del objeto para envio de informacinonclick="" ondblclick="" onkeydown="" onkeypress="" onkeyup="" onmousedown="" onmousemove="" onmouseout="" onmouseover="" onmouseup="",

eventos style="", especifica una serie de estilos a aplicar en la presentacin del objeto tabindex="", especifica el orden que tendr respecto a otros elementos title="", especifica el texto a presentar cuando se pasa el puntero sobre el objeto (tooltip) vspace="", especifica la separacin vertical, con otro elemento

De estas propiedades las requeridas son id, classid y codebase.

Para especificar valores iniciales desde la definicin del objeto, se utilizada la etiqueta que forma parte del elemento HTML object. Las propiedades del elemento HTML param son: id="",

establece un identificador para el parmetro name="", establece el nombre de la propiedad, que es el mismo nombre de la propiedad definida en el control required="", type="", value="", el valor que tendr la propiedad (propiedad especificada por name) valuetype="", especifica de que tipo ser el valor de la propiedad, ref para URL, object para objetos y data cuando el valor se pasa directamente al objeto como una cadena de texto

Una vez definido el control ActiveX es posible tratarlo como cualquier otro elemento HTML, para su manipulacin, por ejemplo si el control tiene una propiedad llamada edad para asignarle un valor se podra escribir:nombreControlActiveX.edad = 33

La declaracin de controladores de eventos se hace de manera anloga, por ejemplo:Sub nombreControl_OnClick() instrucciones End Sub

Ventajas de los Controles ActiveX Una de las ventajas de un control ActiveX es su flexibilidad, ya que es un control construido en base a nuestros requerimientos y que es posible incrustarlo en un documento HTML el cual puede ser utilizado de manera privada (intranet) o pblica (internet). Desventajas de los Controles ActiveX La principal desventajas de los controles ActiveX es que son dependientes de la plataforma (sistemas operativos Windows de Microsoft). Otra de las desventajas de un control ActiveX es su instalacin y desinstalacin, digamos que podra ser compleja para un usuario y peor an si es un novato. Comunicacin con un Applet Java

La etiqueta HTML sirve para incrustar un Applet Java y la mayora de sus propiedades o atributos son iguales a los del elemento object, siendo la nica propiedad requerida code para especificar la clase Java. Tambin es posible establecer valores iniciales por medio del elemento param. Para establecer una comunicacin con el Applet Java, es necesario definir la propiedad codeType como "application/java-vm" y la propiedad classId con un valor que comienza con la cadena "java:" seguido del nombre de la clase Java sin su extensin class. Ejemplo: classid="java:nombreClase". Acate estas recomendaciones para versiones anteriores de VBScript. Una vez incrustado el Applet Java se procede a acceder a sus propiedades y mtodos bajo la excepcin de sintaxis, ya que la sintaxis en Java es objeto.propiedad = valor, la sintaxis a utilizar es objeto.propiedad(valor) Ejemplo comunicacin Applet Java Scriptlets Un Scriptlet es una pgina web basada en HTML dinmico (DHTML), que puede ser utilizada como un control en cualquier aplicacin que soporte controles y utiliza cierta convencin para la definicin de sus propiedades, mtodos y eventos. El Scriptlet es un archivo .htm o html web de lectura, pero que incluye informacin que permite trabajar con el como un control del cual es posible establecer sus propiedades, obtener propiedades, invocar mtodos, etc. Caractersticas:

Permite a los autores de pginas web, crear componentes de interfaces de usuario reutilizables sin la necesidad de tener el poder de C, C++ u otro ambiente de construccin de controles. Son fciles de crear y mantener Son pequeos y eficientes Un Scriptlet es un documento basado en HTML que proporciona una interfaz de fcil configuracin y uso, en cualquier tipo de contenedor que soporte controles como IE, ha este documento web se le dota de los medios necesarios para poder utilizarla como un control, es decir, se podrian modificar sus propiedades, acceder a sus mtodos y responder a sus eventos. A travs de los scriptlets es posible desarrollar componentes reutilizables y utilizarlos en entornos distintos a IE y agregar a sus aplicaciones convencionales funcionalidades comunes de documentos web. Los scriptlets son objetos faciles de descargar por su tamao

reducido ya que al contener solo cdigo HTML (texto) es similar a descargar una pgina web normal. Las propiedades y mtodos de un scriptlet se definen como funciones comunes de cualquier lenguaje de Script. Al ser pginas HTML normales estn sujetas a las mismas reglas de seguridad establecidas por el navegador para cualquier otra pgina. Si el nivel de seguridad est configurado en el mximo porque al ser incrustados los scriptlets mediante el elemento object no se descargaria, lo mismo que ocurre con controles ActiveX. Para el caso de Microsoft Windows los scriptlets se implementan como objetos COM para optimizar el acceso a sus interfaces. Los scriptlets son multi-plataforma ya que vienen incorporados en todas las versiones de IE 4, para Windows, Mac, Unix, etc.

Cmo crear un Scriptlet? Para crear un Scriptlet es necesario seguir las convenciones para nombres de variables y funciones. El cdigo de un Scriptletes el mismo utilizado para una pgina normal y del mismo modo se acceden a las caractersticas de las jerarqua de objetos HTML. Una variable o mtodo pblico se declara al escribir el prefijo public_ y automticamente se accede a ella desde el contenedor del Scriptlet. Ejemplo de un Scriptlet:public_nombre = Hola

El Scriplet se escribe en un documento HTML y se guarda bajo las extensiones html o htm. En otro documento HTML se incrusta el Scriplet, desde este la forma de acceder al Scriplet es mediante la notacin de punto y omitiendo el prefijo pucblic_. Los Scriptlets tienen un nico manejador llamado OnScriptletEvent Ejemplo de la creacin de un Scriptlet - Ejemplo Funcional del Scriptlet Mejor informacin sobre Scriplets, Designing a Scriptlet ASP Las Pginas de Servidor Activo - Active Server Pages (ASP), permiten crear aplicaciones que permiten flexibilizar tareas de acceso y proceso de datos en el servidor, utilizando HTML y un lenguaje de Script (VBScript o JScript).

La principal caracterstica de este tipo de pginas es que el cdigo de Script contenido en ellas se ejecuta en el servidor y no en la mquina cliente, del lado del cliente el navegador o browser interpreta el cdigo HTML que envia el servidor. Si conoce un lenguaje de Script como VBScript o JScript puede comenzar casi de inmediato a elaborar ASP's tan solo necesitaria conocer la filosofia o parte conceptual de ASP. Cuando se trabaja en modo cliente-servidor para consultar cualquier pgina se hace una peticin al servidor, en el caso de pginas HTML o DHTML comunes se descargan e interpretan en el lado del cliente, pero en el caso de ASP comienza con la peticin al servidor de una ASP y el servidor invoca al filtro asp.dll que lee el contenido de la ASP y realiza la tarea de procesar los scripts del lado del servidor (Server Side Scripting) contenidos en la ASP, al terminar se genera una pgina HTML que se enva al navegador del lado del cliente para su interpretacin. es un intrprete que procesa cdigo Script contenido en la pgina y regresa una salida HTML.ASP

VBScript es el lenguaje por defecto para ASP, Continuar el tutorial en ASP