Amigos, os dejo una clase sobre la que voy trabajando poco a poco , que
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! ) se accede
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
--
In order for this site to work correctly we need to store a small file (called a cookie) on your computer. Most every site in the world does this, however since the 25th of May 2011, by law we have to get your permission first. Please abandon the forum if you disagree.
Para que este foro funcione correctamente es necesario guardar un pequeño fichero (llamado cookie) en su ordenador. La mayoría de los sitios de Internet lo hacen, no obstante desde el 25 de Marzo de 2011 y por ley, necesitamos de su permiso con antelación. Abandone este foro si no está conforme.
Para que este foro funcione correctamente es necesario guardar un pequeño fichero (llamado cookie) en su ordenador. La mayoría de los sitios de Internet lo hacen, no obstante desde el 25 de Marzo de 2011 y por ley, necesitamos de su permiso con antelación. Abandone este foro si no está conforme.
TStringList. Revision
- ignacio
- Site Admin
- Mensajes: 9259
- Registrado: Lun Abr 06, 2015 8:00 pm
- Ubicación: Madrid, Spain
- Contactar:
TStringList. Revision
Rafa,
Para la sobrecarga del operador:
METHOD aStrings( nIndex, cString ) OPERATOR "[]"
Para su uso:
En vez de: MsgInfo( o:aStrings(1) )
Usar: msginfo( o[1] )
Un saludo
--
Ignacio Ortiz de Zúñiga
Xailer support / Soporte de Xailer
http://www.xailer.com
http://www.xailer.info
"rafa" <thefull_quita@t-gtk.org> escribió en el mensaje
news:497df761$[email=1@svctag-j7w3v3j....]1@svctag-j7w3v3j....[/email]
> Amigos, os dejo una clase sobre la que voy trabajando poco a poco , que
> 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! ) se accede
> 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
>
Para la sobrecarga del operador:
METHOD aStrings( nIndex, cString ) OPERATOR "[]"
Para su uso:
En vez de: MsgInfo( o:aStrings(1) )
Usar: msginfo( o[1] )
Un saludo
--
Ignacio Ortiz de Zúñiga
Xailer support / Soporte de Xailer
http://www.xailer.com
http://www.xailer.info
"rafa" <thefull_quita@t-gtk.org> escribió en el mensaje
news:497df761$[email=1@svctag-j7w3v3j....]1@svctag-j7w3v3j....[/email]
> Amigos, os dejo una clase sobre la que voy trabajando poco a poco , que
> 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! ) se accede
> 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
>
TStringList. Revision
"Ignacio Ortiz de Zúñiga" <NoNameToAvoidSpam@xailer.com> wrote:
>Rafa,
>
>Para la sobrecarga del operador:
>
> METHOD aStrings( nIndex, cString ) OPERATOR "[]"
>
>Para su uso:
>
>En vez de: MsgInfo( o:aStrings(1) )
>
>Usar: msginfo( o[1] )
>
Mamma mia! Que error más infantil que he cometido , jajaja.
El problema es que en Delphi se esta sobrecargando una property, que entiendo
no es posible en Xailer, y yo emperrao.
¿ Es posible sobrecargar una property/DATA ?
saludos
rafa Carmona
>Rafa,
>
>Para la sobrecarga del operador:
>
> METHOD aStrings( nIndex, cString ) OPERATOR "[]"
>
>Para su uso:
>
>En vez de: MsgInfo( o:aStrings(1) )
>
>Usar: msginfo( o[1] )
>
Mamma mia! Que error más infantil que he cometido , jajaja.
El problema es que en Delphi se esta sobrecargando una property, que entiendo
no es posible en Xailer, y yo emperrao.
¿ Es posible sobrecargar una property/DATA ?
saludos
rafa Carmona
TStringList. Revision
Me autorespondo, no es necesario sobrecargar una data.
En Delphi, por lo tanto nosotros lo haremos igual,
o[1] es igual a o.strings[1]
por lo tanto, sobrecargando el method ya lo tenemos.
Thanks Ignacio!
Rafa Carmona
Saludos
En Delphi, por lo tanto nosotros lo haremos igual,
o[1] es igual a o.strings[1]
por lo tanto, sobrecargando el method ya lo tenemos.
Thanks Ignacio!
Rafa Carmona
Saludos