Random but unique
J. Landman Gay
jacque at hyperactivesw.com
Tue Jan 14 09:46:01 EST 2003
Dar Scott <dsc at swcp.com> wrote:
> This command:
>
> sort lines of ... by blahBlahBlah
>
> gets a sort key by calling (virtually) this function on each line:
>
> function sortKey each
> return blahBlahBlah
> end if
>
> If I'm right, you should be able to do other interesting sorts.
Right, and it works great. You can write a custom sort function that
does just about anything you can think of. Here's an example. I had a
list of contact info exported as a comma-delimited list of itemized lines:
first,last,phone
jacque,gay,724-1596
bob,smith,123-1234
mary,jones,345-6929
john,doe,939-2939
And I wanted to re-arrange the contents of each line so that the last
name was first, followed by the first name, then the phone. This did it:
local theCount,theRightOrder
on dosort
put fld 1 into theData -- the original list
put "2,1,3" into theRightOrder -- the key line
repeat for each line l in theData
put 0 into theCount
sort items of l by mySort(each)
put l & return after theNewData
end repeat
put theNewData into fld 2
end dosort
function mySort
add 1 to theCount
return item theCount of theRightOrder
end mySort
You could alter this to sort data in one field based on the order in
another field, or to use any arbitrary order you want. Lots of
variations are possible.
--
Jacqueline Landman Gay | jacque at hyperactivesw.com
HyperActive Software | http://www.hyperactivesw.com
More information about the use-livecode
mailing list