Percorrido arrays e coleções

Vemos com detalhe o loop For Each para realizar percorridos, inclusive para realizar percorridos genéricos a formulários.

Por Miguel Angel Alvarez - Tradução de JML


Publicado em: 01/9/05
Valorize este artigo:
Em nosso manual de ASP vimos várias estruturas de controle, uma delas ainda temos que ver em mais alguns exemplos. Trata-se da estrutura FOR...EACH que serve para percorrer todos os elementos de uma coleção, por exemplo, um array ou uma coleção como as variáveis do servidor. Para acabar, veremos um exemplo prático adicional que consiste no percorrido genérico das variáveis que recebemos por POST ou por GET.

FOR...EACH

O loop FOR...EACH utiliza-se com a seguinte sintaxe:

For Each elemento in coleção
   'Fazemos coisas para cada elemento da coleção
Next

Percorrido genérico de Arrays

Um exemplo para ver o funcionamento deste loop poderia ser o seguinte percorrido genérico de um array

<%
dim nomes(3)
nomes(1) = "pedro"
nomes(2) = "luis"
nomes(3) = "sabrina"
for each valor in nomes
   response.write valor & "<br>"
next
%>


Percorre-se o array de nomes percorrendo cada valor e imprimindo-o. Pode-se ver o exemplo em funcionamento.

Percorrido genérico de coleções

As coleções são como arrays com a diferença que se pode ser acessar o valor que salva o array em cada posição com uma cadeia de caracteres em vez de um número.

Um exemplo muito interessante de percorrido de coleções foi visto em seu momento para mostrar todas as variáveis do servidor, as ServerVariables.

<%
For Each elemento in Request.ServerVariables
   Response.Write elemento&" : "&Request.ServerVariables(elemento)& "<br>"
Next
%>


Este exemplo é mais interessante, porque se trata de uma coleção e não um array típico. A coleção de ServerVaribles se acessa da seguinte maneira.

request.servervariables("nome da variavel")

onde "nome da variavel" poderia ser HTTP_ACCEPT_LANGUAGE, APPL_PHYSICAL_PATH ou qualquer outra variavel da lista de serverVariables.

Percorrido genérico das variáveis enviadas por POST ou GET

Outro exemplo interessante e prático é o que vem a seguir. Trata-se de percorrer as variáveis que chegam à página de um formulário ou pela URL de maneira genérica, ou seja, sem nos importar quantos elementos chegam e quais são. Este exemplo você pode chegar a necessitar quando não souber que tipo de formulário estão mandando nem quantas variáveis lhe enviam pela URL.

Em nosso exemplo vamos nos centrar em um formulário com method POST, com o qual recolhemos as variáveis com o método request.Form. Os exemplos para uma lista de variáveis chegada pela URL, com o método GET, podem-se recolher de um modo parecido, usando request.QueryString.

<%
For Each elemento in Request.form
   Response.Write elemento & ": " & Request.form(elemento) & "<br>"
Next
%>


É exatamente o mesmo exemplo que para percorrer uma coleção como a ServerVaribles, mas mostrando agora a coleção request.form.

Poderemos utilizar este script quando quisermos realizar percorridos genéricos. Nas seguintes linhas pode-se ver um exemplo de formulário que utilizamos para ilustrar este exemplo na prática.

<form action="recorridoform.asp" method="POST">
Nome: <input type="Text" name="nome">
<br>
<br>
Idade: <input type="Text" name="idade" size=3>
<br>
<br>
Profissao: <input type="Text" name="profissao">
<br>
<br>
<input type="Submit" value="Enviar">
</form>


Pode-se ver o exemplo das duas páginas funcionando.





Comentários do artigo
Foi enviado 1 comentário ao artigo
1 comentário não revisado
0 comentários revisados

Usuários :    login / registro

Manuais relacionados
Categorias relacionadas
O autor

Home | Sobre nós | Copyright | Anuncie | Entrar em contato