Portal    Foro    Buscar    FAQ    Registrarse    Conectarse


Publicar nuevo tema  Responder al tema 
Página 1 de 1
 
 
Coleccion De Palabras Que Guarden Valores Numericos?
Autor Mensaje
Responder citando   Descargar mensaje  
Mensaje Coleccion De Palabras Que Guarden Valores Numericos? 
 
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?  
 




===================
Software libre, programación libre, vida libre es la Public function Libertad()as Invendible
Proyectos: VisorRV1960,Taller2015,Tanteador
https://sourceforge.net/u/v3ctor-full/profile/
Blog: http://novatocodegambas.blogspot.com.uy/
 
v3ctor - Ver perfil del usuarioEnviar mensaje privadoVisitar sitio web del usuario 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Coleccion De Palabras Que Guarden Valores Numericos? 
 
Hola v3ctor.

El dato es del tipo Variant.

Public Sub Main()
Dim frutas As New Collection

frutas.Add(2, "bananas")

'Quiero añadir otra banana
Print frutas["bananas"] + 1

Print frutas["bananas"]
'Oops!

frutas.Add(frutas["bananas"] + 1, "bananas")

Print frutas["bananas"]

End
 


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
 




===================
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: Coleccion De Palabras Que Guarden Valores Numericos? 
 
Otro ejemplo:

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
 


Vale, habría que poner el nombre de la función a Sumar y no Cambiar...

Saludos
 




===================
Gambas Básico
"No es un bug, es una característica no documentada"
 
última edición por Shell el Viernes, 07 Noviembre 2014, 18:18; editado 3 veces 
Shell - Ver perfil del usuarioEnviar mensaje privadoVisitar sitio web del usuario 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Coleccion De Palabras Que Guarden Valores Numericos? 
 
Citar:

Print frutas["bananas"] + 1


Eso no añade otra banana, sólo imprime la suma

futas["bananas"] += 1
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
dim frutas as new collection
frutas["bananas"] = 2
print frutas["bananas"]
'si un elemento no existe, es igual a nulo
print frutas["platanos"]
 

 



 
shordi - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Coleccion De Palabras Que Guarden Valores Numericos? 
 
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
 




===================
Gambas Básico
"No es un bug, es una característica no documentada"
 
última edición por Shell el Viernes, 07 Noviembre 2014, 18:02; editado 2 veces 
Shell - Ver perfil del usuarioEnviar mensaje privadoVisitar sitio web del usuario 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Coleccion De Palabras Que Guarden Valores Numericos? 
 
Citar:
Pues si, es correcto. Suma perfectamente.


mmmmmm curioso....
 



 
shordi - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje 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
 




===================
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: Coleccion De Palabras Que Guarden Valores Numericos? 
 
Citar:
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"


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:

Public Function Cambiar(una_coleccion As Collection, clave As String, valor As Integer) As Collection
dim col as collection
col=una_coleccion.copy
If una_coleccion.Exist(clave) Then
col[clave] += valor
Return col
Else
Print "No existe la clave " & clave & " en la colección"
Endif

End
 

 



 
shordi - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje 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
 




===================
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
Mostrar mensajes anteriores:    
 
OcultarTemas parecidos
Tema Autor Foro Respuestas último mensaje
No hay nuevos mensajes Coleccion Formularios pikas Controles/Librerías/Componentes 10 Lunes, 25 Enero 2010, 23:39 Ver último mensaje
pikas
No hay nuevos mensajes Metodos Numericos marcos_rivero General 4 Miercoles, 27 Enero 2010, 16:11 Ver último mensaje
marcos_rivero
No hay nuevos mensajes Como Puedo Hacer Que Al Seleccionar Una Op... metalgearxd General 2 Jueves, 14 Marzo 2013, 20:31 Ver último mensaje
metalgearxd
No hay nuevos mensajes Coleccion Dentro De Un Formulario De Un Wo... tincho Proyecto gauchoCAD 3 Viernes, 22 May 2020, 19:33 Ver último mensaje
tincho
 

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

Usuarios navegando en este tema: 0 registrados, 0 ocultos y 1 invitado
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