Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 27-03-2014
Avatar de ingabraham
ingabraham ingabraham is offline
Miembro
 
Registrado: ago 2007
Posts: 614
Poder: 17
ingabraham Va por buen camino
Question ordenar descendente TStringList Sort

-tengo una lista TStringList

2003
2004
2005


quiero ordenarla descendentemente , he probado con el metodo sort
__________________
Enseñar es la virtud de un sabio.
Responder Con Cita
  #2  
Antiguo 27-03-2014
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola ingabraham.
Cita:
Empezado por ingabraham Ver Mensaje
...
quiero ordenarla descendentemente , he probado con el metodo sort
¿ Y no te ha funcionado ?, intenta de este modo:
Código Delphi [-]
...
function CompareDesc(TS: TStrings; const i1, i2: Integer): Integer;
begin
  Result:= CompareText(TS[i2], TS[i1]);
end;

procedure TForm1.Button1Click(Sender: TObject);
var
  TS: TStringList;
begin
  TS:= TStringList.Create;
  try
    TS.Add('2003');
    TS.Add('2004');
    TS.Add('2005');
    TS.CustomSort(@CompareDesc);
  finally
    TS.Free;
  end;
end;

Saludos
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....

Última edición por ecfisa fecha: 27-03-2014 a las 23:44:37.
Responder Con Cita
  #3  
Antiguo 28-03-2014
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.276
Poder: 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
El método Sort de los TStringList es muy eficiente y funciona bastante bien.
¿Cual es el problema?

Si lo quieres ordenado ascendente recorre la lista desde 0 hasta (Count-1)
Si la quieres descendente recorrela desde (count-1) hasta 0

Tal vez no he entendido el problema...
__________________
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
  #4  
Antiguo 28-03-2014
Avatar de nlsgarcia
[nlsgarcia] nlsgarcia is offline
Miembro Premium
 
Registrado: feb 2007
Ubicación: Caracas, Venezuela
Posts: 2.206
Poder: 21
nlsgarcia Tiene un aura espectacularnlsgarcia Tiene un aura espectacular
ingabraham,

Cita:
Empezado por ingabraham
...tengo una lista TStringList...quiero ordenarla descendentemente...
Revisa este código:
Código Delphi [-]
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls;

type
  TForm1 = class(TForm)
    ListBox1: TListBox;
    Button1: TButton;
    Button2: TButton;
    Button3: TButton;
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
    procedure Button3Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

const
  A1 : Array[0..10] of Integer = (2001,2000,2005,2008,2003,2002,2006,2004,2007,2010,2009);

var
  Form1: TForm1;

implementation

{$R *.dfm}

// Ordena un TStringList por el método Sort
procedure TForm1.Button1Click(Sender: TObject);
var
   i : Integer;
   S : TStringList;


begin

   S := TStringList.Create;

   Randomize;

   for i := Low(A1) to High(A1) do
      S.Add(IntToStr(A1[i]));

   S.Sort;

   ListBox1.Sorted := False;

   ListBox1.Clear;

   for i := S.Count - 1 downto 0 do
      ListBox1.Items.Add(S[i]);

   S.Free;

end;

// Ordena un TStringList por la propiedad Sorted
procedure TForm1.Button2Click(Sender: TObject);
var
   i : Integer;
   S : TStringList;


begin

   S := TStringList.Create;

   Randomize;

   S.Sorted := True;

   for i := Low(A1) to High(A1) do
      S.Add(IntToStr(A1[i]));

   ListBox1.Sorted := False;

   ListBox1.Clear;

   for i := S.Count - 1 downto 0 do
      ListBox1.Items.Add(S[i]);

   S.Free;

end;

function CompareDesc(TS: TStrings; const i1, i2: Integer): Integer;
begin
   Result:= CompareText(TS[i2], TS[i1]);
end;

// Ordena un TStringList por el método CustomSort
procedure TForm1.Button3Click(Sender: TObject);
var
   i : Integer;
   S : TStringList;

begin

   S := TStringList.Create;

   Randomize;

   for i := Low(A1) to High(A1) do
      S.Add(IntToStr(A1[i]));

   S.CustomSort(@CompareDesc);

   ListBox1.Sorted := False;

   ListBox1.Items.Assign(S);

   S.Free;

end;

end.
El código anterior ordena un TStringList de forma descendente a través de tres métodos equivalentes y muestra el resultado en un TListBox, como se muestra en la siguiente imagen:



Espero sea útil

Nelson.

Última edición por nlsgarcia fecha: 28-03-2014 a las 15:30:09.
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
order by descendente??? pacuuy SQL 2 08-01-2008 00:13:17
Ordenar por campo Lookup (con método Sort) InfoMario MS SQL Server 5 22-12-2006 16:37:56
Ordenar registros de manera descendente con ClientDataSet alucardo Conexión con bases de datos 2 31-05-2006 18:27:34
Ordenar (sort) en rave reports raudelink Impresión 3 24-01-2006 17:33:11
Orden ascendente y descendente en DBGrid Mathom Varios 4 16-12-2005 10:01:40


La franja horaria es GMT +2. Ahora son las 18:34:00.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi