Array Filtering

Bob Sneidar bobs at twft.com
Mon Jun 18 13:00:41 EDT 2012


Hi Dick. 

For simple arrays this will work well. I am envisioning large datasets, and I want to filter based upon a substring being present in a list of columns I provide. The goal is to create a comprehensive find field that works much the way a Spotlight search works, only on SQL data. 

Some will say, "Why not just query your SQL database over and over?" Good point, but the process of requerying a database, particularly one like On-Rev's from a remote location seems a little too much, but it does bring up an interesting point: What if I can save an array as a memory based sqLite table (it would have to be very specific in it's structure, say a 2 dimensional array like the one a Datagrid uses) and then I could query the sql table extremely quickly. 

This is the line I am taking at present. 

Bob


On Jun 15, 2012, at 8:21 PM, Dick Kriesel wrote:

> On Jun 15, 2012, at 3:21 PM, Bob Sneidar wrote:
> 
>> Hi all. 
>> 
>> I am wondering if anyone has developed an Array Filter procedure that would give me all the rows of an array matching a certain criteria? For instance, let's say I wanted all the rows whose key "name" contained "bob" and have it returned as an array of the same structure containing only those records? 
>> 
>> If not I am going to have to write one. 
>> 
>> Bob
> 
> 
> Hi, Bob.  Here's an example for a simple array.  Put it into a script and run "test1" from the message box.
> 
> Does it work for you?
> 
> -- Dick
> 
> 
> <postscript>
> 
> function subarrayForNameContainsString @rArray, pString
>   local tArray
>   repeat for each key tKey in rArray
>      if rArray[ tKey ][ "name" ] contains pString then
>         put rArray[ tKey ] into tArray[ tKey ]
>      end if
>   end repeat
>   return tArray
> end subarrayForNameContainsString
> 
> on test1
>   local tArray, tSubarray
>   put "Betty" into tArray[ 123 ][ "name" ]
>   put "Bob" into tArray[ 234 ][ "name" ]
>   put "carpenter" into tArray[ 234 ][ "occupation" ]
>   put subarrayForNameContainsString( tArray, "Bob" ) into tSubarray
>   breakpoint
> end test1
> 
> </postscript>
> 
> 
> 
> 
> _______________________________________________
> 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