Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Olá Pessoal, tenho um array, mas não queria por índice numérico nele. Eu sei que dá pra fazer isso.
Se não me engano o objeto recordset é um array não é?
se eu chamo um objeto rs paras ser o recordset de uma consulta ao banco e eu fizer rs("codigo") significa que o rs é um array e "codigo" é o indice dele, quem tem um valor.
Eu precisava fazer isso.
meuarray("codigo") = 2
Porém não sei como declarar um array assim.
Não sei como redimensioná-lo sem perder os valores.
Gostaria que alguém me desse essa força.
Obrigado e bom fim de semana à todos.
>
Acho que com um simples array não tem como fazer isso.
Pra redimensionar sem perder o valor você tem que usar Preserve.
redim preserve var
Se não dá com um simples array, como que faz?
velho faça uma busca avançada na seção asp
http://forum.imasters.com.br/index.php?app=core&module=search
procure por "array dinamico"
tu vai encontrar vários resultados, alguns deles pode te servir.
[]'s
ReDim ArrayGloballocal(0) 'coloca ele com zero possições
Dim numero_de_registros 'variavel auxiliar para verificação de tamanho do
vetor
'chama a sub
adicionaValor("bruno")
'qual é valor do array atual
numero_de_registros = UBound(ArrayGloballocal)
'imprime na tela
For i = 1 To numero_de_registros
response.write "Posição(" & i & "):" & ArrayGloballocal(i) & "</br>"
Next
'script/sub no qual você pediu
Sub adicionaValor(valor)
'aumenta mais um espaço para você adicionar o valor
redim ArrayGloballocal(Ubound(ArrayGloballocal)+1)
ArrayGloballocal(Ubound(ArrayGloballocal)) = valor
end sub
Espero ter ajudado...
Patrique não consegui encontrar nada relacionado.
Xamburzum, infelizmente isso não é suficiente.
Eu conheço o dim e o redim preserve para arrays normais.
mas eu queria fazer um array com índice não numérico. No PHP eu simplesmente posso fazer: $meuarray["nome"] = "LuX".
No asp já vi que não posso fazer meuarray("nome") = "LuX".
Acho que agora ficou mais claro né? obrigado pela atenção gente!
faz uma busca no forum, tem muito conteudo...
você tb pode usar o objeto Dictionary,para que possa parecer semelhante a matrizes, no entanto, o objeto Dictionary é uma solução mais conveniente para manipular dados relacionados.
Xamburzum, acredito que você seja mais experiente do que eu.
eu estou bem perdido, olhei pelo forum e não encontrei.
você poderia me mandar um link?
O índice é basicamente a posição do elemento na matriz. Matrizes em ASP / VBScript tem uma base zero a partir do índice.
<%
Dim MyString, MyArray
MyString = "cigaro,alcool,sexo,futebol"
MyArray = Split(MyString,",") ' delimitador
%>
O resultado seria uma matriz denominada MyArray com 4 elementos.
>
MyArray(0) = "cigaro"
MyArray(1) = "alcool"
MyArray(2) = "sexo"
MyArray(3) = "futebol"
Novamente loop poderia através da matriz e imprimir os valores de cada elemento da matriz. Neste exemplo, nós vamos incorporar também a função UBound.
<%
Dim MyString, MyArray
MyString = "cigaro,alcool,sexo,futebol"
MyArray = Split(MyString,",")
For i=0 to UBound(MyArray) 'UBound retorna 3
response.write myArray(i) & "<br>"
Next 'passar para o próximo valor de i%>
Repare que no código acima usamos a função UBound que retorna o índice do maior elemento da matriz. Neste caso, é assim que a 3 For i loop loop de 0 a 3.
mostramos como criar uma matriz de tamanho fixo. O código abaixo, declara o array usando a instrução Dim e passa em um parâmetro que especifica o número máximo de itens que a matriz pode conter. Neste caso, é 7, a matriz tem um índice inicial baseada em zero.
<%
Dim myArray(6)
%>
matrizes Dinamicas vêm a calhar quando você não tem certeza quantos itens irá realizar a sua matriz. Para declarar uma matriz dinâmica simplesmente deixe de fora do parâmetro.
<%
Dim myArray()
%>
Suponha que você queria criar um array para armazenar todos os ID de item em seu carrinho de compras. Como você não tem certeza quantos itens vão comprar você poderia antes de tudo criar uma matriz dinâmica.
<%
Dim myShopCartArray()
%>
Se o visitante, em seguida, coloca 3 itens em seu carrinho você pode redimensionar a matriz usando a função de instrução (redimesionar).
<%
Dim myShopCartArray()
Redim myShopCartArray(2) 'Lembrar-índice com base zero
%>
Se o visitante coloca outro item no seu carrinho de compras você terá que redimensionar a matriz novamente. No entanto, você iria perder toda a informação existente na matriz, se você só usou a função ReDim. Usando as palavras-chave PRESERVE vai manter a matriz que já temos e aumentar o tamanho.
<%
Dim myShopCartArray()
Redim myShopCartArray(2) 'Lembrar-índice com base zero
Redim PRESERVE myShopCartArray(3)
%>
Beleza amigo. Isso eu já entendi, mas ainda tem aquele esquema de poder fazer arrays com o índice não numérico.
É possível fazer isso em ASP?
como já devo ter explicitado, algo assim:
candidato("nome") = "LuX"
candidato("idade") = 18
e assim por diante...
obrigado pela atenção!
Tenta usar o Dictionary que o xanburzum falou.
para armazenar valores em objeto de dicionário e acessá-los via Arrays,uma comparacao Dicionários e Arrays:
• As chaves são usadas para identificar os itens em um objeto Dictionary
• Você não precisa chamar ReDim para alterar o tamanho do objeto Dicionário
• Ao excluir um item de um dicionário, os demais itens serão automaticamente shift up
• Dicionários tem mais funções embutidas de Arrays
• Dicionários de trabalha melhor do que matrizes de acessar elementos aleatórios com freqüência
• Dicionários de trabalha melhor do que matrizes para localizar itens por seu conteúdo
O exemplo a seguir cria um objeto Dictionary, acrescenta alguns pares chave / item para ele, e recupera o valor do item para o key gr:
<%
Dim d
Set d=Server.CreateObject("Scripting.Dictionary")
d.Add "re","Red"
d.Add "gr","Green"
d.Add "bl","Blue"
d.Add "pi","Pink"
Response.Write("O valor da chave é: " & d.Item("gr"))
%>
Scripting.Dictionary basicamente é o que o RecordSet faz, basta criar uma função.
como citei acima, Scripting.Dictionary pode solucionar seu problema , ele armazena valores em objeto de dicionário e acessá-los via Arrays,uma comparacao Dicionários e Arrays
Valeu galera, vou testar!
Acho que o dictionary vai me ajudar!
valeu hein!
Depois posto o resultado!
Obrigado novamente
Acho que com um simples array não tem como fazer isso.
Pra redimensionar sem perder o valor você tem que usar Preserve.
redim preserve var