tincho   02-09-2022, 10:43
#1
Hola a todos.
Alguien podria decirme como ordenar una coleccion simple, donde el indice es un texto y el valor también.
Dejo un ejemplo con una coleccion similar, donde el indice es un año, y está ordenado de menor a mayor, luego el texto, que es lo que deseo ordenar de menor a mayor es un texto alfanumérico cualquiera.

Primer planteo de solucion
Código:
Public Function CSort(c As Collection) As Collection

  Dim aTmp As New String[]
  Dim cTemp As New Collection
  Dim sText As String

  For Each sText In c
    aTmp.Add(sText & "\t" & c.Key)
  Next

  aTmp.Sort(gb.Ascent)

  For Each sText In aTmp
    cTemp[Split(sText, "\t")[1]] = Split(sText, "\t")[0]
  Next

  Return cTemp

End

Pero la salida no contempla los caracteres diacríticos

...
1879: Uso de tarjetas perforadas para el senso
1938: Z1 - Computadora electromecánica
1941: Z3 - Primera máquina programable y completamente automática
1617: Ábaco neperiano
1854: Álgebra boleana
Archivos adjuntos
.gz
sample-sort-collection-0.0.1.tar.gz (Tamaño: 14.05 KB Descargas: 3)
Última modificación: 02-09-2022, 13:28 por tincho.

1 Saludo.
Shordi   02-09-2022, 11:29
#2
Sólo cambia la línea
[code]
por
[code]


Saludos

No podemos regresar
Shell   02-09-2022, 11:45
#3
Una colección como "tal" no se puede ordenar, otra cosa es un array como demuestra Shordi.

La colección no tiene indice (un array si, pero esto ya lo sabes de sobra) Smile ,
tiene clave. Un par clave y valor. Un diccionario en Python.

Bajo el ejemplo que también me interesa.

Interesante la forma de como lo haces.

Saludos
Última modificación: 02-09-2022, 13:06 por Shell.

"El conocimiento es la mejor inversión que se puede hacer" - Abraham Lincoln
tincho   02-09-2022, 13:19
#4
(02-09-2022, 11:29)Shordi escribió: Sólo cambia la línea...

Perfecto, ya ordena todo correctamente sin importar si se trata de  letras mayúsculas o acentuadas.

(02-09-2022, 11:45)Shell escribió: La colección no tiene indice (un array si, pero esto ya lo sabes de sobra) Smile ,

Desde gambas 3.17 las colecciones S¡si que tienen indice.
https://gambaswiki.org/wiki/comp/gb/collection/keys

(02-09-2022, 11:45)Shell escribió: Una colección como "tal" no se puede ordenar

Eso no es verdad, se pueden ordenar ciertas colecciones como la que pase el ejemplo, eso si, no es algo "nativo"
Última modificación: 02-09-2022, 13:28 por tincho.

1 Saludo.
Shell   02-09-2022, 13:49
#5
(02-09-2022, 13:19)tincho escribió: Desde gambas 3.17 las colecciones S¡si que tienen indice.
https://gambaswiki.org/wiki/comp/gb/collection/keys

Pero eso es un método que devuelve un array de claves de la colección. Huh
 
(02-09-2022, 13:19)tincho escribió: Eso no es verdad, se pueden ordenar ciertas colecciones como la que pase el ejemplo, eso si, no es algo "nativo"

A eso me refiero, que no es de forma nativa.

Pero dice un dicho que "para siete vicios existen siete virtudes", o al revés.
Al igual que has encontrado una forma de ordenar los valores de la colección.

Saludos
Última modificación: 02-09-2022, 13:50 por Shell.

"El conocimiento es la mejor inversión que se puede hacer" - Abraham Lincoln
  
Usuarios navegando en este tema: 3 invitado(s)
Powered By MyBB, © 2002-2024 MyBB Group.
Made with by Curves UI.