Hi Éric,
Your script is superbe ! it works very well and very fast (on more than three hundred cds). In order to adapt your script to my app., I had only to replace "the long name" by "theCode" of my cards ! Great! :-)) Nevetheless, I worked on this script to well understand it and I learned a lot specially on how to use mark and unmark and also "intersect" , with which I was not yet familiarl.

Thanks a lot to Jeanne, Jim and Wilheim for their ideas, questions and suggestions. I learned a lot thanks to them too and sure I will use them here or there. I much appreciate the tools I found in the site of Wilheim.

all the best from Grenoble
André


Le Sunday, 29 Jan 2006, à 13:40 Europe/Paris, Eric Chatonet a écrit :

Hello,

I wrote my last mail from memory...
You noticed that obviously it could not work :-(
So, I dug in the "mark" solution for fun (a little bit longer but fast ;-)

function FindCards,pList
  local tList1,tList2,tFirstList,tSecondList
  -----
  unmark all cds
  mark cds by finding whole item 1 of pList
  if the number of marked cds = 0 then return empty
  -----
  repeat with i = 1 to the number of marked cds
    put the long name of marked cd i & cr after tList1
  end repeat
  -----
  if the number of items of pList > 1 then
    repeat with i = 2 to the number of items of pList
      unmark all cds
      mark cds by finding whole (item i of pList)
      if the number of marked cds = 0 then return empty
      repeat with j = 1 to the number of marked cds
        do "put the long name of marked cd j & cr after tList" & i
      end repeat
    end repeat
    -----
    put CommonLines(tList1,tList2) into tFirstList
    repeat with i = 3 to the number of items of pList
      do "put tList" & i && "into tSecondList"
      put CommonLines(tFirstList,tSecondList) into tFirstList
      if tFirstList = empty then return empty
    end repeat
    return tFirstList
    -----
  else return tList1
end FindCards
--------------------------
function CommonLines pFirstlist,pSecondlist
  local tFirstArray,tSecondArray
  -----
  repeat for each line thisLine in pFirstlist
    put true into tFirstArray[thisLine]
  end repeat
  repeat for each line thisLine in pSecondlist
    put true into tSecondArray[thisLine]
  end repeat
  intersect tFirstArray with tSecondArray
  return the keys of tFirstArray
end CommonLines


Le 29 janv. 06 à 12:30, Eric Chatonet a écrit :

Hi Andre,

First you could use a comma as the delimiter in your list: this would allow to have words and "phrases" at the same time.
Then just an idea I use often:

  unmark all cds
  mark cds by finding whole item 1 of fld "Keywords"
  repeat with i = 2 to the number of items of fld "Keywords"
mark cds by finding whole (item i of fld "Keywords") AND the mark of this cd
  end repeat

Elegant and very fast ;-)
The process marks cards where all "items" are found at least one time.
The trick: you can specify more than one condition to mark cards...

Then you can easily get the list of current marked cards or just navigate through the marked cards only:
go next/prev marked cd

Hope this helps.

Best Regards from Paris,
Eric Chatonet
----------------------------------------------------------------------- -----------------------
http://www.sosmartsoftware.com/    [EMAIL PROTECTED]/





_______________________________________________
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