Tutorial VBScript

Transcrição

Tutorial VBScript
Tutorial
de
VBScript
Escola Filipa de Vilhena
Por:
Prof. Luís Moreira
Ap.I. - ano lectivo 2005/06
Tutorial de VBScript
VBScript é uma linguagem de scripting da Microsoft.
Neste tutorial pretende-se explicar os principios básico da linguagem, como se insere estes
scripts mas páginas HTML e como tornar os páginas da web mais dinâmicas e interactivas.
Introdução ao VBScript
O que é o VBScript?
●
●
●
VBScript é uma linguagem de scripting
Uma linguagem de scripting é uma linguagem de programação mais leve.
VBScript é uma versão mais leve da linguagem de programação do Visual Basic.
Como funciona o VBScript
Quando VBScript é inserida no documento HTML, o browser irá ler o HTML e interpretar o
VBScript. O VBScript pode ser executado imediatamente, ou mais tarde num evento.
Como se coloca código VBScript num documento HTML?
Exemplo 1:
<html>
<body>
<script type="text/vbscript">
document.write("Hello from VBScript!")
</script>
</body>
</html>
Figura 1
Para inserir código VBScript usa-se a tag script seguida da indicação do tipo de linguagem a
usar. O exemplo (código e a figura 1) acima demonstra como se escreve texto através do VBScript
num documento HTML.
Como se coloca texto formatado através do VBScript?
Exemplo 2:
<html>
<body>
<script type="text/vbscript">
document.write("<h1>Hello World!</h1>")
document.write("<h2>Hello World!</h2>")
</script>
</body>
</html>
Figura 2
O exemplo 2 descreve a forma como se insere código VBScript usando formatação. Na figura 2
está representada a forma como o código será apresentada no browser, isto é, como será a saída
(output) do script.
Sempre que se insere um script no documento HTML terá que se usar a tag <script> e usar o
atributo type para definir qual linguagem que se irá usar.
Para escrever algum texto na página usa-se o comando document.write do VBScript, e entre
parentes e entre aspas escreve-se o texto desejado.
document.write("Hello from VBScript!")
para terminar o script usa-se a seguinte terminação </script>
Como se procede para browsers antigo?
Tal como para o CSS usa-se os comentários para HTML para que a página possa carregar
normalmente sem erros.
<script type="text/vbscript">
<!-some statements
-->
</script>
Onde se deve colocar o código VBScript
O código VBScript pode ser colocado no cabeçalho da página <head> ... </head>.
Normalmente coloca-se todas as funções no cabeçalho. A razão para isso é para que estas
carreguem antes efectuar as chamada às funções.
O código pode ser também colocado na secção do corpo da página <body> ... </body>.
Os script do corpo da página só são executados quando a página é carregada.
Onde se deve colocar os scripts?
Os script na página serão executados logo que a página carrega no browser. Muitas das vezes
não é isto que se quer. Ás vezes o que se pretende é que os script sejam executados quando o
utilizador prima um evento.
Os scripts na secção head: este scripts são para ser executados quando são chamados ou para
ser executados quando um evento é activado. Quando se coloca um script na secção head assegurase que o script é carregado antes de alguém o usar.
<html>
<head>
<script type="text/vbscript">
some statements
</script>
</head>
Os scripts na secção body: estes scripts são para ser executados quando a página é carregada.
Quando se coloca estes scripts na secção body este é gerado no conteudo da página.
<html>
<head>
</head>
<body>
<script type="text/vbscript">
some statements
</script>
</body>
Scripts na secção body e na secção head: pode-se colocar um numero infinito de scripts num
documento, portante pode-se ter scripts na secção body e na secção head.
<html>
<head>
<script type="text/vbscript">
some statements
</script>
</head>
<body>
<script type="text/vbscript">
some statements
</script>
</body>
Variáveis no VBScript.
O que é uma variável?
Uma variável é usada para guardar informação. Será então um recipiente para informação que se
quer guardar. Um valor da variável pode alterar-se durante o script. Poderá-se referir à variável
através do nome para ver o seu valor ou para alterar o seu valor. No VBScript, todas as variáveis
são do tipo variant, isto é, podem guardar diferentes tipos de dados.
Regras para os nomes das variáveis.
●
●
●
Terá que começar por uma letra.
Não pode ter pontos (.).
O numero de caracteres não pode exceder os 255.
Declaração de variáveis.
No VBScript pode ser declarado variáveis com a declaração Dim, Plubic ou Private:
por exemplo:
dim name
name=some value
Agora que se criou a variável, na qual o nome da calvário é “name”. Poderá-se também declarar
variáveis atribuindo os nomes no script, por exemplo:
name=some value
A variável criada no script tem o nome “name”.
Contudo, este ultimo método não é uma boa prática, porque poderá-se esquecer ou digitar mal o
nome da variável no script, o que pode causar erros estranhos durante a execução do script. Por
exemplo digitando em vez de “name” a variável com o nome “nime” o script cria automaticamente
uma variável com o nome “nime”. Para prevenir o script de fazer isto poderá-se usar a declaração
Option Explicit. Quando se usa esta declaração terá que se declarar todos as variáveis com a
declaração dim, public ou private. Coloca-se a declaração Option Explicit no topo do script, como
no exemplo seguinte:
option explicit
dim name
name=some value
Atribuir valores às variáveis
Pode atribuir valores às variáveis da seguinte forma:
name="Hege"
i=200
O nome da variável fica do lado esquerdo da expressão e o valor que se quer atribuir fica do
lado direito do sinal de igual. Agora a variável “name” fica com o valor “Hege”.
Tempo de duração das variáveis
Quanto tempo é que uma variável existe?
Quando se declara uma variável dentro de um procedimento, esta só pode ser acedida dentro
desse procedimento. Quando se sai do procedimento a variável é destruída. Estas variáveis são
chamadas de variáveis locais. Pode-se ter variáveis locais com o mesmo nome em diferentes
procedimentos, porque cada um só reconhece a variável no procedimento que a variável está
declarada.
Se declararmos a variável fora do procedimento, qualquer procedimento na página poderá
aceder a ela. O tempo de vida destas variáveis começa quando estas são declaradas, e acabam
quando a página é fechada.
Variáveis em array
Ás vezes pretende-se atribuir mais do que um valor a uma váriavel. Pode-se criar uma variável
que contenha uma série de valores. Estas variáveis são chamadas array. Para declarar um array usase parentesis ( ) seguidos do nome da variável. No próximo exemplo, um array é declarado e
contém 3 elementos:
dim names(2)
O numero entre os parentesis é 2. Este começa em zero logo este array contém 3 elementos. Este
array é fixo. Pode-se atribuir dados aos vários elementos do array da seguinte forma:
names(0)="Tove"
names(1)="Jani"
names(2)="Stale"
Similarmente, os dados podem ser lidos dos elementos do array usando o indice do elemento
correspondente do array. Por exemplo:
mother=names(0)
Pode-se ter um array até 60 dimensões. Múltiplas dimensões são declaradas através da
separação dos números entre parentesis por virgulas. De seguida temos um array bidimensional que
consiste em 5 linhas por 7 colunas:
dim table(4, 6)
Procedimentos VBScript
Há dois tipos de procedimentos em VBScript: os Sub procedimentos e as funções
procedimentos.
Um Sub Procedimento:
● é uma serie de declarações, entre as palavras de Sub e End Sub.
●
●
●
Podem efectuar acções, mas não retornam valores;
Podem ter argumentos que são inseridos durante o procedimento chamado.
Se não tiverem argumentos, devem incluir parentesis ( ).
Sub mysub()
some statements
End Sub
ou
Sub mysub(argument1,argument2)
some statements
End Sub
O procedimento função:
●
●
●
●
●
é uma série de declarações, entre palavras de Function e End Function.
Podem efectuar acções e retornar valores;
Podem ter argumentos que são passados para o procedimento chamado;
Sem argumentos, terá que se incluir parentesis ( );
retorna o valor atribuindo o valor ao seu nome.
Function myfunction()
some statements
myfunction=some value
End Function
ou
Function myfunction(argument1,argument2)
some statements
myfunction=some value
End Function
Efectuar uma chamada a um procedimento Sub ou Function
Quando se faz uma chamada a uma função no código, é feito da seguinte forma:
name = findname()
Onde a função chamada é “findname”, e a função retorna um valor que será visualizado numa
caixa de mensagem.
Ou, poderá se fazer também:
msgbox "Your name is " & findname()
Aqui também se chama a função chamada “findname”, a função retorna um valor que será
visualizado numa caixa de mensagem.
Quando se chama um procedimento Sub poderá-se usar a palavra Call, como a seguinte forma:
Call MyProc(argument)
Ou, omite-se a palavra Call, como por exemplo:
MyProc argument
Exemplo de um procedimento Sub:
Exemplo de um procedimento function:
Declarações condicionais
Muitas vezes quando escreve-se código, queremos efectuar diferentes acções para as diferentes
decisões. Pode-se usar declarações condicionais no código para fazer isso.
No VBScript temos as seguintes declarações condicionais:
Condição if – usada quando se quer decidir se a condição a executar é verdadeira ou falsa.
Condição if ...then...else – usada quando se quer decidir entre duas condições e usar uma delas.
Condição if...then...else – usada quando se quer decidir entre várias condições a executar.
Condição case – usado quando se quer executar uma determinada linha da condição.
If....Then.....Else
Deve ser usado quando queremos:
● Executar algum código se a condição é verdadeira;
● Seleccionar um de dois blocos de código a executar.
Se se quiser executar só uma condição quando esta for verdadeira, pode se escrever o seguinte:
if i=10 Then msgbox "Hello"
Neste caso não há nenhum ...else ... no sintaxe. Poderá escrever código para executar uma só
acção (neste caso: se i=10 escreve a mensagem Hello).
Se se quiser executar mais do que uma declaração quando a condição é verdadeira, deve-se
colocar cada declaração em linhas separadas e terminar a declaração com a palavra “End if”.
if i=10 Then
msgbox "Hello"
i = i+1
end If
Aqui não há nenhum ...else... no sintaxe também. No código só dizemos para efectuar duas
acções se a condições for verdadeira.
Se se quiser executar a declarações se a condição for verdadeira executar outra se a condição
não for, terá se se aplicar a palavra Else.
if i=10 then
msgbox "Hello"
else
msgbox "Goodbye"
end If
O primeiro bloco de código é executado se a condição é verdadeira, e o outro bloco será
executado se o primeiro não o for (se i não for igual a 10).
If....Then.....Elseif
Pode-se usar a a declaração If....Then.....Elseif se se quiser seleccionar de vários blocos de
código um bloco.
Exemplo:
if payment="Cash" then
msgbox "You are going to pay cash!"
elseif payment="Visa" then
msgbox "You are going to pay with visa."
elseif payment="AmEx" then
msgbox "You are going to pay with
American Express."
else
msgbox "Unknown method of payment."
end If
O seleccionador select CASE
Se se quiser também seleccionar um de vários blocos de código podemos usar o select case, da
seguinte forma:
select case payment
case "Cash"
msgbox "You are going to pay cash"
case "Visa"
msgbox "You are going to pay with visa"
case "AmEx"
msgbox "You are going to pay with
American Express"
case Else
msgbox "Unknown method of payment"
end select
Como é que funciona o select case: primeiro temos um expressão simples ( a maior parte das
vezes é uma variável), que é avaliada. O valor da expressão é comparado com cada valor do case na
estrutura. Se coincidir, o bloco de código associado com esse case é executado.
Exemplos:
●
If....Then.....Else
●
If....Then.....Elseif
●
Select Case
Declarações de ciclos
Muitas vezes quando se escreve código, queremos que o mesmo bloco de código corra várias
vezes. Para isso pode-se usar a declarações de ciclos (loop) no código.
No VBScript tem-se as seguintes declarações:
For...Next – para correr as código um numero determinado de vezes.
For Each...Next – para correr o código por cada vez que o item no conjunto de cada
elemento de um array.
● Do...Loop – efectua o ciclo enquanto a condição é verdadeira.
● While...Wend – Não se deve usar – deve-se sim usar em vez desta a declaração
Do...Loop.
●
●
For...Next
Pode-se usar a declaração For...Next para correr um bloco de código, quando se sabe quantas
repetições se deverá fazer.
Pode-se inserir uma variável de contagem, que incrementa ou decrementa à medida que as
repetições vão sendo feitas, como por exemplo:
For i=1 to 10
some code
Next
A declaração For especifica o valor inicial e final da variável de contagem (i).
A declaração Next incrementa a variável de contagem de um.
Palavras chave de passo (Step keyword)
Usando o step, pode-se incrementar ou decrementar a variável de contagem de um valor
especifico da do pelo programador.
No próximo exemplo, a variável de contagem (i) é incrementada de 2 vezes cada vez que o ciclo
se repete.
For i=2 To 10 Step 2
some code
Next
Para decrementar a váriavel de contagem, usa-se um valor negativo para o Step. Tem-se que
especificar, neste caso, o valor final menor que o valor inicial para o variável de contagem.
No exemplo abaixo, a variável de contagem (i) é decrementada de 2 vezes cada vez que o ciclo
se repete.
For i=10 To 2 Step -2
some code
Next
Exit a For...Next
Pode-se ainda usar o sair (exit) para numa determinada declaração sair do ciclo.
For Each...Next
O ciclo For Each...Next repete um bloco de código por cada item no conjunto, ou cada elemento
do array.
Este ciclo é quase igual ao For...Next. A diferença é que não há um numero especifico de itens
que se quer fazer o cliclo.
Do...Loop
Pode-se usar o ciclo Do...Loop para correr um bloco de código no qual não se sabe quantas
repetições se poderá fazer. Este bloco é repetido enquanto a condição for verdadeira ou enquanto a
condição não se torna verdadeira.
Repetindo código enquanto a condição é verdadeira.
Usa-se a palavra chave while para verificar a condição na declaração do ciclo Do...Loop.
Do While i>10
some code
Loop
Se i é igual a 9, o código dentro do loop acima não será executado.
Do
some code
Loop While i>10
O código dentro do loop será executado pelo menos uma vez, mesmo que i seja menos de 10.
Repetindo código enquanto a condição não é verdadeira.
Usa-se a palavra chave Until para verificar a condição na declaração Do...Loop.
Do Until i=10
some code
Loop
Se i for igual a 10, o código dentro do loop nunca será executado.
Do
some code
Loop Until i=10
O código dentro do loop será executado pelo menos uma vez, mesmo se i for igual a 10.
Exit a Do...Loop
Pode-se sair de um ciclo Exit a Do...Loop com a palavra chave Exit.
Do Until i=10
i=i-1
If i<10 Then Exit Do
Loop
O código dentro do loop será executado enquanto i for diferente de 10, e maior que 10.
Exemplos:
●
For...Next
●
For...Next com cabeçalhos
●
For Each...Next
●
Do While...Loop
O que foi aprendido em VBScript.
Este tutorial ensinou-lhe como se adiciona VBScript às páginas HTML, para fazer os seus web
sites mais dinâmicos e interactivos.
Aprendeu-se como criar variaveis e funções, e como fazer diferentes scripts correr dependendo
dos diferentes cenários.
Em anexo acrescentam-se ao tutorial o conjunto das funções embutidas do VBScript.
Anexo
Date/Time
functions
• Conversion
functions
• Format functions
•
•
•
Math functions
Array functions
•
•
String functions
Other functions
Date/Time Functions
Function
CDate
Date
DateAdd
DateDiff
DatePart
DateSerial
DateValue
Day
FormatDateTime
Hour
IsDate
Minute
Month
MonthName
Now
Second
Time
Timer
TimeSerial
TimeValue
Weekday
WeekdayName
Year
Description
Converts a valid date and time expression to the variant of
subtype Date
Returns the current system date
Returns a date to which a specified time interval has been added
Returns the number of intervals between two dates
Returns the specified part of a given date
Returns the date for a specified year, month, and day
Returns a date
Returns a number that represents the day of the month (between 1
and 31, inclusive)
Returns an expression formatted as a date or time
Returns a number that represents the hour of the day (between 0
and 23, inclusive)
Returns a Boolean value that indicates if the evaluated expression
can be converted to a date
Returns a number that represents the minute of the hour (between
0 and 59, inclusive)
Returns a number that represents the month of the year (between
1 and 12, inclusive)
Returns the name of a specified month
Returns the current system date and time
Returns a number that represents the second of the minute
(between 0 and 59, inclusive)
Returns the current system time
Returns the number of seconds since 12:00 AM
Returns the time for a specific hour, minute, and second
Returns a time
Returns a number that represents the day of the week (between 1
and 7, inclusive)
Returns the weekday name of a specified day of the week
Returns a number that represents the year
Top
Conversion Functions
Function
Asc
CBool
CByte
CCur
CDate
CDbl
Chr
CInt
CLng
CSng
CStr
Hex
Oct
Description
Converts the first letter in a string to ANSI code
Converts an expression to a variant of subtype Boolean
Converts an expression to a variant of subtype Byte
Converts an expression to a variant of subtype Currency
Converts a valid date and time expression to the variant of
subtype Date
Converts an expression to a variant of subtype Double
Converts the specified ANSI code to a character
Converts an expression to a variant of subtype Integer
Converts an expression to a variant of subtype Long
Converts an expression to a variant of subtype Single
Converts an expression to a variant of subtype String
Returns the hexadecimal value of a specified number
Returns the octal value of a specified number
Top
Format Functions
Function
FormatCurrency
FormatDateTime
FormatNumber
FormatPercent
Math Functions
Function
Abs
Atn
Cos
Exp
Hex
Int
Fix
Log
Oct
Rnd
Sgn
Description
Returns an expression formatted as a currency value
Returns an expression formatted as a date or time
Returns an expression formatted as a number
Returns an expression formatted as a percentage
Top
Description
Returns the absolute value of a specified number
Returns the arctangent of a specified number
Returns the cosine of a specified number (angle)
Returns e raised to a power
Returns the hexadecimal value of a specified number
Returns the integer part of a specified number
Returns the integer part of a specified number
Returns the natural logarithm of a specified number
Returns the octal value of a specified number
Returns a random number less than 1 but greater or equal to 0
Returns an integer that indicates the sign of a specified number
Sin
Sqr
Tan
Array Functions
Function
Array
Filter
IsArray
Join
LBound
Split
UBound
String Functions
Function
InStr
InStrRev
LCase
Left
Len
LTrim
RTrim
Trim
Mid
Replace
Right
Space
StrComp
Returns the sine of a specified number (angle)
Returns the square root of a specified number
Returns the tangent of a specified number (angle)
Top
Description
Returns a variant containing an array
Returns a zero-based array that contains a subset of a string array
based on a filter criteria
Returns a Boolean value that indicates whether a specified
variable is an array
Returns a string that consists of a number of substrings in an array
Returns the smallest subscript for the indicated dimension of an
array
Returns a zero-based, one-dimensional array that contains a
specified number of substrings
Returns the largest subscript for the indicated dimension of an
array
Top
Description
Returns the position of the first occurrence of one string within
another. The search begins at the first character of the string
Returns the position of the first occurrence of one string within
another. The search begins at the last character of the string
Converts a specified string to lowercase
Returns a specified number of characters from the left side of a
string
Returns the number of characters in a string
Removes spaces on the left side of a string
Removes spaces on the right side of a string
Removes spaces on both the left and the right side of a string
Returns a specified number of characters from a string
Replaces a specified part of a string with another string a
specified number of times
Returns a specified number of characters from the right side of a
string
Returns a string that consists of a specified number of spaces
Compares two strings and returns a value that represents the result
of the comparison
String
StrReverse
UCase
Other Functions
Returns a string that contains a repeating character of a specified
length
Reverses a string
Converts a specified string to uppercase
Top
Function
CreateObject
Eval
GetLocale
GetObject
GetRef
Description
Creates an object of a specified type
Evaluates an expression and returns the result
Returns the current locale ID
Returns a reference to an automation object from a file
Allows you to connect a VBScript procedure to a DHTML event
on your pages
InputBox
Displays a dialog box, where the user can write some input and/or
click on a button, and returns the contents
IsEmpty
Returns a Boolean value that indicates whether a specified
variable has been initialized or not
IsNull
Returns a Boolean value that indicates whether a specified
expression contains no valid data (Null)
IsNumeric
Returns a Boolean value that indicates whether a specified
expression can be evaluated as a number
IsObject
Returns a Boolean value that indicates whether the specified
expression is an automation object
LoadPicture
Returns a picture object. Available only on 32-bit platforms
MsgBox
Displays a message box, waits for the user to click a button, and
returns a value that indicates which button the user clicked
RGB
Returns a number that represents an RGB color value
Round
Rounds a number
ScriptEngine
Returns the scripting language in use
ScriptEngineBuildVersi
Returns the build version number of the scripting engine in use
on
ScriptEngineMajorVers
Returns the major version number of the scripting engine in use
ScriptEngineMinorVers
Returns the minor version number of the scripting engine in use
SetLocale
TypeName
VarType
Sets the locale ID and returns the previous locale ID
Returns the subtype of a specified variable
Returns a value that indicates the subtype of a specified variable
ion
ion

Documentos relacionados