Portal    Foro    Buscar    FAQ    Registrarse    Conectarse


Publicar nuevo tema  Responder al tema 
Página 1 de 1
 
 
Recorrer Una Colección Como Si Fuera Un Array
Autor Mensaje
Responder citando   Descargar mensaje  
Mensaje Recorrer Una Colección Como Si Fuera Un Array 
 
He publicado un pequeño articulo en mi blog,  donde explico como he usado el evento _get() de forma que se pueda recorrer una colección como si fuera un array.

Dejo aqui en enlace por si interesa a alguien el código y el ejemplo.

Enlace

Saludos
 




===================
Blog personal
Web: SoloGambas seleccion de articulos dedicados a Gambas
Visita el Curso de Gambas3 ¡¡¡Gratuito!!!
 
jsbsan - Ver perfil del usuarioEnviar mensaje privadoVisitar sitio web del usuario 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Recorrer Una Colección Como Si Fuera Un Array 
 
Hola Julio.

¿ Cómo es que lo hiciste de esa forma ? ( Tanto código)...y en verano!.  
¿ Qué problema te encontraste ?. (Tengo que ver mejor el código).
¿ Cómo es que no usaste algo así ?.

Public Sub Main()
  
  Dim valor As String
  Dim clave As String
  Dim cplanetas As New Collection
  
  cplanetas.add("Hace mucho calor", "Sol")
  cplanetas.Add("Esta muy cerca del sol", "Mercurio")
  cplanetas.Add("En su atmosfera no se puede respirar por el efecto invernadero", "Venus")
  cplanetas.Add("Es el planeta azul... aunque cada vez es mas gris", "Tierra")
  cplanetas.Add("Mas pequeño que la tierra, rojo y bastante ventoso", "Marte")
  cplanetas.Add("Rodeado de un gran anillo", "Saturno")
  
  'Mostrar valor
  For Each clave In cplanetas
    Print clave    
  Next
  Print
  'Mostrar clave
  For Each valor In cplanetas
    Print cplanetas.Key
  Next
  Print
  'Mostrar clave y valor
  For Each valor In cplanetas
    Print cplanetas.Key & " : " & valor
  Next
  
End
 


Solo pretendías recorrer la colección,¿ no ?. O lo hiciste por algún motivo.Tu sabes las ventajas que tiene la colección sobre el array.
Son curiosos los dos ultimo For Each, como va variando la llave.  valor se puede entender, pero la llave o clave que lo haga solo.
La ayuda dice de la propiedad Key:

Citar:

Returns the key of the last read or last enumerated element.


Del ultimo elemento enumerado, por eso vemos el valor de la clave o llave.
Lo cierto es que en otros lenguajes como Python, tienen una propiedad por si quieres ver la llave o el valor.

# Imprimir el par valor, clave y valor de un diccionario

my_dict = {
    "Name": "Juan",    
    "Edad": 30,
    "Address": "C/ Alhambra 3a"
}

for key,value in my_dict.items():
    print key,value
 

..es un diccionario, claro.

O también:

....

# Los diccionarios tienen dos metodos, .key() y .values()
# Devuelven valores del tipo dict_keys y dict_values, respectivamente.
# Se sale un poco de nuestro nivel, pero tu puedes convertirlos a listas con la función list()
# La lista sera ordenada por valores o por llave.

favoritos = {'frutas':'manzanas','animales':'gatos','numeros':42}

# Por claves

print(list(favoritos.keys()))
print()

# Por valores

print(list(favoritos.values()))
print()

# Usando este metodo obtendras una lista de claves y valores que están en el diccionario.
# No olvides convertir el valor devuelto de las llaves o claves con la función lista list()
....
 


En fin, cada lenguaje tiene sus métodos. Pero es curioso como gambas Itera o repite sobre la colección para mostrar la clave del ultimo elemento que está tratando el bucle.

Saludos
 




===================
Gambas Básico
"No es un bug, es una característica no documentada"
 
Shell - Ver perfil del usuarioEnviar mensaje privadoVisitar sitio web del usuario 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Recorrer Una Colección Como Si Fuera Un Array 
 
Shell:

Citar:
¿ Cómo es que no usaste algo así ?.
For Each clave In cplanetas
Print clave
Next

Pues porque necesitaba obtener valores de la colección como un array, en plan:

print coleccion[4]


Y con el evento _get es como se puede programar.

Saludos
 




===================
Blog personal
Web: SoloGambas seleccion de articulos dedicados a Gambas
Visita el Curso de Gambas3 ¡¡¡Gratuito!!!
 
jsbsan - Ver perfil del usuarioEnviar mensaje privadoVisitar sitio web del usuario 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Recorrer Una Colección Como Si Fuera Un Array 
 
Julio:

¿ Y no es mejor a cada uno lo suyo ?.  
Tu sabes que no se debe mezclar. Que si mezclas se acaba mal.  

Saludos
 




===================
Gambas Básico
"No es un bug, es una característica no documentada"
 
Shell - Ver perfil del usuarioEnviar mensaje privadoVisitar sitio web del usuario 
Volver arribaPágina inferior
Mostrar mensajes anteriores:    
 
OcultarTemas parecidos
Tema Autor Foro Respuestas último mensaje
No hay nuevos mensajes Como Importar Un Form(formulario) Sobre Ot... metalgearxd General 3 Jueves, 07 Febrero 2013, 20:46 Ver último mensaje
metalgearxd
No hay nuevos mensajes Como Agregar Un Array A Un Textarea Ponien... v3ctor General 2 Miercoles, 29 May 2013, 07:21 Ver último mensaje
jsbsan
No hay nuevos mensajes Como Declarar Array Limitando Elementos Po... v3ctor General 1 Viernes, 12 Diciembre 2014, 18:37 Ver último mensaje
Shell
No hay nuevos mensajes Recorrer Un Columnview Y Guardar Datos En ... v3ctor Controles/Librerías/Componentes 4 Martes, 20 Octobre 2015, 20:06 Ver último mensaje
v3ctor
 

Publicar nuevo tema  Responder al tema  Página 1 de 1
 

Usuarios navegando en este tema: 0 registrados, 0 ocultos y 0 invitados
Usuarios registrados conectados: Ninguno


 
Lista de permisos
No puede crear mensajes
No puede responder temas
No puede editar sus mensajes
No puede borrar sus mensajes
No puede votar en encuestas
No puede adjuntar archivos
Puede descargar archivos
No puede publicar eventos en el calendario



  

 

cron