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