On 3/6/22 7:33 AM, Alex Tweedly via use-livecode wrote:
Could you maybe post the code that you're using that takes 5ms ?

It does a bit more than your test, and I only estimated the number of user words since I'd tried so many things. I just tested again and this list has 173 words. The dictionary array has been reduced as per Quentin's suggestion.

I need to get two lists, one for correct words and another for incorrect words. I used to hit the array directly but my current method uses the difference command. Here's the lookup I'm using, sDictFile is a script local array:

function checkDictionary pList -- check dictionary for valid words
  put empty into tNonWords
  split pList by cr and tab
  difference pList with sDictFile into tNonWords

  set wholematches to true
  put fld "wordList" into tWList -- no longer the same as pList
  lock screen
  repeat for each key k in tNonWords -- mark non-words in list
    set the textcolor of word 1 of line lineoffset(k,tWList) of fld "wordList" to 
"red"
  end repeat
  unlock screen
  if tNonWords <> "" then put keys(tNonWords) into sStats["unknowns"] -- stats 
for reporting later

  difference pList with tNonWords
  return keys(pList)
end checkDictionary

I thought the extra time might be due to the field updates, but when I added 8 incorrect words the time didn't change. It remains steady at 5ms.

So I switched back to hitting the dictionary array directly, and the time for 173 valid words and 8 invalid words dropped (on Mac) to 1. :)

function checkDictionary pList -- check dictionary for valid words
  set wholematches to true
  repeat for each line l in pList
    if sDictFile[l] = true then
      put l & cr after tValidWords
    else
      put l & cr after tNonWords
    end if
  end repeat
  lock screen
  repeat for each line l in tNonWords -- mark non-words in list
    set the textcolor of word 1 of line lineoffset(l,pList) of fld "wordList" to 
"red"
  end repeat
  unlock screen
  if tNonWords <> "" then put tNonWords into sStats["unknowns"]
  return tValidWords
end checkDictionary

So there you have it. I'll go back to the original method. I'm glad you 
questioned this.


--
Jacqueline Landman Gay         |     jac...@hyperactivesw.com
HyperActive Software           |     http://www.hyperactivesw.com

_______________________________________________
use-livecode mailing list
use-livecode@lists.runrev.com
Please visit this url to subscribe, unsubscribe and manage your subscription 
preferences:
http://lists.runrev.com/mailman/listinfo/use-livecode

Reply via email to