• Olá Visitante, se gosta do forum e pretende contribuir com um donativo para auxiliar nos encargos financeiros inerentes ao alojamento desta plataforma, pode encontrar mais informações sobre os várias formas disponíveis para o fazer no seguinte tópico: leia mais... O seu contributo é importante! Obrigado.

Tutorial de Visual Basic Script

helldanger1

GForum VIP
Entrou
Ago 1, 2007
Mensagens
29,631
Gostos Recebidos
1
Manual da linguagem de scripting de Microsoft para páginas web com a qual poderá aprender a realizar efeitos para o Internet Explorer. Explore as características do HTML Dinâmico com a linguagem do navegador mais habitual.
 

helldanger1

GForum VIP
Entrou
Ago 1, 2007
Mensagens
29,631
Gostos Recebidos
1
Introdução ao Visual Basic Script



Conheça o que é o scripting para páginas web, qua linguagens existem e como incrustar seus scripts nas páginas. Descubra a primeira utilidade da linguagem através de um exemplo prático.

Por Miguel Angel Alvarez - Tradução de JML




A linguagem para descrever páginas, HTML, fica limitada na hora de definir qualquer tipo de interatividade. Uma vez que tivermos explorado sua potência, necessitaremos aprender alguma linguagem nova para fazer pequenos efeitos ou interatividades.

Scripts
São os pequenos programinhas que, incrustados nas páginas, nos permitem definir aqueles efeitos ou interatividades.

Visual Basic Script
Neste manual trataremos de Visual Basic Script, uma linguagem compatível com Internet Explorer e outros sistemas Microsoft, que à princípio é uma vantagem é uma vantagem para programadores experientes nestes sistemas.

Outras linguagens
Existem dois tipos principais de linguagens de scripting, e uma infinidade de utilidades diferentes, mas vale destacar a linguagem Javascript por ser parecida em utilidade a VBScript, mas compatível com os dois navegadores mais habituais.
 

helldanger1

GForum VIP
Entrou
Ago 1, 2007
Mensagens
29,631
Gostos Recebidos
1
Como colocar scripts

Para colocar um script em uma página web utilizamos a etiqueta de HTML <SCRIPT>. Tudo que colocarmos entre essa etiqueta e a de fechamento, </SCRITP>, tem que ser código da linguagem de scripting que estivermos utilizando.
Também devemos indicar a linguagem com a qual estamos programando. No nosso caso, colocaremos: <script language="VBScript" >
---Aqui colocaremos nossos scripts---
</script>


Parece uma besteira, mas observem que a palavra language em inglês se escreve com dois "G": language. Se vocês errarem neste ponto, coisa bastante provável se escreverem rápido e distraídos, não funcionarão seus scripts, pois o navegador pensará que estão escritos em JavaScript.

Primeiro Script simples

Para terminar este capítulo vamos ver um primeiro exemplo de script em uma página web. O objetivo deste script é mostrar a data da última modificação do documento.
<html>
<head>
<title> A última modificação do documento</title>
</head>

<body>
<h1>Script da última modificação de um documento</h1>
<script language="VBScript">
document.write "Este documento foi atualizado pela última vez em: "
document.write document.lastmodified
</script>
</body>
</html>



A sentença document.write é um procedimento que escreve na página web o texto que recebe por parâmetro, o texto que está depois da sentença.
A variável document.lastmodified armazena a data e a hora da última atualização.
Este script dará como resultado que o documento lhe informe de sua última atualização, de uma maneira parecida a esta
 

helldanger1

GForum VIP
Entrou
Ago 1, 2007
Mensagens
29,631
Gostos Recebidos
1
Primeiros passos com a linguagem


Neste capítulo você poderá encontrar as primeiras pistas da programação dinâmica de páginas em VBScript. É uma lista das regras básicas da linguagem.

Por Miguel Angel Alvarez - Tradução de JML




As linguagens de scripting têm uma série de características comuns, estas costumam tornar a programação mais fácil para as pessoas inexperientes, mas a longo prazo podem se converter em uma fonte de erros. Vejamos quais são estas características, em concreto para VBScript.

Maiúsculas e minúsculas
Em VBScript não importa se utilizamos maiúsculas ou minúsculas na hora de escrever nosso código.

Variáveis
As variáveis são espaços onde se armazenam os dados que utilizam os programas ou scripts.
Não se declaram: em VBScript as variáveis não se devem ser declaradas, ou seja, quando necessitarmos uma variável, simplesmente a utilizamos e pronto. Mesmo assim, se desejarmos declarar uma variável utilizamos a palavra DIM
Não existem tipos: as variáveis não estão classificadas por tipos, isto quer dizer que podemos salvar nelas igualmente números ou letras ou outras coisas.

Quebras de linha
As quebras de linha são muito importantes. Expressam o final de uma instrução e o princípio da seguinte. Não se pode colocar duas instruções em uma mesma linha.

Comentários
Em VBScript os comentários são colocados com uma aspas simples '. Isto serve para que tudo o que se encontre nessa linha depois das aspas simples seja ignorado pelo explorador.
 

helldanger1

GForum VIP
Entrou
Ago 1, 2007
Mensagens
29,631
Gostos Recebidos
1
Exemplo de tudo isto

Vamos ver a seguir um simples script que serve de exemplo para tudo que foi dito anteriormente.
No exemplo a seguir abrem umas janelinhas com mensagens (sentença msgbox) sendo as mensagens o conteúdo da variável pepe. Durante o exemplo o valor da variável muda e logo volta a mostrar.
O exemplo demonstra que não importam as maiúsculas e minúsculas, e que é indiferente o tipo do conteúdo da variável, texto ou números.
<HTML>
<HEAD>
<TITLE>Exemplo2 Comentário, caixa alert e variáveis</TITLE>
</HEAD>
<BODY>
<script language=VBScript>
'Isto é um comentário
PEPE="OIquot;
msgbox(pepe)
pepe=3456
'NAO importam as maiusculas-minusculas
msgbox(PEPE)
</script>
</BODY>
</HTML>
 

helldanger1

GForum VIP
Entrou
Ago 1, 2007
Mensagens
29,631
Gostos Recebidos
1
Diferentes formas de executar scripts



Vamos aprender agora quais são as maneiras de executar scripts nas páginas e os casos para utilizar cada uma delas.

Por Miguel Angel Alvarez - Tradução de JML




Agora que você já sabe como incluir scripts nas suas páginas e alguns fundamentos da linguagem, vamos ver os dois casos em que o Internet Explorer pode executar seus scripts, e de passo damos uma primeira olhada no conceito do evento.

As formas de execução de VBScript são as seguintes:
Scripts que se executam enquanto o navegador abre a página.
Scripts que se executam como resposta à ação de um usuário.
O primeiro dos casos se utiliza quando quiser fazer algo enquanto o navegador está carregando a página. Por exemplo, poderia mostrar uma mensagem de boas vindas que apareça quando o usuário entrar na sua página, ou que o navegador lhe informe da última atualização do documento (tal como foi visto no capítulo 1).

O segundo caso é útil quando desejar realizar ações como resposta a eventos do usuário.

Os eventos são ações que ocorrem quando um usuário faz alguma coisa sobre a página web, ou seja, um evento poderia ser de um usuário que escreve algo em uma caixa de texto, ou que coloque o mouse em cima de um link, etc. Quase qualquer coisa que o usuário pode realizar dentro da página tem um evento relacionado.

Utilizando os eventos podemos preparar algum efeito que seja visível somente quando o usuário realizar alguma ação dentro da página web.
 

helldanger1

GForum VIP
Entrou
Ago 1, 2007
Mensagens
29,631
Gostos Recebidos
1
Exemplo de tudo isto

Vejamos agora um exemplo para compreender de vez as duas formas de execução dos scripts.

Vamos fazer com que o navegador nos diga seu número de versão e outros dados em uma caixa de diálogo. Vamos fazer de duas maneiras: enquanto o usuário carrega a página e quando ele apertar um botão.

Exemplo de execução ao carregar a página
Começamos pela execução de scripts quando o usuário carrega a página. Esta é a forma mais simples, e realmente você já deve conhecer vários exemplos disso pelo que foi visto nos capítulos anteriores.


<html>
<head>
<title>Script de execução direta</title>
</head>
<body>
Enquanto se carrega a página veremos
a versão do navegador em uma caixa de diálogo.
<script language=vbscript>
msgbox(navigator.appVersion)
</script>
</body>
</html>


Este exemplo não tem nenhum mistério, pois é muito parecido aos exemplos que realizamos. A única novidade é a variável navigator.appVersion. Esta armazena o que queremos que seja visto na caixa de diálogo: a versão do navegador.
 

helldanger1

GForum VIP
Entrou
Ago 1, 2007
Mensagens
29,631
Gostos Recebidos
1
Exemplo de execução como resposta à ação do usuário
Agora vejamos o que temos que fazer quando desejarmos que esta caixa de diálogo não apareça até que o usuário clique em um botão.



<html>
<head>
<title>Script de execução como resposta a um evento</title>
</head>
<body>
Clique o botão para ver a versão do navegador
<input type=button value=Clique aqui onclick="msgbox(navigator.appVersion)" language="vbscript">
</body>
</html>





Este exemplo tem algumas coisas novas que temos que destacar:
Cria-se um botão com a etiqueta <INPUT>
Acrescentamos o atributo onclick. Este serve para indicar (na linguagem de script) as ações que queremos realizar como resposta ao evento "click sobre o botão".
Acrescentamos o a atributo language para especificar a linguagem em que está escrito o código script associado aol evento.
Agora temos um botão que, quando se clica, executará o código que abre uma caixa de diálogo com a versão do navegador.
 

helldanger1

GForum VIP
Entrou
Ago 1, 2007
Mensagens
29,631
Gostos Recebidos
1
Declarar variáveis


Umas notas sobre a declaração de variáveis em VBScript que tinham ficado pendentes. Aprenda como fazer este passo evitando erros.

Por Miguel Angel Alvarez - Tradução de JML




Antes de passar a temas mais interessantes falta explicar a forma de declarar variáveis em VBScript. Dissemos antes que não era necessário declarar estas variáveis, mas pode ser um bom costume fazer para evitar erros.

Uma variável se declara utilizando a palavra DIM, vejamos como:

<script language="vbscript">
dim minha_nova_variavel

'Agora ja existe a variavel
'Seguidamente vou fazer uso dela

minha_nova_variavel = "Valor da variavel"
</script>




Como devemos lembrar não importa que tipo de informação vai conter a variável, sempre se declaram de forma igual.
 

helldanger1

GForum VIP
Entrou
Ago 1, 2007
Mensagens
29,631
Gostos Recebidos
1
Como devemos lembrar não importa que tipo de informação vai conter a variável, sempre se declaram de forma igual.

Option explicit
Pode-se utilizar a cláusula Option explicit para forçar a declaração de variáveis em nossos scripts. Se desejar evitar a possível fonte de erros que supõe a liberdade de não declarar as variáveis pode utilizar esta cláusula e fará com que seus scripts respondam com mensagens de erro se utilizar uma variável que não tiver declarado previamente. Vejamos seu uso com um exemplo:


<HTML>
<HEAD>
<TITLE>Option explicit</TITLE>
</HEAD>
<BODY>
<script language=vbscript>

option explicit

dim Pepe
pepe = 3
tomas = 87
</script>
</BODY>
</HTML>


Este script responderá com uma mensagem de erro quando se executar, pois a variável "tomas" não foi declarada antes de seu uso.
 

helldanger1

GForum VIP
Entrou
Ago 1, 2007
Mensagens
29,631
Gostos Recebidos
1
Tipos de dados


Vejamos agora quais são os tipos de dados que suporta VBScript.

Por Miguel Angel Alvarez - Tradução de JML


Visual Basic Script possui vários tipos de dados, mas na prática só possui um tipo de variável, que vai mudando de um estado a outro segundo a informação que introduzirmos dentro. Este tipo principal de dados é o tipo Variant, no qual podemos introduzir vários subtipos de dados com total liberdade.

Para mudar o subtipo de um variant, só temos que introduzir um dado na variável. A variável variant muda automaticamente de um subtipo a outro, sem que tenhamos que fazer nenhuma operação adicional. Os distintos subtipos de dados que temos são os seguintes:


Booleano
É um tipo de dados que contém um sim ou um não.
Correspondem-se:
TRUE equivale a (-1)
FALSE equivale a (0)


Byte
Numérico, inteiro sem sinal até 65.000

Currency
Tipo de moeda, utiliza-se para manipular de maneira exata valores monetários, e em geral qualquer cálculo que requeira uma precisão de até 15 dígitos decimais

Data
É um tipo de 64 bits de tamanho que armazena datas. Utiliza-se o formato americano: mês, dia, hora.

Double
Vírgula flutuante com dupla precisão (64 bits)
I
nteiro
Número inteiro, com sinal.
Desde -32.768 até 32.767
I
nteiro longo
Este tipo é um valor inteiro com sinal de dupla precisão. Como os novos computadores trabalham com palavras de 32 bits, e não menos, recomenda-se usar este tipo antes do tipo inteiro normal.

Objeto
O subtipo de objeto é uma referência de ponteiro de 32 bits a uma instância de objeto de automatização OLE. Os controles Active-X e Java. Utilizam esta sintaxe:
Set meuobjeto = new oleObjeto

Single
Vírgula flutuante de precisão simples

Cadeia
Conjunto contínuo de valores de caracteres, de longitude variável.
 

helldanger1

GForum VIP
Entrou
Ago 1, 2007
Mensagens
29,631
Gostos Recebidos
1
Segundo o tipo de dados que achar na variável, VarType devolverá um valor diferente, como indica esta tabela:
Constant------- Value----------- Description
vbEmpty------- 0----------------- Empty (uninitialized)
vbNull---------- 1----------------- Null (no valid data)
vbInteger-------2----------------- Integer
vbLong--------- 3----------------- Long integer
vbSingle --------4---------------- Single-precision floating-point number
vbDouble------- 5---------------- Double-precision floating-point number
vbCurrency------ 6---------------- Currency
vbDate--------- 7------------------------ Date
vbString --------8------------------------ String
vbObject------- 9----------------------- Automation object
vbError---------- 10--------------------- Error
vbBoolean------ 11---------------------- Boolean
vbVariant------- 12------------- Variant (used only with arrays of Variants)
vbDataObject----- 13-------------------- A data-access object
vbByte---------- 17------------------------- Byte
vbArray--------- 8192---------------------------- Array
 

helldanger1

GForum VIP
Entrou
Ago 1, 2007
Mensagens
29,631
Gostos Recebidos
1
Operadores I – Aritméticos



Vejamos os operadores aritméticos que podemos utilizar em Visual Basic Script.

Por Miguel Angel Alvarez - Tradução de JML


Visual Basic Script, como qualquer linguagem de programação, tem um conjunto de operadores, divididos em várias seções:

Operadores Aritméticos

Que suportam as operações matemáticas mais simples.
+ Soma
- Subtração
* Multiplicação
/
Divisão em vírgula flutuante. É a divisão normal.
Devolve um número real se for o resultado
\
Divisão de inteiros
Devolve um número inteiro, resultado da divisão.
^ Potência
Mod
Resto da divisão


Vejamos a seguir um exemplo de script que realiza ações com estes operadores:


dim v1

dim v2

v1 = 34

v2 = 43

soma = v1 + v2

subtracao = v1- v2

potencia = v1 ^ v2

divisaoInteiros = v1 \ v2

msgbox(divisaoInteiros)

DivisaoReal = v1 /v2

msgbox(divisaoReal)

A função msgbox serve para mostrar um valor em uma janelinha de alerta típica de Windows.
 

helldanger1

GForum VIP
Entrou
Ago 1, 2007
Mensagens
29,631
Gostos Recebidos
1
Operadores II – Comparação


Vemos neste capítulo os diferentes operadores de comparação de Visual Basic Script.

Por Miguel Angel Alvarez - Tradução de JML




Para realizar comparações, Visual Basic Script possui os seguintes operadores:
= <> Igual e diferente
> < Maior que e menor que
>= <= Maior ou igual que e menor ou igual que


Vejamos a seguir um exemplo de script que realiza operações de comparação, embora antes de vê-lo deveríamos pontuar que os operadores de comparação costumam ser utilizados dentro de uma estrutura condicional, que avalia uma expressão com estes comparadores e realiza ações dependendo do resultado dessas comparações. Por este motivo incluímos no script a estrutura condicional IF que veremos com profundidade mais adiante.


preco = 20000

dinheiroAtual = 3500

if (dinheiroAtual = preco) then

msgbox ("está certinho")

end if

if (dinheiroAtual < preco) then

msgbox ("falta dinheiro")

end if
 

helldanger1

GForum VIP
Entrou
Ago 1, 2007
Mensagens
29,631
Gostos Recebidos
1
Operadores III lógicos e cadeias



Neste último capítulo de operadores vamos ver os relacionados com as operações lógicas e as operações de concatenação de cadeias.

Por Miguel Angel Alvarez - Tradução de JML




Operadores lógicos

Os operadores lógicos se utilizam sobre expressões booleanas e nos devolvem um valor booleano (verdadeiro ou falso) resultado dessa operação. Um matiz seria que não é necessário que as parcelas relacionadas no cálculo sejam variáveis booleanas, podendo ser de qualquer tipo.

Como operadores lógicos enmVisual Basic Script temos:
AND E lógico
OR OU lógico
Xor Xor
Not NÃO lógico


Operadores de cadeias

Como operador de cadeias de caracteres em Visual Basic Script temos um único exemplo: a concatenação. O operador para concatenar cadeias é o &. Vejamos um exemplo de utilização deste operador:

cadeia1 = "Oi "

cadeia2 = "Zé!"

concatenar = cadeia1 & cadeia2

msgbox (concatenar)
 

helldanger1

GForum VIP
Entrou
Ago 1, 2007
Mensagens
29,631
Gostos Recebidos
1
Estruturas de controle



Vemos o que são as estruturas de controle e as que temos disponíveis com a linguagem VBScript.

Por Miguel Angel Alvarez - Tradução de JML




As estruturas de controle nos permitem realizar ações típicas em nossos scripts como podem ser os loops ou a tomada de decisões.

VBScript tem as estruturas de controle típicas das linguagens de programação. Veremos nos seguintes capítulos a sintaxe e a maneira de trabalhar destas estruturas detalhadamente:

Condicionais
IF, condicional que decide entre sim/não
CASE, outra condicional com várias possibilidades
Loops
FOR, repetição um determinado número de vezes
FOR EACH, repetição para um conjunto de elementos
WHILE...WEND, repetição enquanto ocorra alguma coisa
DO...LOOP, repetição um determinado número de vezes
 

helldanger1

GForum VIP
Entrou
Ago 1, 2007
Mensagens
29,631
Gostos Recebidos
1
Estrutura IF



Vemos todos os diferentes usos de IF, com enunciados ELSE e ELSEIF.

Por Miguel Angel Alvarez - Tradução de JML






A estrutura de controle IF permite decidir entre duas opções resultantes da avaliação de uma sentença. Se a avaliação for positiva se faz uma coisa, também podemos especificar ações para realizar no caso de que a avaliação seja negativa. Veamos cómo funciona en VBscript. IF (expresion) then
Sentencias


....
END IF

Vemos que em primeiro lugar temos a sentença IF, logo uma expressão, que pode ou não ir entre parênteses, e mais tarde a palavra THEN. Vemos que logo há uma quebra de linha antes de colocar as sentenças associadas à avaliação positiva da sentença. Em VBScript as linhas sim que importam.
Depois de colocar as sentenças associadas à avaliação positiva colocamos um END IF, para acabar a estrutura do IF.
 

helldanger1

GForum VIP
Entrou
Ago 1, 2007
Mensagens
29,631
Gostos Recebidos
1
Enunciado ELSE

Opcionalmente pode-se colocar uma série de sentenças associadas à avaliação negativa da expressão. Estas sentenças devem ser colocadas depois da ordem ELSE e antes do END IF.
IF (expresion) then
Sentencas
....
ELSE
Sentencas
....
END IF



Enunciado ELSEIF

Em Visual Basic Script existe a possibilidade de utilizar um enunciado especial no lugar onde utilizaríamos um ELSE. Serve para encadear sentenças IF de modo que em um resultado negativo de um IF se possa avaliar outra expressão, que teria por sua vez outros enunciados THEN e provavelmente ELSE ou outro ELSEIF. Poderia ser visto em um exemplo com mais facilidade:
IF (expressao1) then
Sentencas1
....
ELSEIF (expressao2) then
Sentencas2
....
ELSEIF (expressao3) then
Sentencas3
....
ELSE
Sentencas4
....
END IF



Avalia-se a primeira expressão, no caso positivo executam-se as sentenças1, no caso negativo avalia-se a expressão 2. Se a expressão 2 for positiva executam-se as sentenças 2 em caso negativo avaliamos a expressão 3 com o seguinte ELSEIF. Tudo acaba em um ELSE neste exemplo, porém o ELSE final não é obrigatório.
 

helldanger1

GForum VIP
Entrou
Ago 1, 2007
Mensagens
29,631
Gostos Recebidos
1
Estrutura CASE



Vemos a sentença CASE em VBScript, com exemplos sobre seu funcionamento.

Por Miguel Angel Alvarez - Tradução de JML




Com a estrutura de controle CASE podemos avaliar uma variável e realizar ações dependendo do valor desta. A diferença com o IF consiste em que o número de possibilidades da avaliação desta variável não tem porque ser sim ou não, podendo fazer coisas para um número indeterminado de valores.

A sintaxe é a seguinte: SELECT CASE (variavel)
CASE (valor1):
(acao para caso valor1)
CASE (valor3):
(acao para caso valor2)
CASE (valor3):
(acao para caso valor3)
CASE ELSE:
(acao em caso de que nao se cumpra nenhum anterior caso)
END SELECT



Funciona assim, primeiro se avalia a variável, se essa variável tiver como valor o valor1 realizamos as ações associadas ao valor1. Se tiver o valor2, executamos as ações relacionadas com este valor3. Assim com quantos valores desejarmos. Por último temos um ELSE para realizar ações no caso de que não tivessem sido nenhum dos valores anteriores. Este ELSE é opcional.
 

helldanger1

GForum VIP
Entrou
Ago 1, 2007
Mensagens
29,631
Gostos Recebidos
1
Vejamos com um exemplo esta sentença muito simples. O primeiro que faz é solicitar um número e logo informa o dia da semana com o que corresponde. Se o número não for do um ao sete, informa isso também.
dim dia


dia = inputbox ("diz um dia da semana")
SELECT CASE dia
CASE 1:
msgbox("O dia é SEGUNDA")
CASE 2:
msgbox("O dia é TERÇA")
CASE 3:
msgbox("O dia é QUARTA")
CASE 4:
msgbox("O dia é QUINTA")
CASE 5:
msgbox("O dia é SEXTA")
CASE 6:
msgbox("O dia é SABADO")
CASE 7:
msgbox("O dia é DOMINGO")
CASE ELSE:
msgbox("Tem que ser um dia da semana em número, do 1 ao 7")
END SELECT
 
Topo