Colecciones Que Pierden Itemes.


Objetivo: Colecciones Que Pierden Itemes.
Hola a todos.
Hay ocasiones en que la colecciones pierden elementos de la lista cuando son asignados valores vacíos a estos.
Supongo que se trata de un bug, pero me gustaría saber que opinan al respecto.
Dejo un ejemplo de colecciones y si en vez de cambiar el texto del día de la semana por otro, ponen una cadena nula "" entonces ese dia desaparecera de la lista..
' gambas class file

Public ctn As New Collection

Public Sub Form_Open()

Dim day As String

TreeView1.Clear
ctn.Clear
ctn = init()
If ctn.Count > 0 Then
TreeView1.Add("d", ("Días"))
For Each day In ctn
TreeView1.Add(ctn.Key, day,, "d")
Next
Endif
TreeView1["d"].Expanded = True

End

Public Sub init() As Collection

Dim c As New Collection

c.Add("lunes", "d1")
c.Add("martes", "d2")
c.Add("miercoles", "d3")
c.Add("jueves", "d4")
c.Add("viernes", "d5")

Return c

End

Public Sub TreeView1_DblClick()

Dim str As String

str = InputBox(("Cambio de día"), ("Cambio de día"), ctn[TreeView1.Current.Text])
ctn[TreeView1.Current.Key] = str

TreeView1.Current.Text = str
Print ctn[TreeView1.Current.Text]

End

Saludos.

Perfil MP  
Objetivo: Re: Colecciones Que Pierden Itemes.
Tincho:

Creo que si asignas null, eliminas la llave y si asignas una cadena vacía hace lo mismo.
Y por similitud null es:

Citar:

Esta constante se emplea para representar una referencia a un objeto nulo, una cadena de longitud cero, una fecha nula, o un valor Variant no inicializado.


Tienes que asegurarte que se le asigna un valor a la llave.

nullcadenavacia

Saludos

última edición por Shell el Domingo, 27 Enero 2019, 08:48; editado 1 vez
Objetivo: Re: Colecciones Que Pierden Itemes.
Viene en la documentación: Establecer un item a null es eliminarlo.


Perfil MP  
Objetivo: Re: Colecciones Que Pierden Itemes.
shordi escribió: [Ver mensaje]
Viene en la documentación: Establecer un item a null es eliminarlo...

Si, es verdad lo indica claramente, ahora lo veo.
http://gambaswiki.org/wiki/comp/gb/collection
Es un poco retorcido no? porque para que poner el método "Remove" entonces.
La verdad me parece que no es práctico que los itemes de una colección sean eliminados al asignarle el valor particular null,.No sucede así en el caso de las matrices de texto String[].

Saludos.

Perfil MP  
Objetivo: Re: Colecciones Que Pierden Itemes.
Tincho:

Citar:

Es un poco retorcido no? porque para que poner el método "Remove" entonces.


Podríamos decir que existen distintas formas de hacer algo. A veces solo una.
En gambas como en cualquier lenguaje según versión este ha ido evolucionando,
creando distintos y nuevos métodos y algunos hacen lo mismo de distinta forma.

No sabemos si el método remove fue primero. O lo más probable sea que comenzó
igualando a null o cadena vacía para eliminar el item.

Nos vamos a encontrar esto en gambas muchas veces. Imagina como se haría desde
su primera versión.

En el lenguaje "C" se llaman colecciones a las estructuras. En Python se llaman diccionarios, no existen un método remove.
Y desde luego en Java las colecciones son un un rollo comparadas con los anteriores.

Saludos


Página 1 de 1


  
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

   

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.4546s (PHP: -81% SQL: 181%)
Consultas SQL: 45 - Debug off - GZIP Activado