Programación General > Visual Basic 6.0 e inferiores
Ordenar Una Coleccion
(1/1)
lavi:
Holas... a ver si alguien puede ayudarme.. tengo que pasar como parametro una coleccion y ordenar sus items por apellidos; y no puedo hacerlo desde la consulta sql con el sort sino con un algoritmo.. si alguien tiene algún código sobre esto se lo agradeceria...
gracias.
cpmario:
En Planet Source Code (PSC) hay muchos algoritmos para hacer arreglos (sort) de palabras, por ejemplo:
http://www.planet-source-code.com/vb/scrip...=67253&lngWId=1
:comp:
lavi:
Gracias, busqué allí y encontré unos algoritmos pero lo que tengo como base es este cód; que claro no me lo ordena... como puedo hacer para que lo ordene por nombre...
--- Citar ---
Public Function REORDENAR(DESORDENADA As Collection) As Collection
Set REORDENAR = New Collection
Dim cl As New cAfiliado1
Dim i As Integer
For i = 0 To DESORDENADA.Count - 1
For Each cl In DESORDENADA
If cl.Nombre < DESORDENADA.Item(i).Nombre Then
REORDENAR.Add cl
Exit For
End If
Next
Next
End Function
a ver si alguien me tira una idea...
gracias...
--- Fin de la cita ---
cpmario:
El siguiente código es para ordenar un Array de texto, deberás adaptarlo para ordenar la colección.
--- Código: Text ---' shell sort of an array of strings, fast version' lngLenDic es la cantidad de palabras a ordenar (Ubound)Sub SortArrayDic(ByRef sArray() As String, lngLenDic As Long) Dim Value As String Dim Index As Long Dim index2 As Long Dim firstEl As Long Dim lastEl As Long Dim distance As Long Dim numEls As Long If lngLenDic < 2 Then Exit Sub firstEl = 0 lastEl = lngLenDic numEls = lastEl - firstEl + 1 ' find the best value for distance Do distance = distance * 3 + 1 Loop Until distance > numEls Do distance = distance \ 3 For Index = distance + firstEl To lastEl Value = sArray(Index) index2 = Index Do While (sArray(index2 - distance) > Value) sArray(index2) = sArray(index2 - distance) index2 = index2 - distance If index2 - distance < firstEl Then Exit Do Loop sArray(index2) = Value Next Loop Until distance = 1 End Sub :comp:
Navegación
Ir a la versión completa