FindIndex question
Bob Sneidar
bobsneidar at iotecdigital.com
Mon Mar 25 11:15:22 EDT 2024
I wrote a findInArray() function that will convert an array to a memory based SQL database, and one of the arguments is the SQL query statement to use on the database. I have another called FilterArray() which simply iterates through the keys to output those matching a criteria.
Bob S
> On Mar 24, 2024, at 2:22 PM, Neville Smythe via use-livecode <use-livecode at lists.runrev.com> wrote:
>
>
>> On 25 Mar 2024, at 3:00 am,Mike Kerner wrote:
>>
>> i don't know if you dove into the code, but it's too early to think about
>> unpacking this, so here's the code: ...
>
> Thanks Mike
>
> While I was aware of the optional parameters feature of LC commands I have never used it I so was unfamiliar with the syntax. The penny had never dropped that the parameter list for a command is just an array, so evidently you can actually send an array instead of a comma delimited list
>
> Which means that you can send FindIndex a single parameter pKeyPairsA which is an array with alternating colName,searchStr values
>
> Setting up such an array is not particularly convenient for coding however. My workaround had been to use a custom function hack
>
> function myFindIndex pDataGrid, pKeyPairs
> — pKeyPairs is a comma delimited list such as “colname1,str1,colname2,str2,..”
>
> replace comma with quote & comma & quote in pKeyPairs
> put “dispatch FindIndex to” && pDataGrid && “with” && quote & pKeyPairs & quote into tCommandStr
> do tCommandstr
> put the result into tFoundIndex
> ...
>
> A much more elegant (if probably no faster) solution is
>
> function myFindIndex pDataGrid, pKeyPairs
> — pKeyPairs is a comma delimited list such as “colname1,str1,colname2,str2,..”
>
> set the columnDelimiter to comma
> split pKeyPairs by column
> dispatch “FindIndex" to pDataGrid with pKeyPairs
> put the result into tFoundIndex
> ...
>
>
> BTW, where did you find the source code for DataGrid handlers? I now see how one could write a FindIndices function to return all indices rather than just the first found … or even a general WHERE search :-)
>
> Neville Smythe
>
>
>
>
> _______________________________________________
> 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