Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

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

Coloboración Paypal con ClubDelphi

 
 
Herramientas Buscar en Tema Desplegado
  #8  
Antiguo 16-10-2008
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is online now
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 19.437
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
Por pasos:
(1) Carga el fichero en un TStringList (llamaremos el original). Hay un método que lo hace, esa es otra de las ventajas del TStrigList.

Código Delphi [-]
  TS.loadFromFile('nombrefichero')

(2) Monta un segundo TStringList con las cadenas; Ese segundo es el que utilizaremos para ordenar. Tendrás las cadenas y el apuntador e la posición en la lista original.

Código Delphi [-]
var
  i:Integer;
  pi:PInteger;
begin
...
TS2 := TStringList.Create();
...
for i := 0 to (TS.Count - 1) do begin
  Str := 'Cadena con los campos 2 y 8'  // CURRO PARA TÍ
  // tendrás en Str concatenados el campo2 y el campo8

  // Añadirlo a la segunda lista
  pi := Pointer(i);
  // Añadimos a la segunda lista el String y la posicion en la original (usamos el puntero para colocar la posicion)
  TS2.AddObject(Str, TObject(pi));
end;

// Cuando salgas del FOR, en TS2 tendrás tantas cadenas como en TS
// pero sólo con los campos2 y 8

Ahora tu segunda lista tiene las cadenas 2 y 8 y la posicion en la lista original; Al ordenar, ordenará por las cadenas y segirás teniendo cada cadena con un entero que te dirá la posición en la lista original.

(3) Ordenar.

Código Delphi [-]
  TS2.Sort();

Si originalmente la lista estaba así (TS):
Lunes
Martes
Miercoles
Jueves
Viernes
Sábado
Domingo

La segunda lista estará así (TS2) despues de ordenar; Lo segundo es el apuntador:
Domingo (7)
Jueves(4)
Lunes(1)
Martes(2)
Miercoles(3)
Sábado(6)
Viernes(5)

Por lo tanto puedes reordenar la lista original en una tervera (TS3) utilizando algo así:

Código Delphi [-]
    for i := 0 to (TS2.Count - 1) do begin
      // cadena en la segunda lista
      Str := TS2[i];
      // posicion en la lista original
      j := Integer(TS2.Objects[i]);
      // añadirlo a la ternera lista
      TS3.Add(TS.[j]);
    end;

Espero que quede más claro.
__________________
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.

Última edición por Neftali [Germán.Estévez] fecha: 16-10-2008 a las 11:22:11.
Responder Con Cita
 



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
Leer parte de un fichero .RTf Tonio Varios 2 27-03-2008 11:25:53
leer de fichero machingol Varios 7 09-05-2007 17:22:42
Leer fichero rocio84 Varios 1 21-05-2006 10:45:06
leer fichero de texto davidgaldo Varios 1 08-11-2005 15:05:12
Leer un fichero .ini oesteve OOP 6 16-06-2003 16:40:20


La franja horaria es GMT +2. Ahora son las 11:17:56.


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