(Parte 3 de 5)

As funções de conversão de dados foram criadas para evitar erros em tempo de execução ou mesmo de lógica por sua aplicação não reconhecer o tipo de dados pelas configurações. Estas funções conseguem reconhecer as configurações regionais e interagir com vários formatos diferentes de dados sem mudá-los, evitando que erros ocorram.

A tabela abaixo descreve as funções que permitem a conversão de dados:

Função Valor Retornado Descrição Cbool Boolean Verdadeiro/Falso CbyteByteValor numérico de 0 até 255

CdateDateQualquer data válida

CdblDouble-1.79769313486232E308 até - 4.94065645841247E-324 para valores negativos; 4.94065645841247E-324 até 1.79769313486232E308 para valores positivos.

CintInteger–32,768 até 32,767. Frações são arredondadas.

CLngLong–2,147,483,648 até 2,147,483,647. Frações são arredondadas.

CSngSingle-3.402823E38 até -1.401298E-45 para números negativos; 1.401298E-45 até 3.402823E38 para números positivos

CStrStringRetorna texto, exceto Null

<% Dim teste Dim Mensagem teste = 25 if teste = 30 then Mensagem = “O valor de Teste é igual a 30”

Else Mensagem = “O valor de Teste é igual a 25”

‘ Declaramos duas variáveis do tipo Variant, onde Teste assume um valor inteiro e Mensagem assume o valor string.

Capítulo V – Variáveis

Desenvolvimento de Aplicações para Internet – Plataforma Microsoft Página 25

Identificando o Tipo de Dados

Como o VBScript consegue identificar uma série de subtipos de variáveis, será necessário, às vezes, que você saiba qual o subtipo com o qual você está trabalhando no seu script. Para isso, usaremos a função VarType que identifica o subtipo por um valor numérico. A tabela abaixo descreve os valores retornados pela função:

Subtipo Valor Retornado Empty 0 Null 1 Integer 2 Long 3 Single 4 Double 5 Currency 6 Date (Time)7 String 8 Automation Object9 Error 10 Boolean 1 Variant 12 Non-Automation Object 13 Byte 17 Array 8192

<%Dim teste, Mensagem, ResultMedia

Exemplo

Function Media(Valor)

Dim Retorna, cont Retorna = 1 For cont = 1 to Valor

Retorna = Retorna * Cont

Next Media = Retorna End Function teste = 5 if teste = 5 then

Mensagem = "O valor da variável Teste é igual a 5"

End if ResultMedia = Media(teste) %> <HTML><BODY><center><b>

<FONT COLOR="#008000">O tipo que variável <i>Teste</i> assumiu foi: <% = VarType(teste) %></FONT><BR>

<FONT COLOR="#0000C0">O tipo que variável <i>Mensagem</i> assumiu foi: <% = VarType(Mensagem) %></FONT><BR>

<FONT COLOR="#400040">O tipo que variável <i>ResultMedia</i> assumiu foi: <% = VarType(ResultMedia) %></FONT><BR>

<FONT COLOR="#0F">As variáveis Retorna e Cont não podem ser referenciadas, pois existem apenas quando a Função Media está sendo executada.</FONT>

Capítulo V – Variáveis

Desenvolvimento de Aplicações para Internet – Plataforma Microsoft Página 26

Para verificar o subtipo de dados que a variável teste assumiu, utilize o código script: <% = VarType(teste) %> que já retornará o valor numérico correspondente ao subtipo assumido. No caso da variável teste, o valor retornado é 2, que indica o subtipo Integer.

Não podemos referenciar as variáveis cont e Retorna, pois estas variáveis existem apenas para a função, para o restante do script são inválidas.

O resultado retornado pelo servidor:

Declaração de Variáveis

Quando declaramos variáveis, precisamos ter em mente a sua utilização: se será uma variável que deverá ser utilizada por toda uma aplicação ou apenas por um módulo, uma função, subrotina. Este “período de vida” da variável é flexível, ou seja, você pode definir onde, quando e por quanto tempo esta variável deverá existir.

Escopo das variáveis

As variáveis no VBScript podem existir em dois níveis ou escopos: script ou procedimento. O termo escopo está relacionado ao espaço de tempo no qual uma memória pode ser referenciada na memória. O espaço de tempo, que se refere ao “tempo de vida” da variável, depende em qual nível esta variável foi declarada:

Script

Quando uma variável é definida fora de qualquer função e procedimento, é caracterizada uma variável válida para todo o script.

Procedimento

Quando você verificar que uma variável precisa ser apenas válida para uma função ou procedimento, declare-a dentro deste procedimento ou função. Desta maneira, assim que a função ou procedimento for executado, a variável deixa de existir na memória.

Capítulo V – Variáveis

Desenvolvimento de Aplicações para Internet – Plataforma Microsoft Página 27

Exemplo (o que é importante até este ponto que estudamos, está em negrito)

O resultado deste ASP será a página:

<%Dim teste

Explicação do código Dim Mensagem

<%Dim teste

Dim Mensagem Dim ResultMedia

Function Media(Valor)

Dim Retorna Dim cont Retorna = 1 For cont = 1 to Valor

Retorna = Retorna + Cont

Next Retorna = Retorna / cont

Media = Retorna End Function teste = 5 if teste = 30 then Mensagem = "O valor da variável Teste é igual a 30" Else Mensagem = "O valor da variável Teste é igual a 5" End if ResultMedia = Media(teste)%>

<HTML><BODY> <CENTER><B><% = mensagem %><BR><BR> A média ponderada dos valores da variável Teste é igual a: <% = ResultMedia %> </B></CENTER>

Capítulo V – Variáveis

Desenvolvimento de Aplicações para Internet – Plataforma Microsoft Página 28

Dim ResultMedia

No exemplo que criamos, as variáveis acima foram declaradas fora de qualquer função ou subrotina, desta forma, podem ser utilizadas por todo o script escrito para esta página o que significa que em qualquer ponto do script podem ser referenciadas.

Function Media(Valor)

Dim Retorna Dim cont Retorna = 1

Diferente das variáveis teste, Mensagem e ResultMedia, as variáveis Retorna e cont podem apenas ser referenciadas dentro da função. Para o restante do scritp, as variáveis Retorna e cont não são válidas.

Até este ponto, vimos os tipos de variáveis, funções de conversão e seu escopo (“tempo de vida”). Mas, como declará-las em um script?

Para declarar variáveis em seu script, você deve utilizar as cláusulas: Dim, Public, Static. Dim

Variáveis declaradas com o Dim em um script estão disponíveis para todas os procedimentos inclusos neste script, porém as variáveis declaradas em um procedimento apenas poderão ser utilizadas neste procedimento.

Exemplo

Onde nomevar e nomevar2 são nomes de variáveis e dimensão representa o número da dimensão do vetor.

Com a cláusula Dim, é também possível declarar vetores. Um vetor é tratado como uma variável, porém é utilizado para armazenar uma coleção de informações similares. Esta coleção é acessada por seu índice, começando pelo 0 (zero). Por exemplo, o próximo código cria um vetor com 5 posições. Como os vetores começam com a posição 0 (zero), 5 posições da variável TipoProduto são alocadas. A segunda e terceira linha do código preenchem a primeira e segunda posições do vetor com os valores “Material de Construção” e “Material Escolar”:

Dim TipoProduto(4)‘Como o vetor começa com 0 (zero), a primeira posição é 0 e a quinta posição é 4 TipoProduto(0) = “Material de Construção” TipoProduto(1) = “Material Escolar”

ReDim

A função ReDim é utilizada para manipular vetores dinâmicos. Para o VBScript, os vetores podem ser definidos em dois tipos: Estáticos ou Dinâmicos. Um vetor estático tem seu número de índices definidos, como o vetor que definimos no exemplo acima que possui 5 posições. Um vetor

Dim nomevar [([dimensão]))

Dim nomevar [([dimensão])), nomevar2 Para declarar diversas variáveis, utilize vírgulas para separá-las. Por exemplo:

Capítulo V – Variáveis

Desenvolvimento de Aplicações para Internet – Plataforma Microsoft Página 29 dinâmico tem o número de índices variado e este número é definido quando a aplicação é executada. Você pode criar um vetor dinâmico, apenas declarando-o com os parênteses vazios.

Os vetores dinâmicos são diferentes dos estáticos. Os dinâmicos são utilizados quando a alocação de memória precisar ser dinâmica, ou seja, o vetor pode assumir vários tamanhos. Para que isso seja possível, utilize o comando ReDim. Este comando é utilizado para redefinir o tamanho do vetor. Este tamanho pode aumentar ou diminuir. Se você precisar aumentar o tamanho de seu vetor e precisa manter os elementos já inclusos nas posições existentes, utilize o comando Preserve. Por exemplo, o código a seguir cria um vetor dinâmico chamado ProdutosSelecionados e o redimenciona com 3 posições. A última linha expande o número de elementos do vetor para 6, como estamos utilizando a cláusula Preserve, o conteúdo já incluso no vetor permanecerá.

Public

Quando declaramos uma variável como pública, esta variável pode ser referenciada por todo o script da página. Você também pode declarar vetores estáticos ou dinâmicos com a cláusula Public.

Sintaxe

Public nomevar[([dimensão])] Onde nomevar é o nome da variável e dimensão é o número de elementos do vetor. Private

Variáveis declaradas com a cláusula Private são o oposto das variáveis declaradas com a cláusula

Public. São válidas apenas dentro do script no qual foram declaradas. Podemos também declarar vetores dinâmicos e estáticos com o Private.

Sintaxe

Private nomevar[([dimensão])] Onde nomevar é o nome da variável e dimensão é o número de elementos do vetor.

Declaração Escopo DimScript todo ou Procedimento ReDimScript todo ou Procedimento PublicScript todo PrivateScript todo

Dim ProdutosSelecionados() ReDim ProdutosSelecionados(3) ProdutosSelecionados(0) = “Caderno” Redim Preserve ProdutosSelecionados(6)

Capítulo V – Variáveis

Desenvolvimento de Aplicações para Internet – Plataforma Microsoft Página 30

Regras para nomear as variáveis Para nomear suas variáveis, é preciso seguir algumas regras:

• Deve começar com um caracter alfabético; • Não pode exceder o tamanho de 255 caracteres;

• Deve ser único no escopo no qual a variável é declarada.

Option Explicit

Por default (padrão), a declaração das variáveis não é obrigatória. Você pode apenas fazer referências a elas, sem declará-las explicitamente. A declaração explicita se refere ao processo de criação ou instanciação de uma variável

Exemplo

Onde teste e Mensagem são variáveis declaradas implicitamente, o VBScript se encarrega de entendê-las como variáveis.

Esta declaração implícita não é considerada uma boa prática pelo programadores, pois estamos sujeitos a erros de digitação, e para uma este tipo de declaração, declarar uma variável chamada teste e outra tsete são consideradas variáveis diferentes. Para evitar este tipo de erro, a declaração do Option Explicit está disponível para que obrigatoriamente todas as variáveis sejam declaradas explicitamente.

Se você optar por utilizá-lo, a sua declaração deve ser feita antes de qualquer outra declaração.

<% teste = 5 if teste = 30 then Mensagem = "O valor da variável Teste é igual a 30" Else Mensagem = "O valor da variável Teste é igual a 5" End if

Capítulo V – Variáveis

Desenvolvimento de Aplicações para Internet – Plataforma Microsoft Página 31

Exemplo (utilizando o exemplo acima)

Observe neste exemplo que declaramos a clausula Option Explicit porém, não declaramos explicitamente a variável teste. Ao executarmos este ASP no servidor, será retornado um erro como mostra a tela a seguir:

A mensagem do erro retornado Variable is undefined: ‘teste’ significa que a variável não foi declarada. Se voltarmos ao script, perceberemos que realmente a variável não foi declarada. Vamos estudar o script:

<% Option Explicit

teste = 5 %>

Como utilizamos a cláusula Option Explicit, necessariamente precisamos declarar a variável teste explicitamente, para isso, devemos escrever o script da seguinte maneira:

<% Option Explicit

Dim teste teste = 5

<% Option Explicit teste = 5 if teste = 30 then Mensagem = "O valor da variável Teste é igual a 30" Else Mensagem = "O valor da variável Teste é igual a 5" End if %> <HTML><BODY>

Capítulo V – Variáveis

Desenvolvimento de Aplicações para Internet – Plataforma Microsoft Página 32 if teste = 30 then Mensagem = "O valor da variável Teste é igual a 30"

Else

Mensagem = "O valor da variável Teste é igual a 5"

End if %>

Se o ASP for executado novamente, não ocasionará o erro, pois a variável foi declarada. Resumo

Neste capítulo aprendemos que

• Existe apenas um tipo de dados suportado pelo VBScritp: Variant.

• Embora haja apenas um tipo de dados, existem subtipos que identificaram o valor que é armazenado na variável, atribuindo-lhe o subtipo específico de acordo com o valor. Se o valor for numérico, o subtipo será integer, por exemplo.

• Com a função VarType, é possível identificar o subtipo assumido pela variável.

• Para o ASP, as variável possuem dois escopos: Script e Procedimento. Quando declaramos uma variável em nível Script, é possível referenciá-la em todo o script. Quando declaramos em um Procedimento, a variável é apenas válida para o procedimento em questão.

• Utilizando a cláusula Option Explicit, fica obrigatória a declaração explicita da variável.

Dicas

• Utilize a declaração Option Explicit para evitar erros de digitação do nome de uma variável existente ou para evitar confusão no código script onde o escopo das variáveis não é bem definido.

• Quando você utiliza a cláusula Dim em um procedimento, geralmente a declaração é feita no começo do procedimento.

• Antes de atribuir valores a um vetor dinâmico, é preciso redimenciona-lo usando o comando ReDim

• Quando uma variável é declarada, seu valor padrão depende do subtipo de dados que assumir. Por exemplo, uma variável numérica é inicializada com 0 (zero), uma variável string é inicializada com comprimento igual a zero (“ “).

Capítulo VI – Operadores

Desenvolvimento de Aplicações para Internet – Plataforma Microsoft Página 3

Operadores

O VBScript possui vários operadores de programação que ajudam a manipular as variáveis em suas páginas ASP. Muitas linguagens dividem os modelos de objetos em grupos lógicos agrupados de acordo com suas funcionalidades. Isto dá maior flexibilidade para manipular objetos e variáveis dos formulários e é fundamental para o controle do processo de uma aplicação.

Operadores Aritméticos

Os operadores aritméticos nos permite fazer uma série de cálculos matemáticos. Geralmente, possuem a seguinte sintaxe:

Resultado = valor1 operador valor2

Onde Resultado é a variável que receberá o valor do cálculo, valor1 e valor2 são expressões numéricas e o operador representa a operação matemática a ser realizada.

A tabela a seguir lista todos os operadores reconhecidos pelo VBScript:

Operador Símbolo Descrição Adição+Efetua a soma entre os valores.

Subtração-Efetua a subtração entre dois números ou atribui um valor negativo a número.

Multiplicação*Efetua a multiplicação entre os valores. Divisão/Efetua a divisão entre dois números.

Divisão Inteira\Efetua a divisão entre dois números e retorna um valor inteiro como resultado.

ExponenciaçãoEfetua a operação de potenciação.

Adição

O operador de adição (+) é utilizado para efetuar somas entre valores numéricos, mas também pode ser utilizado para concatenar strings.

Sintaxe Resultado = valor1 + valor2

Onde resultado recebe o valor da soma das expressões numéricas valor1 e valor2. Lembre-se, existe apenas um tipo de variável no VBScript: Variant. Somar dois valores pode resultar em um resultado não esperado, por causa da capacidade do tipo Variant mudar automaticamente o subtipo baseado no valor atribuído à variável.

(Parte 3 de 5)

Comentários