There ya go. :-) Bob
On May 10, 2012, at 9:23 PM, Jerry Jensen wrote: > This seems to do the job. No polish, but you'll get the idea. > .Jerry > > Aw, crap, forgot about no attachments. Here's the code: > > ------------------------------------------------ > > on mouseUp > local tList > put fld "Streets" into tList > sort lines of tList by pickStreet(each) > put tList into fld "Streets" > end mouseUp > > function pickStreet pName > if word 1 of pName is in "NSEW" then > return word 2 to -1 of pName > else > return pName > end if > end pickStreet > > ----------------------------------------------------- > > 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 >> [email protected] >> Please visit this url to subscribe, unsubscribe and manage your subscription >> preferences: >> http://lists.runrev.com/mailman/listinfo/use-livecode > > _______________________________________________ > use-livecode mailing list > [email protected] > Please visit this url to subscribe, unsubscribe and manage your subscription > preferences: > http://lists.runrev.com/mailman/listinfo/use-livecode > _______________________________________________ > use-livecode mailing list > [email protected] > Please visit this url to subscribe, unsubscribe and manage your subscription > preferences: > http://lists.runrev.com/mailman/listinfo/use-livecode _______________________________________________ use-livecode mailing list [email protected] Please visit this url to subscribe, unsubscribe and manage your subscription preferences: http://lists.runrev.com/mailman/listinfo/use-livecode
