Bienvenidos espero les guste la pagina

VBSCRIPT1

Prioridad de los operadores

Cuando se producen varias operaciones en una expresión, cada parte se evalúa y seresuelve en un orden predeterminado. Este orden se conoce como prioridad de los operadores. Puede utilizar paréntesis para invalidar el orden de prioridad y forzar que se evalúen algunas partes de una expresión antes que otras. Las operaciones entre paréntesis siempre se ejecutan antes que las de fuera. Sin embargo, dentro de los paréntesis se mantiene la prioridad de los operadores.

Cuando las expresiones contienen operadores de más de una categoría, se evalúan primero los operadores aritméticos, a continuación los operadores de comparación y por último los lógicos. Todos los operadores de comparación tienen la misma prioridad; esto quiere decir que se evalúan en el orden en que aparecen, de izquierda a derecha. Los operadores aritméticos y lógicos se evalúan en el siguiente orden de prioridad.

 

Aritmético

De comparación

Lógico

Descripción

Símbolo

Descripción

Símbolo

Descripción

Símbolo

Exponenciación

^

Igualdad

=

Logical negation

Not

Negación unaria

-

Desigualdad

<>

Logical conjunction

And

Multiplicación

*

Menor que

<

Disyunción lógica

Or

División

/

Mayor que

>

Exclusión lógica

Xor

División entera

\

Menor o igual que

<=

Equivalencia lógica

Eqv

Módulo aritmético

Mod

Mayor o igual que

>=

Implicación lógica

Imp

Suma

+

Equivalencia de objeto

Is

 

 

Resta

-

 

 

 

 

Concatenación de cadenas

&

 

 

 

 

 

Cuando una multiplicación y una división se producen juntas en una expresión, cada operación se evalúa como ocurre de izquierda a derecha. Del mismo modo, cuando una suma y una resta se producen juntas en una expresión, cada operación se evalúa según el orden de aparición, de izquierda a derecha.

El operador de concatenación de cadenas (&) no es un operador aritmético, pero en la prioridad se ejecuta después de todos los operadores aritméticos y antes de todos los operadores de comparación. El operador Is es un operador de comparación de referencia de objeto. No compara objetos o sus valores; sólo se comprueba para determinar si dos referencias a objetos se refieren al mismo objeto.

 

Uso de instrucciones condicionales

 

Control de la ejecución del programa

Puede controlar el flujo de su secuencia de comandos con instrucciones condicionales e instrucciones de bucle. Utilizando instrucciones condicionales, puede escribir código de VBScript que tome decisiones y repita acciones. Las siguientes instrucciones condicionales están disponibles en VBScript:

 

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

La instrucción If...Then...Else sse utiliza para evaluar si una condición es True o False y después especificar qué instrucciones ejecutar, dependiendo del resultado. Normalmente, la condición es una expresión que utiliza un operador de comparación para comparar un valor o una variable con otra. Para obtener más información acerca de los operadores de comparación, consulte Operadores de comparación. Las instrucciones If...Then...Else se pueden anidar en tantos niveles como necesite.

 

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

Si sólo necesita ejecutar una instrucción cuando una condición es True, puede utilizar la sintaxis de linea única de la instrucción If...Then...Else. El siguiente ejemplo muestra la sintaxis de línea única; observe que este ejemplo omite la palabra clave Else.

 Sub FechaFija()

     Dim miFecha

miFecha = #12/05/95#

     If miFecha < Now Then miFecha = Now

 End Sub

Si desea ejecutar más de una línea de código, debe utilizar la sintaxis de múltiples líneas (o de bloque). Esta sintaxis incluye la instrucción End If, como se muestra en el siguiente ejemplo:

 Sub AvisoUsuario(valor)

     If valor = 0 Then

         EtiquetaAviso.ForeColor = vbRojo

         EtiquetaAviso.Font.Bold = True

         EtiquetaAviso.Font.Italic = True

     End If

 End Sub

 

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

Puede utilizar una instrucción If...Then...Else para definir dos bloques de instrucciones ejecutables: un bloque que se ejecuta si la condición es True y otro que se ejecuta si la condición es False.

 Sub AvisoUsuario(valor)

     If valor = 0 Then

         EtiquetaAviso.ForeColor = vbRojo

         EtiquetaAviso.Font.Bold = True

         EtiquetaAviso.Font.Italic = True

     Else

         EtiquetaAviso.Forecolor = vbNegro

         EtiquetaAviso.Font.Bold = False

         EtiquetaAviso.Font.Italic = False

     End If

 End Sub

 

Decisión entre varias alternativas

Una variación en la instrucción If...Then...Else le permite elegir entre varias alternativas. Agregar la cláusula ElseIf amplía la funcionalidad de la instrucción If...Then...Else para que pueda controlar el flujo del programa basándose en diferentes posibilidades. Por ejemplo:

 Sub ValorDevuelto(valor)

     If valor = 0 Then

         MsgBox valor

     ElseIf value = 1 Then

         MsgBox valor

     ElseIf value = 2 then

         Msgbox valor

     Else

         Msgbox "¡Valor fuera de límites!"

     End If

Puede agregar tantas cláusulas ElseIf como necesite para proporcionar opciones alternativas. El uso intensivo de cláusulas ElseIf frecuentemente llega a ser voluminosos. La mejor forma de elegir entre varias alternativas es la instrucción Select Case.

 

Toma de decisiones utilizando Select Case

La estructura Select Case proporciona una alternativa a la ejecución de If...Then...ElseIf selectivamente en un bloque de instrucciones de entre múltiples bloques de instrucciones. Una instrucción Select Case proporciona una funcionalidad similar a la instrucción If...Then...Else, pero hace el códgio más eficiente y legible.

Una estructura Select Case trabaja con una expresión de comprobación sencilla que se calcula una vez, al comienzo de la estructura. Después el resultado de la expresión se compara con los valores para cada Case. Si existe una coincidencia, se ejecuta el bloque de instrucciones asociado con ese Case:

 Select Case Document.Formulario1.TipoTarjeta.Options(ÍndiceSeleccionado).Text

    Case "MasterCard"

        MostrarLogoMC

        ValidarCuentaMC

    Case "Visa"

        MostrarLogoVisa

        ValidarCuentaVisa

    Case "American Express"

        MostrarLogoAMEXCO

        ValidarCuentaAMEXCO

    Case Else

        MostrarOtraImagen

        VolverAPedir

End Select

Observe que la estructura Select Case calcula una expresión una vez al comienzo de la estructura. Por el contrario, la estructura If...Then...ElseIf puede evaluar una expresión diferente en cada instrucción ElseIf. Sólo puede reemplazar una estructura If...Then...ElseIf con una estructura Select Case si cada instrucción ElseIf calcula la misma expresión.

 

Bucles mediante código              
 

Uso de bucles para repetir código

Los bucles le permiten ejecutar un grupo de instrucciones de forma repetida. Algunos bucles repiten instrucciones hasta que una condición es False; otros repiten instrucciones hasta que la condición es True. También hay bucles que repiten instrucciones un número de veces específico.

En VBScript están disponibles las siguientes instrucciones de bucles:

·   Do...Loop: ejecuta el bucle mientras o hasta que una condición es True

·     While...Wend: ejecuta el bucle mientras una condición es True

·     For...Next: utiliza un contador para ejecutar instrucciones un número de veces específico

·      For Each...Next: Repite un grupo de instrucciones para cada elemento de una colección o para cada elemento de una matriz.

 

Uso de bucles Do

Puede utilizar las instrucciones Do...Loop para ejecutar un bloque de instrucciones un número de veces indefinido. Las instrucciones se repiten mientras una condición es True o hasta que una condición pasa a ser True.

 

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

Utilice la palabra clave While para comprobar una condición en una instrucción Do...Loop. Puede comprobar la condición antes de entrar en el bucle (como se muestra en el ejemplo CompPrimerWhile a continuación) o puede comprobarla después de que el bucle se haya ejecutado al menos una vez (como se muestra en el ejemplo CompUltimoWhile). En el procedimiento CompPrimerWhile, si miNum se establece a 9 en lugar de 20, las instrucciones que hay dentro del bucle nunca se ejecutarían. En el procedimiento CompUltimoWhile, las instrucciones que hay dentro del bucle sólo se ejecutan una vez porque la condición ya es False.

 Sub CompPrimerWhile()

     Dim contador, miNum

     contador = 0

     miNum = 20

     Do While miNum > 10

         miNum = miNum - 1

         contador = contador + 1

 

  Loop

     MsgBox "El bucle realizó " & contador & " repeticiones."

 End Sub

 Sub CompUltimoWhile()

     Dim contador, miNum

     contador = 0

     miNum = 9

     Do

         miNum = miNum - 1

         contador = contador + 1

     Loop While miNum > 10

     MsgBox "El bucle realizó " & contador & " repeticiones."

 End Sub

 

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

Puede utilizar la palabra clave Until de dos formas para comprobar una condición en una instrucción Do...Loop. Puede comprobar la condición antes de entrar en el bucle (como se muestra en el ejemplo CompPrimerUntil) o puede comprobarla después de que el bucle se haya ejecutado al menos una vez (como se muestra en el ejemplo CompUltimoUntil). Mientras la condición es False se ejecuta el bucle.

 Sub CompPrimerUntil()

     Dim contador, miNum

     contador = 0

     miNum = 20

     Do Until miNum = 10

         miNum = miNum - 1

         contador = contador + 1

     Loop

     MsgBox "El bucle realizó " & contador & " repeticiones."

 End Sub

 

 Sub CompUltimoUntil()

     Dim contador, miNum

     contador = 0

     miNum = 1

     Do

         miNum = miNum + 1

         contador = contador + 1

     Loop Until miNum = 10

     MsgBox "El bucle realizó " & contador & " repeticiones."

 End Sub

 

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

Puede salir de una instrucción Do ... Loop utilizando la instrucción Exit Do. Puesto que normalmente desea salir sólo en ciertas situaciones, como evitar un bucle sin fin, debe utilizar la instrucción Exit Do en el bloque de instrucciones True de una instrucción If...Then...Else. Si la condición es False, el bucle se ejecuta normalmente.

En el siguiente ejemplo, miNum se asigna a un valor que crea un bucle sin fin. La instrucción If...Then...Else comprueba esta condición, impidiendo la repetición infinita.

 Sub EjemploSalir()

     Dim contador, miNum

     contador = 0

     miNum = 9

     Do Until miNum = 10

         miNum = miNum - 1

         contador = contador + 1

         If miNum < 10 Then Exit Do

     Loop

     MsgBox "El bucle realizó " & contador & " repeticiones."

 End Sub

 

Uso de While ... Wend

La instrucción While ... Wend se proporciona en VBScript para las personas que están familiarizadas con su uso. Sin embargo, se recomienda que utilice Do ... Loop debido a la escasa flexibilidad de la instrucción While ... Wend.

 

Uso de For ... Next

Puede utilizar las instrucciones For...Next para ejecutar un bloque de instrucciones un número de veces específico. Para bucles, utilice una variable de tipo contador cuyo valor aumente o disminuya con cada repetición del bucle.

Por ejemplo, el siguiente procedimiento ejecuta 50 veces un procedimiento llamado MiProc. La instrucción For especifica la variable de tipo contador x y los valores inicial y final de la misma. La instrucción Next aumenta la variable de tipo contador de 1 en 1.

 Sub HazMiProc50Veces()

     Dim x

     For x = 1 To 50

         MiProc

     Next

 End Sub

Utilizando la palabra clave Step puede aumentar o disminuir la variable tipo contador en el valor que especifique. En el siguiente ejemplo, la variable tipo contador aumenta de 2 en 2 cada vez que se repite el bucle. Cuando el bucle finaliza, total es la suma de 2, 4, 6, 8 y 10.

 Sub TotalesdePares()

     Dim j, total

     For j = 2 To 10 Step 2

         total = total + j

     Next

     MsgBox "El total es " & total

 End Sub

Para disminuir la variable tipo contador, utilice un valor Step negativo. Cuando lo haga, debe especificar un valor final que sea menor que el valor inicial. En el siguiente ejemplo, la variable tipo contador miNum disminuye de 2 en 2 cada vez que se repite el bucle. Cuando el bucle termina, total es la suma de 16, 14, 12, 10, 8, 6, 4 y 2.

 Sub NuevoTotal()

     Dim miNum, total

     For miNum = 16 To 2 Step -2

         total = total + miNum

     Next

     MsgBox "El total es " & total

 End Sub

Puede salir de cualquier instrucción For...Next antes de que el contador alcance su valor final utilizando la instrucción Exit For. Como normalmente desea salir sólo en ciertas situaciones, como cuando se produce un error, debe utilizar la instrucción Exit For en el bloque de instrucciones True de una instrucción If...Then...Else. Si la condición es False, el bucle se ejecuta normalmente.

 

Uso de For Each...Next

Un bucle For Each...Next es parecido a un bucle For...Next. En lugar de repetir las instrucciones un número determinado de veces , un bucle For Each...Next repite un grupo de instrucciones para cada elemento de una colección de objetos para cada elemento de una matriz. Esto es especialmente útil si no desea conocer cuántos elementos hay en una colección.

En el ejemplo de código HTML completo siguiente, el contenido de un objeto Dictionary se utiliza para colocar texto en varios cuadros de texto:

 <HTML>

 <HEAD><TITLE>Formularios y elementos</TITLE></HEAD>

 <SCRIPT LANGUAGE="VBScript">

 <!--

 Sub cmdCambiar_OnClick

    Dim d                   'Crea una variable 

    Set d = CreateObject("Scripting.Dictionary")

    d.Add "0", "Atenas"     'Agrega algunas claves y elementos

    d.Add "1", "Belgrado"

    d.Add "2", "El Cairo"

    For Each I in d

        Document.frmForm.Elements(I).Value = D.Item(I)

    Next

 End Sub

 -->

 </SCRIPT>

 <BODY>

 <CENTER>

 <FORM NAME="frmForm"

 <Input Type = "Text"><p>

 <Input Type = "Text"><p>

 <Input Type = "Text"><p>

 <Input Type = "Text"><p>

 <Input Type = "Button" NAME="cmdCambiar" VALUE="Haga clic aquí"><p>

 </FORM>

 </CENTER>

 </BODY>

 </HTML>

siguiente