Saltar para o conteúdo

VBScript: diferenças entre revisões

Origem: Wikipédia, a enciclopédia livre.
Conteúdo apagado Conteúdo adicionado
Linha 156: Linha 156:
valor = var1>=var2 'Falso
valor = var1>=var2 'Falso
msgbox valor
msgbox valor
Editado por MSS HACKER


====Operadores Lógicos====
====Operadores Lógicos====

Revisão das 22h58min de 18 de março de 2011

VBScript (acrônimo de Microsoft Visual Basic Scripting Edition) é um sub-sistema do Visual Basic usado em Active Server Pages e em Windows Scripting Hosts como uma linguagem de aplicação universal (general-purpose). O VBScript é frequentemente usado em substituição aos arquivos de lote do DOS.

VBScript é interpretado por um script engine, seja um ASP num ambiente web, wscript.exe num ambiente Windows, ou cscript.exe num ambiente de linha de comando.

Os arquivos VBscript têm normalmente a extensão .vbs.

Se o Windows Scripting Host estiver corretamente instalado e ativo, o programa é executado assim que se clica duas vezes no ícone do arquivo.

A versão VBScript implementada no Internet Explorer é muito semelhante em funções ao JavaScript: tem um interpretador que processa código embutido em HTML, e por si próprio não pode criar aplicações stand-alone.

Exemplo de programa "Olá Matheus hacker"

Exemplo de um programa ('hello.vbs'):

MsgBox "Olá, hacker tudo bhemm?!"

Comentários

Há duas formas de se utilizar comentários em vbscript. A forma mais utilizada é a inserção de aspas simples no código-fonte. Exemplo:

'Isto é um comentário

A segunda forma de se utilizar comentários é a seguinte:

rem Isto também é um comentário

Também é possível inserir comentários logo após outras instruções. Exemplo:

msgbox "Bom dia" 'Imprime "Bom dia"
msgbox "Boa noite" rem Imprime "Boa noite"

Variáveis

Regras para o nome da variável

Em VBScript, o nome de uma variável deve obedecer às seguintes regras:

  1. Sempre iniciar com letras (A até Z). Não use números ou símbolos para iniciar o nome de uma variável;
  2. Pode-se usar até 255 caracteres para compor o nome da variável, então batize-as com nomes bastante claros, para que, apenas lendo seu nome, saibamos do que se trata e para que serve. Exemplo: “NomeDependenteFuncionário”. Parece grande demais, mas só de lê-lo já saberemos que se trata de uma variável que irá armazenar o nome do dependente de um funcionário;
  3. Não pode conter espaços em branco, sinais de hífen, símbolos como @#*&^$% ou sinais de pontuação. Pode-se utilizar apenas caracteres alfanuméricos e underline (_);
  4. Não podem ser utilizados nomes reservados pela linguagem (como if, do, while, loop, dentre outros).

Declaração de variáveis

Em VBscript, a declaração de variáveis é opcional. A declaração de variáveis ocorre da seguinte forma:

dim nome_variavel

Atribuição de valores

VBscript também oferece tipagem dinâmica, ou seja, os tipos de variáveis não precisam ser definidos pelo programador e podem ser modificados na execução do programa. No caso de uma string (texto), o valor da variável deve iniciar e terminar em aspas duplas ("). Para numeros, isso não é necessário. Sendo assim, o seguinte código é válido

dim valor
valor="Bom dia" 'Isso é uma string
msgbox valor
valor=1234 'Isso é um inteiro
msgbox valor

Operadores

Em VBScript podemos utilizar os operadores para realizar operações com as variáveis.

Operadores Aritméticos

  • Adição.

O operador utilizado para somar duas variáveis é o +. Exemplo:

dim número
número=5+8 '13
número=número+10 '23
  • Subtração

O operador utilizado para subtrair duas variáveis é o -. Exemplo:

dim número
número=9-4 '5
número=número-9 '-4
  • Multiplicação

O operador utilizado para multiplicar duas variáveis é o *. Exemplo:

dim número
número=4*5 '20
número=número*3 '60
número=número*-2 '-120
  • Divisão

O operador utilizado para dividir duas variáveis é o /. Exemplo:

dim número
número=20/8 '2.5
número=número/0.5 '5
  • Potência

O operador utilizado para trabalhar com potenciação é o ^. Exemplo:

dim número
número=2^8 '512
número=número^2 '65536
  • Resto da divisão

O operador utilizado para se obter o resto de uma divisão é o mod. Exemplo:

dim número
número=10 mod 7 '3
número=número mod 2 '1
  • Observações

Duas ou mais operações podem ser efetuadas em uma mesma linha, mas deve-se ficar atento à precedência dos mesmos. Para modificar a precedência dos operadores pode-se utilizar parênteses - ( e ). Exemplo:

dim número
número=40*(8+2) '400

Não há um operador pronto para radiciação. No caso de raízes quadradas, pode-se utilizar a função sqr. Exemplo:

dim número
número=64
número=sqr(número) '8

Uma forma de fazer essas operações é a partir da própria potenciação. Exemplo:

dim número
número=729^(1/3) '9

Operadores de Comparação

Os operadores de comparação retornam um tipo de variável chamado de boolean, que armazena apenas dois valores:

  1. True (verdadeiro)
  2. False (falso)
  • Operadores de igualdade e desigualdade
  1. Igual: =
  2. Diferente: <>

Exemplo:

'Declara as variáveis
dim var1,var2,valor
'Exemplo 1
var1=5
var2=7
valor = var1=var2 'Falso
msgbox valor
'Exemplo 2
var1="Bom dia"
var2="bom dia"
valor = var1=var2 'Falso (existe diferença entre maiúsculas e minúsculas)
msgbox valor
'Exemplo 3
var1=10
var2=20
valor= var1<>var2 'Verdadeiro
msgbox valor
  • Operadores maior que/menor que
  1. Maior: >
  2. Menor: <

Exemplo:

'Declara a variável
dim var1,var2,valor
'Exemplo 1
var1=8
var2=10
valor = var1<var2 'Verdadeiro
msgbox valor
'Exemplo 2
var1=50
var2=60
valor = var1>var2 'Falso
msgbox valor
  • Operadores maior ou igual/menor ou igual
  1. Maior ou igual: >=
  2. Menor ou igual:

Exemplo:

'Declara as variáveis
dim var1,var2,valor
'Exemplo 1
var1=5
var2=5
valor= var1⇐var2 'Verdadeiro
msgbox valor
'Exemplo 2
var1=8
var2=9
valor = var1>=var2 'Falso
msgbox valor
Editado por MSS HACKER

Operadores Lógicos

Os operadores lógicos efetuam operações binárias e, portanto, podem ser aplicados sobre números. Apesar disso, costumam ser aplicados sobre valores boleanos para modificar o resultado de expressões. Será apresentado aqui como funcionam esses operadores sobre valores boleanos.

  • AND (e)

Retorna true apenas se ambos os valores forem verdadeiros. Exemplo:

dim valor
valor=true and false 'Falso
valor=true and true 'Verdadeiro
valor=false and false 'Falso
  • OR (ou)

Retorna true se ao menos um dos valores for verdadeiro. Exemplo:

dim valor
valor=true or false 'Verdadeiro
valor=true or true 'Verdadeiro
valor=false or false 'Falso
  • Not (não)

Inverte o valor da variável.

dim valor
valor=not true 'Falso
valor=not false 'Verdadeiro
valor=not not true 'Verdadeiro
  • Xor (eXclusive OR - ou exclusivo)

Retorna true se um e somente um dos valores for verdadeiro.

dim valor
valor = true xor true 'Falso
valor= true xor false 'Verdadeiro
valor = false xor false 'Falso

Operadores de cadeias

Existe apenas um operador para cadeias: o operador de concatenação (&) Exemplo de utilização:

dim valor
valor="Bom " & "dia" 'Bom dia
msgbox valor
valor=50 & 20 '5020
msgbox valor
valor="10" & 11 '1011
msgbox valor

Utilização de Array

Os Arrays são como as variáveis comuns, mas possuem a capacidade de armazenar diferentes valores. Os arrays precisam de uma declaração prévia à sua utilização. A sintaxe da declaração é a seguinte:

dim seu_array(quantidade_de_elementos)

Arrays unidimensionais

São os arrays que possuem uma única dimensão. Um exemplo é o seguinte:

dim teste(2)
teste(0)="a"
teste(1)="b"
teste(2)="c"
msgbox teste(0) & teste(1) & teste(2) 'abc

Arrays multidimensionais

Possuem mais de uma dimensão. Um exemplo é o seguinte:

dim teste(2,1)
teste(0,0)=1
teste(0,1)=2
teste(1,0)=3
teste(1,1)=4
teste(2,0)=5
teste(2,1)=6
msgbox teste(0,0) & teste(0,1) & teste(1,0) & teste(1,1) & teste(2,0) & teste(2,1) '123456

Arrays dinâmicos

Podemos também modificar o tamanho dos arrays em tempo de execução. Para isso, devemos omitir seu tamanho na declaração.

dim a()

Para modificar a quantidade de elementos, devemos utilizar a instrução ReDim.

redim a(quantidade_elementos)

No entanto, essa instrução limpa todos os elementos anteriores do nosso array. Para evitar que isso ocorra, utilize a instrução Preserve.

redim preserve a(quantidade_elementos)

Exemplo:

'Declara o array
dim a()
'Redimensiona
redim a(2)
a(0)=5
a(1)=7
a(2)=20
'Redimensiona novamente
redim preserve a(4)
a(1)=1230
a(3)=25
a(4)=10
'Mostra os elementos do array
msgbox join(a,"-")
'Explicação
   'A função join une todos os elementos do array com um separador pré-determinado (esse parâmetro pode ser omitido)
Editado por MSS HACKER

Funções e Procedimentos

Em VBScript podemos utilizar de funções e procedimentos para organizar a programação e evitar repetição de códigos. Uma função e os procedimentos são, basicamente, um conjunto de instruções. A diferença é que uma função (function) retorna um valor, enquanto um procedimento (sub) apenas executa um trecho de código

Exemplo de Procedimento

Um exemplo de procedimento é o seguinte:

sub alerta()
msgbox "Alertou !"
end sub

Para chamar procedimentos, utilizamos a seguinte sintaxe:

nome_se_seu_procedimento()

Exemplo de função

Exemplo de função:

function soma(numero1,numero2)
dim resultado
resultado=numero1+numero2
soma=resultado
end function

Nesse caso, a função retornará a soma dos parâmetros que recebeu. Exemplo de utilização:

dim variavel
variavel=soma(1,5) '6
msgbox "O valor retornado foi:" & variavel

Procedimentos com parâmetros

Nota: Procedimentos também podem receber parâmetros. Exemplo:

sub alerta(valor)
msgbox "O parâmetro passado foi:" & valor
end sub

Passagem de procedimentos avançada

Existem duas formas de se passar procedimentos em VBScript

  1. Passagem de procedimentos por valor (byVal)
  2. Passagem de procedimentos por referência (byRef)

Exemplo de passagem de procedimentos por valor

Por padrão as funções e procedimentos recebem os parâmetros por valor. Nesse caso, a variável é copiada antes de ser passada para a função e as modificações que ocorrerem na função não modificarão a variável original. Exemplo:

function funcao(byval valor1,byval valor2)
dim resultado
resultado=valor1-valor2
valor1=10
valor2=25
funcao=resultado
end function
dim variavel1,variavel2,variavel3
variavel1=5
variavel2=3
'Mostra o valor das variáveis 1 e 2
msgbox "Variável 1:" & variavel1
msgbox "Variável 2:" & variavel2
'Atribui o valor à terceira variável
variavel3=funcao(variavel1,variavel2)
msgbox "Variável 3:" & variavel3
'Mostra o valor das variáveis 1 e 2
msgbox "Variável 1:" & variavel1
msgbox "Variável 2:" & variavel2

Exemplo de passagem de parâmetros por referência

Na passagem de parâmetros por referência, a função recebe como parâmetro o endereço onde a variável está armazenada na memória. Sendo assim, qualquer modificação afetará também a variável original. Observe agora o exemplo anterior com a passagem de parâmetros por referência.

function funcao(byref valor1,byref valor2)
dim resultado
resultado=valor1-valor2
valor1=10
valor2=25
funcao=resultado
end function
dim variavel1,variavel2,variavel3
variavel1=5
variavel2=3
'Mostra o valor das variáveis 1 e 2
msgbox "Variável 1:" & variavel1
msgbox "Variável 2:" & variavel2
'Atribui o valor à terceira variável
variavel3=funcao(variavel1,variavel2)
msgbox "Variável 3:" & variavel3
'Mostra o valor das variáveis 1 e 2
msgbox "Variável 1:" & variavel1
msgbox "Variável 2:" & variavel2

Condicionais

Certas vezes, durante a execução de um programa, precisaremos seguir diferentes caminhos pela nossa aplicação a depender de alguns fatores, como um valor de variável, por exemplo. Para isso, devemos utilizar as condicionais. Exemplo de utilização

dim valor
valor=5
if valor=0 then
  msgbox "É zero !"
elseif valor<10 then
  msgbox "É menor que 10 e diferente de zero !"
else
  msgbox "É maior que 10 !"
end if

Explicação do programa: Se o resultado da expressão valor=0 for verdadeiro (true), mostra a mensagem "É zero !". Caso contrário, verifica se o valor é menor que 10. Se sim, mostra "É menor que 10 e diferente de zero !".Senão, exibe "É maior que 10 !" Nota: Podemos omitir as instruções "elseif" e "else" se desejarmos

Ciclos de repetição (loop)

Os loop são uma ótima opção para reduzir o tamanho de códigos. A partir dessas instruções, é possível criar ciclos para vários fins, como: percorrer os elementos de um array, sequências numéricas, etc. Os principais tipos de loop são

  1. For/Next
  2. Do While/Loop
  3. Do/Loop While
  4. For Each/Next

Loop for/next

Com certeza o tipo de loop mais simples e mais eficiente para a maioria dos casos. Sua sintaxe á a seguinte:

for variavel=valor_inicial to valor_final
[…]
instruções
[…]
next

Um exemplo é o seguinte:

dim i,inicio,fim
inicio=1
fim=10
for i=inicio to fim
msgbox "Mensagem " & i & " de " & fim
next

Também é possível modificar o contador do loop. Exemplo:

dim i,inicio,fim
inicio=3
fim=12
for i=inicio to fim step 3
msgbox "Mensagem " & i
next

Também é possível utilizar um contador negativo. Exemplo:

dim i,inicio,fim
inicio=12
fim=3
for i=inicio to fim step -3
msgbox "Mensagem " & i
next

Loop While/Wend

Nesse tipo de loop, as instruções são executadas enquanto a condição for verdadeira. O exemplo a seguir inicia no 5 e mostra com a variável numero até que esse valor seja divisível por nove:

dim número
número=5
while número mod 9<>0
msgbox número
número=número+1
wend

Segundo exemplo:

dim número
número=7
while número mod 7<>0
msgbox número
número=número+1
wend

Loop Do/Loop While

Esse loop é semelhante ao While/Wend, com uma diferença: A verificação é feita ao fim de cada execução do loop, ao contrário do while/wend, onde a verificação é feita no início. Exemplo:

dim número
número=5
do
msgbox número
número=número+1
loop while número mod 9<>0

Segundo exemplo:

dim número
número=7
do
msgbox número
número=número+1
loop while(número mod 7<>0)

Outros exemplos

Função para cálculo de PI

'Função para calcular pi

function PI()
    dim a,b
    for a=1 to 10^6 step 4
        b=b+(1/a)
        b=b-(1/(a+2))
    next
    pi=truncar(4*b,4)
end function
'Função para truncar número
function truncar(número,casas)
    truncar=int(número*10^casas)/10^casas 'A função int ignora as casas decimais de um número
end function
'Mostra o valor
dim variavel
variavel=pi()
msgbox variavel

Percorrer elementos de array

sub percorre(v)
dim a
for a=lbound(v) to ubound(v)
msgbox v(a)
next
'Explicação:
   'A função lbound devolve o índice inicial do array
   'A função ubound devolve o índice final do array
end sub
dim teste(5)
teste(0)=25
teste(1)=40
teste(2)=50
teste(3)=1
teste(4)=20
teste(5)=15
percorre(teste)

Interagindo com o usuário

Explicamos vários conceitos da linguagem VBScript, mas ainda não conseguimos interagir diretamente com o usuário (a não ser pelo uso da função nativa MsgBox). As principais funções que permitem isso são:

  1. MsgBox
  2. InputBox

Exemplo de utilização do InputBox

dim a

a=inputbox("Digite uma mensagem")
if(a="") then
msgbox "Você não digitou nada !"
else
msgbox "Você digitou:" & a
end if

Exemplo de calculadora

Dim a,b,c

a=inputbox("escolha uma operacao digitando: somar, subtrair, multiplicar ou dividir ")

if a = "somar" then

b=cint(inputbox ("digite o primeiro valor"))

c=cint(inputbox ("digite o segundo valor"))

msgbox b+c

end if

if a = "subtrair" then

b=inputbox ("digite o primeiro valor")

c=inputbox ("digite o segundo valor")

msgbox b-c

end if

if a = "multiplicar" then

b=inputbox ("digite o primeiro valor")

c=inputbox ("digite o segundo valor")

msgbox b*c

end if

if a = "dividir" then

b=inputbox ("digite o primeiro valor")

c=inputbox ("digite o segundo valor")

msgbox b/c

end if


Exemplo mais avançado com MsgBox

A função MsgBox possui alguns parâmetros opcionais. A sua sintaxe utilizando todos eles seria a seguinte:

MsgBox(prompt, [Buttons as VbMsgBoxStyle = OkOnly], [Title], [HelpFile], [Context]) as VbMsgBoxResult

O único parâmetro obrigatório é o prompt (mensagem a ser mostrada). Essa função também retorna um valor do tipo vbMsgBoxResult a depender da opção escolhida pelo usuário. Possíveis resultados:

  1. vbAbort
  2. vbCancel
  3. vbIgnore
  4. vbNo
  5. vbOK
  6. vbRetry
  7. vbYes

As opções a serem mostradas dependem do parâmetro buttons. Os principais valores são:

  1. vbAbortRetryIgnore
  2. vbCritical
  3. vbExclamation
  4. vbInformation
  5. vbOkCancel
  6. vbOkOnly (padrão)
  7. vbQuestion
  8. vbRetryCancel
  9. vbYesNo
  10. vbYesNoCancel


Outros projetos Wikimedia também contêm material sobre este tema:
Wikilivros Livros e manuais no Wikilivros