nos permite trabajar cadenas de texto cómodamente.
Ahora permite usar ordenación, case sensitive, si queremos que en la
lista existían o no elementos duplicados, etc..
A la espera de un problema con la sobrecarga del operador "[]",
( J.Gimenez, pol amol a Dioz! que me tienes abandonao!
![Wink ;-)](./images/smilies/icon_e_wink.gif)
como si fuese un method normal.
Vamos lentos, si, pero es que la conversión delphi/Xailer a veces no
resulta del todo satisfactoria, a veces se les va la olla a estos de
Delphi y el tiempo es muy miserable.
Espero seguir portando más funcionalidad, hasta llevar a LoadFromTxt() y
SaveFromTxt(), que es en lo que principalmente me interesaba, pero
bueno, al final terminaré de hacerla casi casi el 100%.
La clase esta ahora mismo pensada en la funcionalidad, no en la
optimización.
Un ejemplo;
o := TStringList():Create()
o:lCaseSensitive := .f. // Se establece a UPPER.
o:lSorted := .T. // Se establece que se ordene.
o:Add( "Hola" ) // nIndex 1
o:Add( "1 Hola" ) // nIndex 1, porque es ordenado.
// TODO:Vamos a tratarlo como una función
MsgInfo( o:aStrings(1) ) // 1 Hola
// En listas ordenadas, por defecto no permite duplicados por lo tanto
// Si queremos duplicados en lista ordenadas tan fácil como
// o:Duplicates := dupAccept
o:Add( "Hola" )
// Aqui tendremos 2, no 3, porque no permite duplicados
MsgInfo( "Count:" + ToString( o:nCount ) )
// Ahora , vamos a quitar la ordenación
o:Clear()
o:lCaseSensitive := .T. // Se establece a UPPER.
o:lSorted := .F. // Se establece que se ordene.
o:Add( "Hola" ) // nIndex 1
o:Add( "1 Hola" ) // nIndex 1, porque es ordenado.
o:Add( "Hola" )
MsgInfo( o:aStrings(1) ) // Hola
// Aqui tendremos 3
MsgInfo( "Count:" + ToString( o:nCount ) )
// Ordenación al reves.
o:Clear()
o:lCaseSensitive := .T. // Se establece a UPPER.
o:lSorted := .T. // Se establece que se ordene.
o:bCustumSort := {|x,y| x > y }
o:Add( "1" )
o:Add( "5" )
o:Add( "3" )
o:Add( "2" )
o:Add( "4" )
MsgInfo( o:aStrings(1) ) // 5
Saludos
Rafa Carmona
--