FindIndex question

Mike Kerner MikeKerner at roadrunner.com
Tue Mar 26 08:39:02 EDT 2024


other way, alex. use the pg, not the dg, for now.
BUT, here's a good reason to use the dg - you can fix issues with it. the
source of the pg is closed, and you can't get at it, AFAIK. check the issue
tracker for issues with it. you can't address them.
please, no comments from the peanut gallery on the status of lcb. that's a
separate problem.
SO, if the script compiler was in the wild, i would expect the dg to be
faster. would it be as fast as the pg? dunno. but, again, you could work on
it.

On Mon, Mar 25, 2024 at 6:07 PM Alex Tweedly via use-livecode <
use-livecode at lists.runrev.com> wrote:

> Bob - I think you've mentioned these functions (and posted code, or a
> pointer to code, for them) before (but I couldn't find it). Any chance
> you could re-post (or just send to me, or ...)
>
> Mike - I couldn't see in the thread *why* you want to use a dg ather
> than a pg ? Is there a missing capability you need ? Or some non-obvious
> (to me) reason to avoid pg?
>
> Thanks,
>
> Alex.
>
> On 25/03/2024 18:50, Mike Kerner via use-livecode wrote:
> > i guess what i'm wondering is how quickly or slowly the dg will render,
> if
> > the dgArray is large. it seems to be slower, when the array is larger.
> >
> > On Mon, Mar 25, 2024 at 2:48 PM Mike Kerner <MikeKerner at roadrunner.com>
> > wrote:
> >
> >> i never heard of it called an "elevator". I anyways heard "thumb"
> >>
> >> On Mon, Mar 25, 2024 at 2:08 PM Bob Sneidar via use-livecode <
> >> use-livecode at lists.runrev.com> wrote:
> >>
> >>> I’ve thought about that. A temporary memory database would not appear
> to
> >>> the user to be faster, as the initial query for a large dataset will
> happen
> >>> all at once during which Livecode would be unresponsive. And if you
> page
> >>> the queries from the live database, re-storing the data in a memory
> >>> database would just be added time.
> >>>
> >>> You could use send in time to cache forward and backwards a few pages,
> >>> and in that case a memory database could help, but if the user drags
> the
> >>> elevator box (how many people know what THAT is) then you go back to
> square
> >>> 1 concerning efficiency.
> >>>
> >>> Bob S
> >>>
> >>>
> >>>> On Mar 25, 2024, at 10:34 AM, Mike Kerner via use-livecode <
> >>> use-livecode at lists.runrev.com> wrote:
> >>>> i would be curious to know if an in-memory sqlite db increases scroll
> >>> speed
> >>>> with dg's.
> >>>> basically, you would live load the dg with pages from the db.
> >>>> i can't imagine that the dg is faster than the pg. everything i've
> tried
> >>>> with the pg is faster than the dg.
> >>>> just one more reason to resurrect the script compiler and release it.
> >>>>
> >>>> On Mon, Mar 25, 2024 at 11:16 AM Bob Sneidar via use-livecode <
> >>>> use-livecode at lists.runrev.com> wrote:
> >>>>
> >>>>> 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
> >>>>> _______________________________________________
> >>>>> 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
> >>>>>
> >>>>
> >>>> --
> >>>> On the first day, God created the heavens and the Earth
> >>>> On the second day, God created the oceans.
> >>>> On the third day, God put the animals on hold for a few hours,
> >>>>    and did a little diving.
> >>>> And God said, "This is good."
> >>>> _______________________________________________
> >>>> 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
> >>> _______________________________________________
> >>> 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
> >>>
> >>
> >> --
> >> On the first day, God created the heavens and the Earth
> >> On the second day, God created the oceans.
> >> On the third day, God put the animals on hold for a few hours,
> >>     and did a little diving.
> >> And God said, "This is good."
> >>
> >
>
> _______________________________________________
> 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
>


-- 
On the first day, God created the heavens and the Earth
On the second day, God created the oceans.
On the third day, God put the animals on hold for a few hours,
   and did a little diving.
And God said, "This is good."


More information about the use-livecode mailing list