Ver Mensaje Individual
  #4  
Antiguo 16-10-2008
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 18.293
Reputación: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
La forma más sencilla que se me ocurre es utilizar un TStringList que ya posee métodos de ordenación.

Monta una Clave (string) utilizando los dos campos que necesitas para ordenar, manteniendo en todos los casos la misma longitud y conviertiendolos a String si no lo son. Luego esa clave se la pasas a un StringList y le mandas que ordene. Ya tendrás las claves ordenadas.

A ver si me explico; Suponiendo que los campos fueran Nombre y Cantidad, por poner uno de cada tipo:

Carlos--234--...
Felipe--123--...
Ana-23--...
Juan--3456--...
Andres--4--...


Se trataría de montar la cadena de esta forma:
(Nombre rellenando hasta 15 y Cantidad también); En este caso he rellenado con 0, pero puedes usar otro caracter.

000000000Carlos000000000000234
000000000Felipe000000000000123
000000000000Ana000000000000023
00000000000Juan000000000003456
000000000Andres000000000000004


De esta forma ahora ya puedes pasar estas cadenas y te ordenará correctamente. El pointer (TObject) puedes utilizarlo para apuntar a la posición de la lista inicial.

No se si me expliqué más o menos claramente.

__________________
Germán Estévez => Web/Blog
Guía de estilo, Guía alternativa
Utiliza TAG's en tus mensajes.
Contactar con el Clubdelphi

P.D: Más tiempo dedicado a la pregunta=Mejores respuestas.
Responder Con Cita