PDA

Ver la Versión Completa : Ordenar texto en un memo


Jad
23-05-2006, 17:27:41
Hola Foro,

Me gustaría saber si el componente memo tiene algun método para ordenar el texto que tiene. Quiero ordenar palabras.

Ejemplo, si tengo

zapato
amor
gato

quisiera verlo como

amor
gato
zapato

Gracias por su atención ;)

Alberto.

Neftali [Germán.Estévez]
23-05-2006, 17:46:39
Crea un StringList ordenado. Pasa los datos de Memo.Lines al StringList con:

ST.AddStrings(Memo1.Lines);


Y vuelve a volcar esto sobre el memo. El StringList te las habrá ordenado correctamente.


Completo sería algo así:


// Crear
ST := TStringList.Create();
ST.Sorted := True;
// Asignar
ST.AddStrings(Memo1.Lines);
// Retornarlas al Memo
Memo1.Lines.Clear;
Memo1.Lines.AddStrings(ST.Strings);
// Liberar
ST.Free;

Northern
23-05-2006, 17:54:22
:confused: creo que no, y si utilizas un TStringList o cualquier otro control o componente ?....ordenar palabras se puede enfocar de diferentes maneras, quieres ordenarlas en tiempo real o cuando tu le das la orden.....:confused:

Jad
23-05-2006, 21:24:56
Hola de nuevo,

Para ordenar el memo puedo usar el componente TStringList que mencionan pero no lo veo en la paleta de componentes, y la instrucción

ST= TStringList->New(); //equivalente a ST:=TStringList.Create();

me da error porque ST no está definida. Si pongo

TStringList ST;

me dice que debo usar new.

Algún tip más, por favor. :eek:

Alberto

reevil
23-05-2006, 22:38:22
utiliza el componente TListBox, como ya te dijo neftali, copias el texto, ordenas (con la propiedad sort del listbox) y vuelves a colocar tu texto en el memo

saludos

Jad
24-05-2006, 04:32:58
Gracias Neftali & Northern, ya funciona pero tuve que cambiar el ST.Strings por ST.Items

Until nex happy time :D

Alberto

Neftali [Germán.Estévez]
24-05-2006, 10:47:58
utiliza el componente TListBox, como ya te dijo neftali

Bueno, yo no dije un TListBox (que es un componente visual), dije un TStringList, que es una clase que no utiliza componente, aunque al final es lo mismo.

Seguramente lo del TStringList no te funcionaba, porque faltaba definir la variable, cosa que no puse, porque imaginé que lo haría tú.


var
TS:TStringList;
begin
...