[Gambas-user] Natural sorting in Gambas 3

Olivier Cruilles linuxos at ...1896...
Mon Jan 25 20:33:03 CET 2010


Hi Benoit,

Thank you for this great new, I need exactly this kind of sort possibility, but in Gambas 2.xx... 

I'll wait for the stable Gambas 3.

Le 25 janv. 2010 à 20:16, Benoît Minisini a écrit :

> Hi,
> 
> I have implemented string natural comparison and sorting in the last Gambas 3 
> revision.
> 
> With that, you can, for example, sort a file name array returned by Dir() that 
> way:
> 
> 	Photo1.jpg Photo1a.jpg Photo1b.jpg Photo2.jpg ... Photo9.jpg Photo10.jpg
> 	Photo11.jpg
> 
> Instead of:
> 
> 	Photo1.jpg Photo10.jpg Photo 11.jpg Photo1a.jpg Photo1b.jpg Photo2.jpg ... 
> 	Photo9.jpg
> 
> For that, use the gb.Natural constant as sort flag.
> 
> Moreover, if you have non-ASCII letters, you can add gb.Language to the flag, 
> and non-ASCII characters will be correctly sorted too. You will get:
> 
> 	Baba.jpg Bébé1.jpg Bébé8.jpg Bébé20.jpg Bibi.jpg Bobo.jpg
> 
> instead of:
> 
> 	Baba.jpg Bibi.jpg Bobo.jpg Bébé1.jpg Bébé20.jpg Bébé8.jpg 
> 
> How does it work?
> 
> The string is splitted between parts having digits only (0-9), and parts 
> having no digits.
> 
> Parts having no digits are sorted as normal strings. 
> 
> Parts having digits are sorted according to their numerical values, unless it 
> starts with a zero.
> 
> Enjoy it!
> 
> -- 
> Benoît Minisini
> 
> ------------------------------------------------------------------------------
> The Planet: dedicated and managed hosting, cloud storage, colocation
> Stay online with enterprise data centers and the best network in the business
> Choose flexible plans and management services without long-term contracts
> Personal 24x7 support from experience hosting pros just a phone call away.
> http://p.sf.net/sfu/theplanet-com
> _______________________________________________
> Gambas-user mailing list
> Gambas-user at lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/gambas-user

Olivier Cruilles
Mail: linuxos at ...1896...






More information about the User mailing list