sorting words ?
Mike Bonner
bonnmike at gmail.com
Wed Dec 9 10:30:07 EST 2015
Ignore the extra puts in my preceding post of course. Forgot to clean up
all of them after "seeing" how things were working.
On Wed, Dec 9, 2015 at 8:28 AM, Mike Bonner <bonnmike at gmail.com> wrote:
> It seems all you'd have to do is have sort include any trailing chars up
> to the next word along with word in question.
>
> " one two three." Spaces to the left of a word (at least as the
> first word) don't seem to delimit the word following, hence grabbing word 1
> of the above string would return "one" rather than empty. sorting and
> returning "one " for one in a sort (and onward) might work, but then as
> in my example string, its already a pain again because what do you do with
> the preceding spaces?
>
> It seems that if you have special case needs, it'd be easier to roll your
> own. (assuming simply setting a delimiter won't work)
>
> Something like this works well..
>
> local sDataArray
> on mouseUp
> put " the quick brown fox jumped" into tDat
> put empty
> put 0 into tCount
> repeat for each word tWord in tDat
> add 1 to tCount
>
> put tWord into sDataArray[tCount]
> end repeat
> put the keys of sDataArray into tKeys
> sort lines of tKeys by wordFunc(each)
> put tKeys
> end mouseUp
>
> function wordFunc pSortKey
> put sDataArray[pSortKey] & comma after msg
> return sDataArray[pSortKey]
> end wordFunc
>
>
> You end up with an array with words keyed by their original key position,
> plus a key list sorted by word. It leaves the original (strangely
> formatted) text alone but you then have easy (and it seems, fast) access to
> the words in sorted order.
>
>
>
> On Wed, Dec 9, 2015 at 6:17 AM, Mark Waddingham <mark at livecode.com> wrote:
>
>> On 2015-12-09 13:42, jbv at souslelogo.com wrote:
>>
>>> Hi Mark,
>>>
>>> I am probably missing something, but items can be separated by multiple
>>> itemdelimiters too, but nevertheless the sorting function works, as in
>>> this
>>> example :
>>> get "12,5,,4,10,,,11,24"
>>> sort items of it ascending numeric
>>>
>>> it returns ,,,4,5,10,11,12,24
>>> and no compilation error...
>>>
>>
>> Right - but:
>>
>> "1,2,,,,3,4,5"
>>
>> Is a list of 8 items - 3 of them empty.
>>
>> "the quick brown fox jumped"
>>
>> Is a list of 5 words - multiple item delimiters mean something, multiple
>> spaces are just a single 'delimiter' in this context.
>>
>>
>> Warmest Regards,
>>
>> Mark.
>>
>>
>> --
>> Mark Waddingham ~ mark at livecode.com ~ http://www.livecode.com/
>> LiveCode: Everyone can create apps
>>
>> _______________________________________________
>> 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
>>
>
>
More information about the use-livecode
mailing list