Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

JoaoGusmao

Trabalhando com Arrays

Recommended Posts

Galera, a lógica é a seguinte:

A cada vez que der um loop, acrescentar um valor em uma array

Então, preciso declarar uma Array, e acrescentar valores a ela.

O loop é feito por for each

alguém pode ajudar ai? '-'

Compartilhar este post


Link para o post
Compartilhar em outros sites

Os Arrays ou matrizes são umas estruturas de dados muito utilizadas em Qualquer linguagem. Trata-se de variáveis, porém que estão preparadas para Salvar uma quantidade maior de elementos. É como uma variável que tem vários compartimentos para salvar a informação e a cada um desses compartimentos há que acessar como um índice.

 

Antes de utilizar um array devemos declara-lo de maneira obrigatória, para isso utilizamos a palavra chave DIM, deste modo.

 

dim meuArray(20)

 

Despois da palavra DIM devemos indicar o nome do array e a seguir, entre parênteses, coloca-se o número de posição máxima do array, neste caso 20.

 

Os arrays em ASP começam desde a posição 0, ou seja, o primeiro elemento de um array está na posição 0. Portanto, se o array foi definido com 20 campos, como no exemplo, terá 21 elementos, primeira posição será a 0 e a última posição seria a 20.

 

Para atribuir um valor a um array se realiza igual que uma variável, porém acessando com o índice da posição que queremos escrever.

 

meuArray(0) = 234

 

Para utilizar o conteúdo de um array devemos faze-lo indicando o índice ao que se deseja acessar. Por exemplo, se quiséssemos imprimir na página a primeira posição de nosso Array o faríamos desta maneira.

 

document.write(meuArray(0))

 

Agora vamos ver um exemplo sobre como utilizar os arrays, onde vamos realizar dois percorridos, um para escrever nele e o outro para ler a informação e escreve-la na página.

 

dim matriz (10)

for i=0 to 10

matriz(i)=100 * i

next

 

for i=0 to 10

document.writeln("Posicao " & i & ": " & matriz(i) & "<br>")

next

 

Este exemplo escreveria na página as posições do array, que contém variáveis numéricas que correspondem de multiplicar seu índice por 100.

 

Arrays multidimensionais em VBScript

 

Podem-se construir matrizes multidimensionais, ou seja, que nos permitam criar matrizes de várias coordenadas. Para trabalhar com eles utiliza-se uma vírgula que separa os dois índices. Por exemplo, podemos definir uma matriz de 8x8 desta maneira.

 

dim meuArray2Dimensoes (7,7)

 

Como o array é de 8 campos, utilizamos um 7 e suas posições serão as 8 que vão desde o 0 ao 7. Para escrever e ler do Array podemos utilizar a vírgula de maneira similar a como se declara. Por exemplo, para colocar dados na posição 0,2 faríamos o seguinte:

 

meuArray2Dimensoes (0,2) = "texto posicao 0,2"

 

Redimensionar arrays

 

Podemos declarar também arrays que mudem o número de campos que têm segundo se necessite em tempo de execução. Este tipo de arrays redimensionais se chama array dinâmico. Para criar este tipo de arrays podemos utilizar a sentença dim (como criávamos os anteriores) ou a sentença redim, com a particularidade que não lhe colocamos nenhum valor entre parênteses onde antes indicávamos o número de campos do array.

 

dim meu_array()

redim meu_outro_array()

 

Quando usamos arrays dinâmicos podemos utilizar a sentença redim para indicar o número de dimensões e a quantidade de campos de cada dimensão.

 

Com esta sentença estamos indicando que meu_array deve ter o tamanho 10. Campos desde 0 até a 10.

 

redim meu_array(10)

 

Se indicamos a chave "preserve" estamos garantindo que o conteúdo dos campos que havia previamente no array se mantém.

 

redim preserve meu_array(20)

 

Por último, se em qualquer momento reduzimos o número de campos perderemos o que possa ter sido salvo nos campos que se eliminaram.

 

No seguinte exemplo criamos um array dinâmico e o redimensionamos inicialmente a tamanho 3. Preenchemos e mostramos seus distintos valores. Posteriormente o redimensionamos outra vez para que chegue até a posição 7, salvando os valores antigos. Para acabar preenchendo os campos que criamos novos e mostramos todos os valores do array.

 

dim frutas()

redim frutas(3)

 

frutas(0) = "Pêra"

frutas(1) = "Uva"

frutas(2) = "Maçã"

frutas(3) = "Melão"

 

for each fruta in frutas

document.write fruta & "<br>"

next

 

redim preserve frutas(7)

 

frutas(4) = "Melancia"

frutas(5) = "Laranja"

frutas(6) = "Banana"

frutas(7) = "Tangerina"

 

for each fruta in frutas

document.write fruta & "<br>"

next

 

Nota: Os arrays de mais de uma dimensão também podem se redimensionar, porém só se pode alterar a última dimensão.

 

Por exemplo, em um array de duas dimensões meuarray(2,4), se poderia redimensionar a segunda dimensão redim meuarray(2,8). Ou em um array de 3 dimensões, onde também poderíamos mudar somente a última dimensão.

 

Um exemplo de código que faz isto é:

 

dim dados_prova()

redim dados_prova(1,0)

 

dados_prova(0,0)=12

dados_prova(1,0)="ola!"

 

redim preserve dados_prova(1,1)

 

dados_prova(0,1)=133

dados_prova(1,1)="segunda campo"

 

for i=0 to ubound(dados_prova)

document.write dados_prova(0,i) & "-" & dados_prova(1,i) & "<br>"

next

 

Obter o número de campos de um array

 

Um dos dados típicos que necessitamos extrair de um array é seu número de posições, útil, por exemplo, para fazer um percorrido a um array, desde a primeira até o último campo. Para isso, utilizamos a função uBound() de VBScript.

 

uBound() recebe o array do que queremos obter seu número de posições e devolve a posição mais alta do array. Por exemplo:

 

dim cidades(5)

document.write ubound (cidades)

 

Escreveria na página o número do campo mais alto do array cidades, neste caso 5.

 

Ademais, se por acaso algum dia necessitamos, também temos a nossa disposição a função lBound(), que devolve o número da posição com índice menor do array.

 

document.write lbound (cidades)

 

A última linha sobre nosso array de cidades definido anteriormente escreveria um 0 na página web, visto que o array começa na posição zero.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.