This seems to do the job. No polish, but you'll get the idea. .Jerry
On May 10, 2012, at 8:46 PM, Jim Hurley wrote: > I have a list of streets: > > Main St > Oak Ave > N Auburn > Kimberly Ct > S Rector Rd > Maple Ave > W Pine St > Fairmont Ave > > I want to sort them, but ignoring the compass prefix (N E S W) to give: > > N Auburn > Fairmont Ave > Kimberly Ct > Main St > Maple Ave > Oak Ave > W Pine St > S Rector Rd > > The best I have come up with is performing a bubble sort where I have control > of the first word. > > That script is below. This works well enough for short lists, but not for > longer lists. > It might be possible to speed it up with arrays, but that is not what I'm > after right now. > I have seen some amazing things done with custom sorts in Live Code. I > confess, I never understood them. > > Is there a custom sort available in Live Code to do this kind of sort? > > Thanks, > JIm Hurley > > Here is the bubble sort: > > on mouseUp > put field 1 into tList > put "N E S W" into tWordsToIgnore > put the number of lines in tList into n > repeat > put true into noChange > repeat with i = 1 to n-1 > put theFirstWord(line i of tList, tWordsToIgnore) into tFirst > put theFirstWord(line i + 1 of tList, tWordsToIgnore) into tSecond > --Reverse sequencial pairs if out of order. > if tFirst > tSecond then > put line i of tList into temp > put line i + 1 of tList into line i of tList > put temp into line i + 1 of tList > put false into noChange > end if > end repeat > if the shiftKey is down then exit to top --Just in case > if noChange then exit repeat ---Keep it up until no change. > end repeat > put tList into field 2 > end mouseUp > > function theFirstWord temp, tIgnoreWords > put word 1 of temp into tFIrstWord > if tFirstWord is among the words of tIgnoreWords then > return word 2 of temp > else > return word 1 of temp > end if > end theFirstWord > _______________________________________________ > 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