Cuantos elementos en una coleccion?

16/05/2006 - 18:29 por Alr | Informe spam
Dos preguntas:
Cual es el maximo numero de elementos que caben en un objecto coleccion
(collection), hay algun limite ?

Existe alguna forma (asi como hay en otros lenguajes), de unir un string con
otro string y que con esta union se pueda referencia digamos a un elemento
de una coleccion ?

Ejemplo: Si en una coleccion hay las variables o campos (no se como se les
llama), D1, D2, D3, D4, D5, D6 y D7; y me quiero referir en espeficico a
D05, pero sin usar un Case Select, sino una concanetacion de "D"+"7" o algo
por el estilo.
... Codigo
For l_Cont = 1 to p_Collection.Count
Select Case l_Dia
Case 1
l_Algo = p_Collection.Item(l_Cont).D1
' En lugar de usar esto
...Codigo
Case 2
... Codigo
Case 3
... Codigo
Y asi sucesivamente
End Select
Next l_Cont

For l_Cont = 1 to p_Collection.Count
l_Algo = p_Collection.Item(l_Cont).&"D"+Trim(Str(l_Dia)) ' No
podria usar algo parecido a esto, como
Next l_Cont
' se usa en algunos otros lenguajes? (Espero que no este divagando).

Bueno, pero la idea en este caso es eliminar el "Select Case".

Saludos.

Preguntas similare

Leer las respuestas

#1 Francisco MTY
16/05/2006 - 22:17 | Informe spam
Podrias indicar cual es la necesidad o bien buscar por medios propios en la
direccion adjunta:
http://search.microsoft.com/?mkt=es-ES

Atte.
?T Francisco T?
Respuesta Responder a este mensaje
#2 Héctor Miguel
17/05/2006 - 06:56 | Informe spam
hola, Alr !

Cual es el maximo numero de elementos que caben en un objecto coleccion (collection), hay algun limite ?

Existe alguna forma (asi como hay en otros lenguajes), de unir un string con otro string
y que con esta union se pueda referencia digamos a un elemento de una coleccion ?



1) con relacion al limte de elementos dentro de un objeto 'collection'...
pocas veces he sabido que sea necesario 'alcanzar/exceder/... [los mas de] los limites de excel/vba ;)
-> podrias ser mas 'conciso' en cuanto a 'que/como/...' has intentado y que problemas encuentras ?
-> podrias alcanzar 'otro tipo' de limites [p.e.] si haces un bucle For Contador = 1 To p_Collection.Count
si la variable 'Contador' la declaras como tipo de datos Byte y 'la cuenta' supera los 255 elementos :))

2) con relacion a 'referenciar' un elemento dentro de una coleccion 'concatenando' variables [supongo] de texto...
prueba con el metodo 'Item' de un objeto collection que [de paso] es el metodo 'por omision' [p.e.]
Resultado = p_Collection.Item(Variable1 & Variable2) [o 'simplemente']...
Resultado = p_Collection(Variable1 & Variable2)
-> solo toma en cuenta que los elementos de una coleccion NO es 'obligado' que sean de un solo tipo de datos ;)

comentas [si hubiera] algun detalle adicional ?
saludos,
hector.
Respuesta Responder a este mensaje
#3 Alr
17/05/2006 - 17:49 | Informe spam
Gracias a ambos por responder.

Respecto de mi primer pregunta era algo asi como una curiosidad inquieta, ya
que hasta ahora no he tenido problemas con esto, lo maximo que he visto es
que una coleccion se llene con mas de 500 elementos (lo cual no se si es
poco o mucho), y como la informacion va creciendo ... esa es mi inquietud.
Sobre el segundo tema, probare lo que comenta Hector Miguel.

Nuevamente agradezco que ofrezcan algo de su tiempo en responderme.

Saludos


"Alr" wrote in message
news:
Dos preguntas:
Cual es el maximo numero de elementos que caben en un objecto coleccion
(collection), hay algun limite ?

Existe alguna forma (asi como hay en otros lenguajes), de unir un string
con otro string y que con esta union se pueda referencia digamos a un
elemento de una coleccion ?

Ejemplo: Si en una coleccion hay las variables o campos (no se como se les
llama), D1, D2, D3, D4, D5, D6 y D7; y me quiero referir en espeficico a
D05, pero sin usar un Case Select, sino una concanetacion de "D"+"7" o
algo por el estilo.
... Codigo
For l_Cont = 1 to p_Collection.Count
Select Case l_Dia
Case 1
l_Algo = p_Collection.Item(l_Cont).D1 ' En lugar de usar esto
...Codigo
Case 2
... Codigo
Case 3
... Codigo
Y asi sucesivamente
End Select
Next l_Cont

For l_Cont = 1 to p_Collection.Count
l_Algo = p_Collection.Item(l_Cont).&"D"+Trim(Str(l_Dia)) ' No
podria usar algo parecido a esto, como
Next l_Cont ' se usa en algunos otros lenguajes? (Espero que no este
divagando).

Bueno, pero la idea en este caso es eliminar el "Select Case".

Saludos.

Respuesta Responder a este mensaje
#4 Alr
17/05/2006 - 22:01 | Informe spam
Chispas !!!
Parece que eso de los elementos dentro de una coleccion no puede ser mas de
256, ya que si se intenta agregar el 257 simplemente no lo hace, no muestra
ningun error, solo no agrega el elemento.
Habra alguna forma de que se puedan agregar mas de 256 elementos ?

No se de donde habre sacado eso de los mas de 500 elementos dentro de una
coleccion.

Saludos.


"Alr" wrote in message
news:
Dos preguntas:
Cual es el maximo numero de elementos que caben en un objecto coleccion
(collection), hay algun limite ?

Existe alguna forma (asi como hay en otros lenguajes), de unir un string
con otro string y que con esta union se pueda referencia digamos a un
elemento de una coleccion ?

Ejemplo: Si en una coleccion hay las variables o campos (no se como se les
llama), D1, D2, D3, D4, D5, D6 y D7; y me quiero referir en espeficico a
D05, pero sin usar un Case Select, sino una concanetacion de "D"+"7" o
algo por el estilo.
... Codigo
For l_Cont = 1 to p_Collection.Count
Select Case l_Dia
Case 1
l_Algo = p_Collection.Item(l_Cont).D1 ' En lugar de usar esto
...Codigo
Case 2
... Codigo
Case 3
... Codigo
Y asi sucesivamente
End Select
Next l_Cont

For l_Cont = 1 to p_Collection.Count
l_Algo = p_Collection.Item(l_Cont).&"D"+Trim(Str(l_Dia)) ' No
podria usar algo parecido a esto, como
Next l_Cont ' se usa en algunos otros lenguajes? (Espero que no este
divagando).

Bueno, pero la idea en este caso es eliminar el "Select Case".

Saludos.

Respuesta Responder a este mensaje
#5 Héctor Miguel
17/05/2006 - 23:35 | Informe spam
hola, Alr !

Chispas !!!
Parece que eso de los elementos dentro de una coleccion no puede ser mas de 256
ya que si se intenta agregar el 257 simplemente no lo hace, no muestra ningun error, solo no agrega el elemento.
Habra alguna forma de que se puedan agregar mas de 256 elementos ?
No se de donde habre sacado eso de los mas de 500 elementos dentro de una coleccion.



podrias comentar +/- exactamente como estas llenando la coleccion y que necesitas despues de llenarla ?

te paso un ejemplo 'sencillo' al final del presente ;)

si cualquier duda [o informacion adicional]... comentas ?
saludos,
hector.

en un modulo de codigo 'normal' ==Dim Datos As New Collection, Sig As Integer
Sub Llena_coleccion()
For Sig = 1 To 6500
Datos.Add "Dato " & Sig
Next
End Sub
Sub Prueba_coleccion_1()
For Sig = 1 To Datos.Count Step 500
MsgBox Datos(Sig)
Next
End Sub
Sub Prueba_coleccion_2()
For Sig = 1 To 125 Step 30
MsgBox Datos(Sig)
Next
End Sub
Sub Prueba_coleccion_3()
For Sig = 1 To 7
MsgBox Datos(Sig)
Next
End Sub
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida