Sort of a problem
stephen barncard
stephenREVOLUTION2 at barncard.com
Fri May 11 00:06:29 EDT 2012
the first thing I'd try would be to use 'repeat for each' on both repeat
loops and increment the indexes using "add 1 to"
On Thu, May 10, 2012 at 8:46 PM, Jim Hurley <jhurley0305 at sbcglobal.net>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 at lists.runrev.com
> Please visit this url to subscribe, unsubscribe and manage your
> subscription preferences:
> http://lists.runrev.com/mailman/listinfo/use-livecode
>
--
Stephen Barncard
San Francisco Ca. USA
more about sqb <http://www.google.com/profiles/sbarncar>
More information about the use-livecode
mailing list