LiveCode 8.1 and the Filter enhancements...

Monte Goulding monte at appisle.net
Wed Sep 14 17:58:14 EDT 2016


> On 15 Sep 2016, at 7:06 AM, Paul Dupuis <paul at researchware.com> wrote:
> 
> For those using LC 8.1, and have tried the new filter command's support
> for arrays, I have a question:
> 
> I see you can filter by keys or elements from the documentations, which
> is great, but I don's see how I would do another common item
> 
> Let say I have an array that is a table (a common model) where the rows
> are numeric keys and the columns keys are "field" names. So
> 
> tArray[1]["col1"] some value
> tArray[1]["col2"] some other value
> tArray[2]["col1"] still another value
> tArray[2]["col2"] and yet one more value
> 
> Can I use the new filter command to filter on a specific column and get
> all the rows matching? For example match where ["col2"] contains "some"
> which would only return row 1.
> 
> I realize I can write code to do this (and have). I was wondering if I
> am missing something obvious and there is a way to do this using the new
> filter command enhancements in 1 line.


You aren’t missing anything. Actually what you are describing is probably better implemented with the by clause I have suggested here:
http://quality.livecode.com/show_bug.cgi?id=18309 <http://quality.livecode.com/show_bug.cgi?id=18309>

You could then:

filter elements of tArray by each[“col2”] is “some”

Or alternatively if you need match “something” and “somewhere”

filter elements of tArray with “some*” by each[“col2”]

Or if you need to do something interesting:

filter elements of tArray by someFunction(each)

function someFunction pArray
    return pArray[“col2”] is “some"
end someFunction

Cheers

Monte


More information about the use-livecode mailing list