I may be simply misunderstanding… Since HC days, one could concatenate sort criteria using the “&” character, and obtain multiple stable sorts in one go. In LC as well, since given, in a field 1:
231 312 123 213 321 132 and in a button somewhere: on mouseUp get fld 1 sort it numeric by char 1 of each & char 3 of each answer it end mouseUp We get: 132 123 231 213 321 312 Craig > On Sep 3, 2023, at 8:29 AM, matthias rebbe via use-livecode > <use-livecode@lists.runrev.com> wrote: > > Hello Mark, > > thanks for explanation and also for your solution. I will try. > > Maybe i should get my book "regular expressions" from Jeffrey E.F.Friedl > from the shelf and should finish reading it, so i could make use of regular > expressions in Livecode more often. > > Regards, > Matthias > >> Am 03.09.2023 um 11:49 schrieb Mark Waddingham via use-livecode >> <use-livecode@lists.runrev.com>: >> >> On 2023-09-03 10:26, panagiotis m via use-livecode wrote: >>> Hello Matthias, >>> I do not think that the syntax "sort <container> by sortKey1 and sortKey2" >>> is supported >> >> Heh technically it 'is' - and does do something but it won't be what you >> expected... >> >> So the syntax for sort in this case is: >> >> sort <container> by <expression> >> >> This works by iterating over the elements in <container>, passing each >> through the expression to generate a sort key list, sorting that list and >> then reordering the original list. >> >> Expressions can contain the boolean 'and' operator, so: >> >> sort <container> by X and Y >> >> Means that the sort key is evaluated as 'X and Y' for each element - meaning >> sort ends up sorting a list of 'true' and 'false' values. >> >> As Panos says, if you want to sort by separate fields with decreasing >> priority you need to do multiple sorts from least priority to most - this >> works because 'sort' is stable (if two elements compare the same, then the >> order of them in the output list is the same as the first). >> >> The alternative is to work out a sort expression which combines the two >> parts of the element you want to sort so that the sort keys sort in that >> order. This can be quite tricky, but (for example) - let's say your >> container has elements of the form: >> >> <section-number>,<sub-section-number> >> >> So you want things in the 'obvious' sorted order - then you could use: >> >> sort tSections ascending text by format("%08d%08d", item 1 of each, item 2 >> of each) >> >> Here the sortkey is defined so that the text sort of the sort keys is that >> same as sorting first by sub-section number and then by section number. >> >> Warmest Regards, >> >> Mark. >> >> -- >> Mark Waddingham ~ m...@livecode.com ~ http://www.livecode.com/ >> LiveCode: Build Amazing Things >> >> _______________________________________________ >> use-livecode mailing list >> use-livecode@lists.runrev.com >> Please visit this url to subscribe, unsubscribe and manage your subscription >> preferences: >> http://lists.runrev.com/mailman/listinfo/use-livecode > > > _______________________________________________ > use-livecode mailing list > use-livecode@lists.runrev.com > Please visit this url to subscribe, unsubscribe and manage your subscription > preferences: > http://lists.runrev.com/mailman/listinfo/use-livecode _______________________________________________ use-livecode mailing list use-livecode@lists.runrev.com Please visit this url to subscribe, unsubscribe and manage your subscription preferences: http://lists.runrev.com/mailman/listinfo/use-livecode