Conheça também: Onmasters . Ofertas . Divulgue! . Vai.la . Geraboleto . Baixa.la . Assista.la . Bloghost
» Início » Programação » ASP » Funções em ASP, parte 1 -->
 
Avaliação: | Publicado em: 12/03/2007
Funções em ASP, parte 1
Lazaro Fernandes Lima Cursa Informática pela ETE (Escola Técnica Estadual de Guaianazes) pelo Centro Paula Souza, trabalha como WebMaster em um dos maiores portais B2B do Brasil.


Olá a todos, este é o meu primeiro artigo e irei começar tratando de um assunto pouco explorado, FUNÇÕES.

Definição::

Funções são um conjunto de código, identificado por um nome, que pode ser chamado de um outro local do programa. Por exemplo, você pode criar uma função para imprimir o pedido de uma pizza, e depois chamar essa função a partir de uma outra seção do programa. As funções são também denominadas rotinas ou procedimentos e podem ou não retornar valores.

Introdução::

Neste artigo irei explorar as principais funções da linguagem VBScript, para que no artigo seguinte possamos criar nossa próprias funções e utilizá-las de acordo com nossa necessidade. Ao longo do artigo irei tratar somente de funções, quaisquer outros assuntos serão alvo de possíveis artigos no futuro. Quaisquer dúvidas relacionadas ao artigo mandem-me um email e irei responder a todos. Vamos lá!

Sintaxe de utilização de uma função:
Nome_da_Funcao(parâmetro1,parâmetro2,parâmetro3...)
ou
Call Nome_da_Funcao(parâmetro1,parâmetro2,parâmetro3...)
ou
Call
Nome_da_Funcao 'Caso não seja necessário informar parâmetro algum...
ou
Nome_da_Funcao

Exemplos:

Call MostraNomeDiaSemana("01/01/1989")
RemoveSifrao(variavel_contendo_texto,"&")
Call VerificaSessoesAtuais

Obs: Valores String que estejam fora de uma variável devem ser atribuidos entre aspas dúplas " ", e variáveis devem ser atribuídas sem aspas dúplas.


Funções para tratamento de String mais conhecidas:
LCase; UCase; Len; Left; Right; Mid; Trim; Replace

UCase e LCase:

A função UCase é utilizada para retornar um valor String em letras maiúsculas, sendo muito utilizado para tratar a entrada de nomes em um banco de dados.
Ex:
response.write(UCase("HelLO wOrlD"))
O valor retornada é igual a HELLO WORLD
Já a função LCase é exatamente o oposto da função UCase, ela irá retornar o valor atribuído ao parâmetro em letras minúsculas.
Ex:
response.write(LCase("HelLO wOrlD"))
O resultado é igual a hello world

Len:

A função Len retorna a quantidade de caracteres existentes na string passada como parâmetro.
Ex:
str_texto = "hello world"
response.write(Len(str_texto))
ou
response.write(Len("hello world"))
O resultado será igual a 11, que é a quantidade de caracteres da string passada como parâmetro.
Obs: Espaços também são considerados como caractere.

Left e Right:

A função Left delimita a quantidade de caracteres que serão exibidos da esquerda para a direita em uma string passada como parâmetro. Muito utilizado em sistemas de exibição de notícias onde existe um limite de caracteres a ser exibido para o título de uma notícias por exemplo.
Ex:
response.write(Left("hello world",3))
Irá retornar hel, sim, sim, exatamente isso,"HEL", ou seja, somente os 3 primeiros caracteres da esquerda para a direita.
A função Right trabalha de forma semelhante, onde a única diferença é que ela baseia o "corte" da string da direita para a esquerda, logo, nosso exemplo irá ficar assim: response.write(Right("hello world",3))
O valor retornado é rld, isso mesmo, "RLD"
Obs: Muitas funções recebem mais de um parâmetro. Em funções onde seja necessário atribuir mais de um parâmetro deve-se seguir o padrão da entrada dos parâmetros, sendo impossível a escolha da ordem de inserção dos mesmos. Cada parâmetro deve ser passado separando-os com vírgula ","

Mid:

Esta função é uma mistura entre as funções Left e Right, ela retorna o "pedaço" da string informada como parâmetro de acordo com sua posição inicial e quantidade de caracteres a serem considerados apartir da posição inicial, contando da esquerda para a direita.
Ex:
Response.Write(mid("Active Server Pages",3,14))
Irá retornar tive Server Pa, isso mesmo, "tive Server Pa". Onde o segundo parâmetro define o caractere inicial do corte e o terceiro parâmetro o fim do corte.

Trim:

Esta função retorna a string passada como parâmetro removendo espaços com mais de um caractere.
Ex:
str_texto = " __________Testando_______  a função________ TRIM!_____ !!!______ "
Response.Write(Trim(str_texto))
O valor retornado é igual a "Testando a função TRIM! !!!".
Observe que ele não remove todos os espaços, e sim somente espaços com mais de um caractere seguido e antes e depois do primeiro e último caractere respectivamente. Esta função é muito utilizada para tratamento de nomes e pequenos textos, tanto para exibição imediata, quanto para o registro em um banco de dados.


Replace:

Esta função retona a string passada como parâmetro capturando um ou uma sequência de caracteres e trocando por um ou mais caracteres. Esta função é muito usada para filtragem de palavras impróprias em fórums, tratamentro de segurança etc. Ela contém 3 parâmetros, onde o primeiro é a string a ser tratada, depois é informado o valor a ser capturado e por último o valor a ser TROCADO.
Ex:
Response.Write(replace("Hello World!","l","-"))
O valor a ser retornado é igual a He--o Wor-d!
ou
Response.Write(replace("Hello World!","ll","----Sequencia de Caractere Imprópria!!!----"))
Neste caso o valor retornado é igual a He----Sequencia de Caractere Imprópria----o World!


Funções Matemáticas mais conhecidas:
Srq, Cint, Round. FormatNumber Sqr

Sqr:
A função Sqr retorna a raiz quadrada de um número.
Ex:
Response.Write(Sqr(50))
Irá retornar 7,07106781186548
Obs: É possível utilizar a função "round" que veremos mais a seguir para limitar a quantidade de casas decimais após a vírgula a serem visualizadas, é perfeitamente possível utilizar funções dentro de funções no ASP.

Cint:
A função Cint é responsável por converter um valor de qualquer formato em formato numérico do tipo inteiro.
Utiliza-se muito esta função para realizar cálculos de valores recebidos de formulários que são puxados pelo Request e ficam alocados em varíaveis como String.
Ex:
Response.Write(Cint(550,535)) 'Retorna 551

Response.Write(Cint(-550,535)) 'Retorna -550

var1 = "3232,350"

Response.Write(cint(var1)+2) 'Retorna 3234


Perceba que no primeiro exemplo o número foi convertido para inteiro com arredondameto para um número acima, já no segundo exemplo pelo fato de o valor ser negativo a função arredonta para o seu menor valor. No terceiro exemplo vemos a utilização da função Cint para converter um valor string em numérico para que se possa realizar um cálculo simples.
Obs: A virgula "," é considerada como separador decimal em valores numéricos. Vale lembrar que para valores inteiros só podemos ir de -32.768 até 32.767 e por ser inteiro não aceita casas decimais, caso seus cálculos ou sua conversão ultrapasse este intervalo um erro de tempo de execução será visualizado alertando o estouro da alocagem do valor.

Round:

A função Round é utilizada de forma semelhante a função Cint, onde ela retorna um número formatado de acordo com a "quantidade limite" de casas decimais especificadas.
Ex:
pi = 3.14159
Responde.Write(Round(pi,2)) 'Retorna 3,14
Obs:
Responde.Write(Round("203,46577",3)) 'Retorna 203,466 (ele arredonda o último valor de acordo com sua média)

FormatNumber:

A função FormatNumber retorna uma expressão formatada com um determinado número de casas decimais assim como o Round, onde ela também exerce um papel semelhante a função Cint, a sua vantagem é que ele limita a quantidade de casas decimais e tem alguns parâmetros opcionais que podem ser de grande ajuda como, permitir escolher se exibe o zero a esquerda antes da vírgula de valores menores a um, permitir escolher se exibe valores negativos entre parênteses e retirando o sinal de negativo, e ainda se o número deve ou não ser agrupado usando o delimitador especificado no Control Panel do Windows que por padrão é verdadeiro(true).
Sintaxe:
FormatNumber(    Valor,qtd_de_digitos,MostraZeroaEsquerda?,
                          MostraNegativosEntreParenteses?,AgrupaNoFormatoDoCP?)

Ex:
response.write (formatnumber("77300,7",2)) 'Retorna 77.300,70
response.write (formatnumber(77300.7,4)) 'Retorna 77.300,7000

response.write (formatnumber("00,7",4)) 'Retorna 77.300,7000
response.write (formatnumber("00,7",4,-1)) 'Retorna 0,7000 onde -1 é igual a TRUE que define que seja exibido zero a esquerda
response.write (formatnumber("00,7",4,0)) 'Retorna ,7000 onde 0 é igual a FALSE que define que não seja exibido zero a esquerda

response.write (formatnumber("-400,7",2,-1,0)) 'Retorna -400,70 definindo que o quarto parâmetro(exibir negativo entre aspas e retirar o sinal) é igual a FALSE
response.write (formatnumber("-400,7",2,-1,-1)) 'Retorna (400,70) definindo que o quarto parâmetro(exibir negativo entre aspas e retirar o sinal) é igual a TRUE

response.write (formatnumber("-40000,7",2,-1,0,0)) 'Retorna -40000,70 definindo que o quinto parâmetro(exibir no formato do Control Panel do Windows) é igual a FALSE
response.write (formatnumber("-40000,7",2,-1,-1,-1)) 'Retorna (40.000,70) definindo que o quinto parâmetro(exibir no formato do Control Panel do Windows) é igual a TRUE

Obs: Somente os dois primeiros parâmetros da função FormatNumber são obrigatórios, os outros três são extensões da função que tem seus valores já padronizados e que podem ser modificados sem problemas assim como vimos acima.

Funções para tratamento de datas mais conhecidas:
Now, Day, Month, Year, WeekDay, WeekDayName, MonthName

Now:

A função Now é responsável por mostrar o dia, mês, ano e hora do sistema operacional no formato dd/mm/aaaa hh:mm:ss.
Ex:
Response.write Now
Retorna por exemplo 19/2/2007 11:15:34
Perceba que no mês ele não acrescentou o zero a esquerda, isso pode causar problemas quando utilizamos estas datas para validação em JavaScript onde ele só aceita formatos de dois dígitos no dia e mês. No próximo artigo serão tratados estes problemas e suas soluções.

Day:

Esta função retorna o dia do mês de uma data passada como parâmetro.
Ex:
Response.Write (day("04/08/2010")) 'Retorna 4, no caso, o dia "4" do mes 5 do ano 2010.
ou
Response.Write (day(now)) 'Retorna sempre o dia atual.
Obs: A data passada como parâmetro deve estar no formato em que o servidor IIS esta trabalhando, no caso, o formato correspondente ao meu servidor é o brasileiro dd/mm/aaaa, caso o seu servidor IIS trabalhe em formato americano por exemplo então você deve utilizar sempre este formato e sempre será retornado datas em formato americano.

Month:

A função Month é idêntica a função Day, onde deve a única diferença é que o valor retornado é igual ao mês da data passada como parâmetro.
Ex:
Response.Write (Month("20/02/2007")) 'Retorna 2

Year:

A função Year também é idêntica as duas funções anteriores, onde ela retorna o ANO de uma data passada como parâmetro. Ela sempre irá retornar o ano em 4 dígitos, mesmo que a data passada como parâmetro tenha somente 2 dígitos. Ex:
Response.Write Year("01/02/1999") 'Retorna 1999
Response.Write Year("01/02/99") 'Retorna 1999
Response.Write Year("01/02/2029") 'Retorna 2029
Response.Write Year("01/02/29") 'Retorna 2029
Response.Write Year("01/02/30") 'Retorna 1930
Obs: Perceba que quando informamos a data somente com 2 dítos, onde seja menor que 30, ele irá retornar apartir de 2000, porém quando informamos 2 dígitos maiores ou igual a 30 ele retorna a partir de 1930. Sempre informe os 4 dígitos correspondentes ao ano para que problemas como estes não aconteçam.

WeekDay:

A função WeekDay retorna um número de 1(Domingo) a 7(Sábado), correspondente aos dias da semana. Esta função é muito usada para descobrir o dia da semana de uma data futura ou passada. A Sintaxe desta função é: WeekDay([data],[DiaInicialDaSemana?]), onde o segundo parâmetro é opcional e possibilita contar o dia da semana começando de outra data, por padrão começa de Domingo(1).
Ex:
Response.Write WeekDay("20/02/2007") 'Retorna 3, correspondente a Terça-Feira.
ou
Response.Write WeekDay("20/02/2007",2) 'Retorna 2, também correspondente a Terça-Feira, porém o dia da semana inicial foi definido como Segunda-Feira(2), por isso a função retorna 2.

WeekDayName:

A função WeekDayName é idêntica a função WeekDay onde ela retorna o NOME do dia da semana correspondente.
Ex:
Terça-Feira.
Ele contém os mesmos parâmetros da função WeekDay, porém é acrecentada de uma outro parâmetro opcional responsável por abreviar no nome do dia da semana para 3 letras, seguindo o exemplo anterior e simulando o uso da abrivação ficaria " Ter ". A sintaxe da função é WeekDayName([data],[Abriviado],[DiaInicialDaSemana?]). O parêmetro Abriviado é recebe TRUE ou FALSE.

Espero que este artigo tenha lhe ajudado a entender e conhecer mais sobre as funções do VBScript, no próximo artigo iremos explorar a criação de funções a fundo, utilizando os objetos request.servervariables, FSO, seções e alguns outros. Aconselho a iniciantes e até mesmo profissionais da área a comprarem o livro ASP - Guia de Consulta Rápida da editora Novatec.
Este Guia de Consulta Rápida descreve de maneira suscinta todos os objetos, propriedades, métodos e eventos do ASP 3.0. Inclui também uma referência completa da linguagem VBScript (que é o foco deste artigo!), além de caber até no bolso.



É isso ae, até o próximo artigo!



O artigo está bom para iniciantes. O problema é que o ASP já é legado... Não sei até que ponto esse artigo é útil.
Lucas Felix
Para os usuários que estão iniciando a programação com ASP esse artigo é muito útil, um ponto forte é os exemplos que ele mostra ao decorrer do artigo, parabéns pelo artigo e pela iniciativa de abordar um ponto que muitas vezes deixavam de comentar...
Bruno Costa Rodrigues <bruno@itaipavachannel.com.br>
fácil e prático

Parabéns
O artigo é muito bom, principalmente para iniciantes e profissionais que queiram lembrar de algum detalhe esquecido. E concernente o asp, tem muito mercado ainda, as grandes empresas contiuam desenvolvendo nesta linguagem. Acredite!!!
Lazaro (AUTOR) <lazaro.fl@gmail.com>
Pessoal muito obrigado por todos os comentários. Andei muito ocupado desenvolvendo aqui mas agora estarei menos atarefado esta semana, tentarei montar o segundo artigo e desta vez como prometido vai ser paulera !
Junior Fêdo <jr0796@hotmail.com>
Nossa artigo muito bom bem detalhado com exemplos éh sempre bom ter alguma coisa do tipo guardado para aqueles momentos q dão um branco em nós programadores rsrsrsr...
Valew Parabéns pelo artigo.
jR.
Santos
Ainda uso ASP, e foi de grande auxílio.
Parabéns, ótimo artigo.
Asp , não está morrendo.
Todos sabem que até cobol tem um grande mercado. Basta olhar sistemas de locadoras, farmácias, mercearias, os que evoluíram muito estão em delphi.
Então analisem bem antes de falar, e não tentem passar com profetas da computação. Quando outra linguagem estiver rodando em pelo menos metade do mercado, o grande povão, micro e pequenas empresas. Ai sim arrisquem seus palpites. Asp não morreu, procriou e surgiu o asp.net, e o .net evolui a cada dia.
JR Peixoto <jr@bandax.com.br>
A tempos eu procurava um artigo que apresentasse as principais funções em VB.
Parabéns e obrigado.
Lucas Felix... 'É legal, mas pena que um monte de empresas usem e como usam
Daniel
Muito util para quem esta começando!
Carlos Roberto
Estou iniciando e me deu muita direção, falta ainda saber como posicionar os textos e figuras
Valeu pela dedicação