» Início » Programação » ASP » Criando Array automaticamente
 
Avaliação: | Publicado em: 04/09/2005
Criando Array automaticamente
Fabrizio Gianfratti Fabrizio Gianfratti trabalha com desenvolvimento desde 1995 e desenvolve com ASP,ASP.NET (VB.Net, C#),JavaScript,SQl SERVER. Tem grande experiência no desenvolvimento de portais e ferramentas de gerenciamento de conteúdo, atualmente trabalha como WebDeveloper em projetos para desenvolvimento de sistemas na a área hospitalar. Disponibiliza muitas informações em seu site www.gianfratti.com


Depois de ver muitos programadores com dificuldades para mexer com Array resolvi desenvolver uma função que até o presente momento é inédita e tenho certeza que a partir dele novas versões da função irão começar a aparecer.

Com o uso desta função você cria qualquer vetor e apaga qualquer posição do vetor, é bem completo e muito fácil de usar, em apenas um linha você consegue o que realmente quer fazer um vetor que fica armazenado em uma Session.

Resolvi armazenar o conteúdo do vetor em uma session pois tenho certeza que essa função será muito usada pelo pessoal de e-commerce para carrinhos de compras.
Bom, em nosso sistema, iremos utilizar apenas 1 página .asp que pode ter o nome de sua preferência.

<%
'A função abaixo é generica e pode ser utilizada como um arquivo include
Function VetorMonta(Acao,Valor)
'Usamos o case para manipular a ação da função
Select Case Trim(Acao)
'Inclui nova posicao ao vetor
Case "Incluir"
'Guarda na variavel Vetor o conteudo da Session
Vetor = Session("GuardaVetor")
'Verifica se a Variavel Vetor é um Array, caso nao for entao definimos ela um Array
If Not IsArray(Vetor) Then Vetor = Array() End if
'Verifica se o Valor que esta sendo inserido já esta no Vetor se estiver entao nao inseri para nao haver duplicidades do vetor
If InStr(Join(Vetor), Valor) = 0 Then
'Este comando ira preservar o vetor e adciona + 1 valor
ReDim preserve Vetor(UBound(Vetor)+1)
'Este é o valor que estamos adicionando no vetor
Vetor(Ubound(Vetor )) = Valor
'Coloca o conteudo da variavel vetor dentro da Session
Session("GuardaVetor") = Vetor
End if
'Apaga uma determinada posicao do vetor
Case "Excluir"
'Inicia a varivel vetor como vazia
Vetor = Array()
'Criamos uma nova variavel Auxiliar e guardamos o valor da Session
AuxVetor = Session("GuardaVetor")
'Definine a Session como um Array vazio
Session("GuardaVetor") = Array()
'Faz um laço em todas as posições do vetor
For i = 0 To Ubound(AuxVetor)
'Verifica se o valor passado para excluir do vetor é diferente do valor que esta dentro da variavel Auxiliar
If AuxVetor(i) <> (Valor) Then
'Este comando ira preservar o vetor e adciona + 1 valor
ReDim preserve Vetor (UBound(Vetor)+1)
'Este é o valor que estamos adicionando no vetor
Vetor (Ubound(Vetor)) = AuxVetor(i)
'Coloca o conteudo da variavel vetor dentro da Session
Session("GuardaVetor") = Vetor
End If
Next
'Fim do Case
End Select
End Function

Function Incluir_Vetor

'Executa a função que ira criar uma posição do vetor, basta passar a acao e o valor
Call VetorMonta("Incluir",Replace(Request("Valor_Vetor"),"'",""))

End Function

Function Excluir_Vetor(Valor_Vetor)

'Executa a função que ira deletar uma posição do vetor, basra passar a acao e o valor
Call VetorMonta("Excluir",Valor_Vetor)

End Function

Function VisualizaValoresVetor

'Veriofica se a Session é um array, caso nao for então atribuimos a Session como um Array
IF Not IsArray(session("GuardaVetor")) Then session("GuardaVetor") = Array() End if
'Faremos um laço entre todos os vetores criados
For x = 0 To ubound(session("GuardaVetor")) 'ira fazer um laço mostrando todos os vetores criados
'Mostra os valores armazenados na Session e adiciona um link para apagar a posição do vetor caso queira
Response.Write session("GuardaVetor")(x) & "<a href='vetor.asp?action=Excluir_Vetor& Valor_Vetor="&session("GuardaVetor")(x)&"'> (Apagar) </a>" & "<br>"
Next

'Verifica se a Session tem alguma posição, se tiver mostra a opção de apagar todos os vetores
If ubound(session("GuardaVetor")) >= 0 Then
Response.Write "<br>" &"<a href='vetor.asp?action=LimpaVetor'>Apagar Tudo</a>" & "<br>" 'Imprime o Vetor na tela
End if

End Function

Function LimpaVetor

'Limpa todas as posiçoes do vetor, apagando a Session
session("GuardaVetor") = Empty

End Function

'USAMOS CASES PARA MANUPULARAS CHAMADAS DAS FUNÇÕES
useraction=request("action")
select case useraction

Case "Incluir_Vetor"
'Chama a function que ira incluir um valor para o vetor
Call Incluir_Vetor

Case "Excluir_Vetor"
'Chama a function que ira excluir um valor para o vetor
Call Excluir_Vetor(Request("Valor_Vetor"))

Case "LimpaVetor"
'Chama a function que apagar todas as posições do vetor
Call LimpaVetor

End Select
%>
<table width="100%">
<form name="form" method="post" action="?action=Incluir_Vetor">
<tr>
<td><input name="Valor_Vetor" type="text" id="Valor_Vetor">
<input type="submit" name="Submit" value="Incluir no Vetor"></td>
</tr>
</form>
</table>
<%
'Chama a função que vizualiza todos os vetores criados
VisualizaValoresVetor
%>

Para visualizar um exemplo, clique aqui.

Pronto! Agora você tem uma função genérica para criar um vetor conforme a sua necessidade. Qualquer duvida ou sugestão é só me enviar um e-mail fabrizio@gianfratti.com

Um forte abraço a todos e até a próxima.


muito bom em cara...
vo aproveitar pra usar em um sistema de carrinho de compras...
falando nisso... vc tem algum ai???
abrasss....
Anderson de Lima <anderart@Yahoo.com.br>
seu artigo é excelente mas não consigo excluir um vetor de cada vez
Diogo Felipe dos Santos <diogato_8@hotmail.com>
Meu, obrigado pela ajuda, eu queria saber se eu colocar o exercicio que me deram na empresa pra eu desenvolver será que você me ajuda?

Agradeço desde já.
Márcio Brasil <mbrasilce@gmail.com>
O link que vc forneceu não funciona mais?
Gostei muito, me ajudou bastante!!!! Valew!!!
excelente cara
auahue saudades de vc meu nego