Jim,

Le 22 oct. 2009 à 05:41, Jim Ault a écrit :
your asking a lot of a chunking function to scan a large body of text between key strokes.
Start with the following steps to see if these help.
-1-  Showing a list of more than 50 hits may not be useful
Good idea.
-2- Doing an filter operation with less than 3 chars may not be useful
Filter a list with less than 3 chars reduce the list.
-3- Showing the number of lines (hits) at the top of the field is useful
Good idea.
-4- Most likely you will need to pre-index the 400K lines to get more speed Indexing is what data bases do to boost speed. You need to decide what the logic is, such as any char in any string, or words beginning with the user input, etc.
I should think to this solution.
Is the 400K set of lines dynamic or static?
Static for my tests. Dynamic from 0 to about 400k lines in production.
Does the user type logical words, or phrases?
Both.
eg.  santos  -- single word
eg.  Gourgas  -- single word
eg.  dos santos  -- phrase in order
eg.  rue Gourgas  --phrase in order
If link tables are required, then you should consider a database, since this is something they do well.

Hope this helps.

Yes, thank you.

If some body in the list is looking for a file with names and address (400K lines), I create a file with french name, French, Spanish, Italians, Portuguese first name and address of Geneva in Switzerland. It is possible to download here: http://files.me.com/jrosat/tac1b4

In the state of my tests, here the my “fastest” code:

on keyUp
   set the itemdelimiter to tab
   Switch the number of chars of me
      Case 1
         put empty into vListe
         repeat for each line theLine in vNoms
if item 2 of theLine contains me then put theLine & cr after vListe
         end repeat
         break
      Case 2
         put vListe into maListe
         put empty into vListe
         repeat for each line theLine in maListe
if item 2 of theLine contains me then put theLine & cr after vListe
         end repeat
         break
      Default
         put vListe into maListe
         put empty into vListe
         repeat for each line theLine in maListe
if item 2 of theLine contains me then put theLine&cr after vListe
         end repeat
         delete the last char of vListe
put "Number of lines =" && (the number of lines of vListe) into theOutput
        if the number of lines in vListe > 60 then
put theOutput & cr & line 1 to 60 of vListe & cr & "..." into field "fListe"
         else
            put theOutput & cr & vListe into field "fListe"
         end if
   end Switch
end keyUp

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

Reply via email to