Buenas, como hago para guardar estos datos:
lo que quiero es guardar en una key "BANANA" cuantas bananas tengo
o en una key "FRUTILLAS" cuantas frutillas tengo.
no se como se hace esto pues la key seria un string y el dato de tipo integer alguna orientación?
Coleccion De Palabras Que Guarden Valores Numericos?
Objetivo: Re: Coleccion De Palabras Que Guarden Valores Numericos?
Hola v3ctor.
El dato es del tipo Variant.
No se si sera la única forma de hacerlo.
Pero lo cierto es que no hemos añadido a la colección otra fruta que llama banana y una cantidad, hemos sustituido
el elemento de la colección con la clave banana. Es lo que parece.
Pon un Stop después de Print frutas["bananas"]
Y ahora comprueba la colección frutas.
Saludos
El dato es del tipo Variant.
No se si sera la única forma de hacerlo.
Pero lo cierto es que no hemos añadido a la colección otra fruta que llama banana y una cantidad, hemos sustituido
el elemento de la colección con la clave banana. Es lo que parece.
Pon un Stop después de Print frutas["bananas"]
Y ahora comprueba la colección frutas.
Saludos
Objetivo: Re: Coleccion De Palabras Que Guarden Valores Numericos?
última edición por Shell el Viernes, 07 Noviembre 2014, 18:18; editado 3 veces
Otro ejemplo:
Vale, habría que poner el nombre de la función a Sumar y no Cambiar...
Saludos
Public Sub Main()
Dim frutas As New Collection
frutas["bananas"] = 0
Cambiar(frutas, "bananas", 1)
Mostrar_Coleccion(frutas)
Cambiar(frutas, "bananas", 4)
Mostrar_Coleccion(frutas)
End
Public Sub Mostrar_Coleccion(una_coleccion As Collection)
Dim valor As Integer
For Each valor In una_coleccion
Print una_coleccion.Key, valor
Next
End
'Lo cambio con la sugerencia de Shordi
Public Function Cambiar(una_coleccion As Collection, clave As String, valor As Integer) As Collection
If una_coleccion.Exist(clave) Then
una_coleccion[clave] += valor
Return una_coleccion
Else
Print "No existe la clave " & clave & " en la colección"
Endif
End
Dim frutas As New Collection
frutas["bananas"] = 0
Cambiar(frutas, "bananas", 1)
Mostrar_Coleccion(frutas)
Cambiar(frutas, "bananas", 4)
Mostrar_Coleccion(frutas)
End
Public Sub Mostrar_Coleccion(una_coleccion As Collection)
Dim valor As Integer
For Each valor In una_coleccion
Print una_coleccion.Key, valor
Next
End
'Lo cambio con la sugerencia de Shordi
Public Function Cambiar(una_coleccion As Collection, clave As String, valor As Integer) As Collection
If una_coleccion.Exist(clave) Then
una_coleccion[clave] += valor
Return una_coleccion
Else
Print "No existe la clave " & clave & " en la colección"
Endif
End
Vale, habría que poner el nombre de la función a Sumar y no Cambiar...
Saludos
última edición por Shell el Viernes, 07 Noviembre 2014, 18:18; editado 3 veces
Objetivo: Re: Coleccion De Palabras Que Guarden Valores Numericos?
Eso no añade otra banana, sólo imprime la suma
Por cierto, una curiosidad con las colecciones: no es necesario usar el método Add que funciona my bien, faltaría más, basta con
Citar:
Eso no añade otra banana, sólo imprime la suma
futas["bananas"] += 1
print frutas["bananas"]
print frutas["bananas"]
Por cierto, una curiosidad con las colecciones: no es necesario usar el método Add que funciona my bien, faltaría más, basta con
Objetivo: Re: Coleccion De Palabras Que Guarden Valores Numericos?
última edición por Shell el Viernes, 07 Noviembre 2014, 18:02; editado 2 veces
Shordi:
Pero entonces, no sumaría. Solo asignas un valor a una clave de la colección.
Pues si, es correcto. Suma perfectamente.
jeje, me acuerdo de un cliente que se le fue la cabeza, comía frutas..perdón, "futa, futa.. decía el" y se tiro por el balcón...era un primero, pero no
le quedo una muela viva. Las muelas salieron disparadas por multitud de sitios.
Saludos
Pues si, es correcto. Suma perfectamente.
jeje, me acuerdo de un cliente que se le fue la cabeza, comía frutas..perdón, "futa, futa.. decía el" y se tiro por el balcón...era un primero, pero no
le quedo una muela viva. Las muelas salieron disparadas por multitud de sitios.
Saludos
última edición por Shell el Viernes, 07 Noviembre 2014, 18:02; editado 2 veces
Objetivo: Re: Coleccion De Palabras Que Guarden Valores Numericos?
Shordi:
Cuando lo leía, lo estaba escribiendolo en Gambas.
Ahora lo curioso es: Si la función Cambiar devuelve una colección y no se ha asignado a ninguna variable, como es que se ha cambiado el valor de la colección frutas con la clave "bananas"
Ni que fuese un alias de Python.
Necesito café!.
Saludos
Cuando lo leía, lo estaba escribiendolo en Gambas.
Ahora lo curioso es: Si la función Cambiar devuelve una colección y no se ha asignado a ninguna variable, como es que se ha cambiado el valor de la colección frutas con la clave "bananas"
Ni que fuese un alias de Python.
Necesito café!.
Saludos
Objetivo: Re: Coleccion De Palabras Que Guarden Valores Numericos?
Bueno eso es correcto. Una colección es un objeto y los objetos se pasan siempre por referencia, como los arrays, etc. Cambiar algo en una función produce el efecto de cambiarlo en el original.
Si lo que quieres es preservar el original tienes que hacer esto:
Citar:
Bueno eso es correcto. Una colección es un objeto y los objetos se pasan siempre por referencia, como los arrays, etc. Cambiar algo en una función produce el efecto de cambiarlo en el original.
Si lo que quieres es preservar el original tienes que hacer esto:
Objetivo: Re: Coleccion De Palabras Que Guarden Valores Numericos?
Además de colecciones, se pueden crear estructuras (o incluso clases, usando propiedades), para guardar "estructuras de datos complejos":
http://cursogambas.blogspot.com.es/2012/08/estructuras.html
http://cursogambas.blogspot.com.es/2012/08/estructuras.html
Página 1 de 1
No puede crear mensajesNo 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
Está utilizando la versión (Lo-Fi). Para ver la versión completa del foro, haga clic aquí.
Powered by Icy Phoenix based on phpBB
Design by DiDiDaDo
Página generada en:: 0.4001s (PHP: -77% SQL: 177%)
Consultas SQL: 47 - Debug off - GZIP Activado