> Is there a way to sort an array that has more than one dimension by telling > Gambas on which field the sorting shoiuld be done? > > For example, if I have the array > Max, 14 > Anna, 8 > Fabien, 7 > > I would expect the result of sorting by the first field to be > Anna, 8 > Fabien, 7 > Max, 14 > > Instead, when using Array.Sort, I get > 7, 8 > 14, Anna > Fabien, Max > > which is useless. > > I have a workaround now, reading the array into a single-dimensioned array > like Max~14 > Anna~8 > Fabien~7 > > and then sort it, which produces > Anna~8 > Fabien~7 > Max~14 > > and then split and read everything back to the original array: > Anna, 8 > Fabien, 7 > Max, 14 > > But that just works, it's not really elegant. > Somebody knows a better way? > > Thanks > Matti >
Not really. The array Sort() method is very simple, as it sorts the contents of the array linearly, whatever the number of dimensions is. A workaround is using a Object[], and storing each line of your table inside by using a dedicated class, or another array. Sorting an Object[] calls the "_compare" public method on each object. This way you can sort the array the way you want. Look at the documenation of Object[].Sort() in the wiki for more details. In Gambas 3, you don't have to use an Object[], you can use a Variant[][] instead. Regards, -- Benoît Minisini ------------------------------------------------------------------------------ Come build with us! The BlackBerry(R) Developer Conference in SF, CA is the only developer event you need to attend this year. Jumpstart your developing skills, take BlackBerry mobile applications to market and stay ahead of the curve. Join us from November 9 - 12, 2009. Register now! http://p.sf.net/sfu/devconference _______________________________________________ Gambas-user mailing list Gambas-user@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/gambas-user