countListElements

  how to count members in a list
sum up list property list addtoProp




  addToProp
Yo Gumi wrote:

Does anybody know how to count members in a list?
For example:
MyList=[#d,#a,#b,#c,#b,#a]
I want the lingo to find out that within myList, there are 2 of #a, 2 of #b,
1 of #c and 1 of #d.
If I do myList.count it only gives me the total of 6.
Any suggestion greatly appreciated. Thanks in advance. Yo

--------------------

Yo,

the handler below was originally written to sum up partial results from 
propLists with integer Values but it handles linear lists, too. 

-- Welcome to Director --

LpResults= [:]
LToCount= [#d,#a,#b,#c,#b,#a]

put addtoProp (LpResults,LToCount)
-- [#d: 1, #a: 2, #b: 2, #c: 1]


Lp1= [#apples:2,#peaches:3,#nuts:1]
Lp2= [#apples:1,#peaches:1,#nuts:4] 

put addtoProp (Lp1,Lp2)
-- [#apples: 3, #peaches: 4, #nuts: 5]


-- movieScript -----------------------

on addToProp dLp,dLp2
  -- the first List will be returned 
  -- with the prop/Val or Vals of the second list added

  if dLp.ilk <> #propList then return
  if not ListP(dLp2) then return
  ilktest = dLp2.ilk
  
  cnt =dLp2.count
  repeat with index = 1 to cnt
    
    if ilktest = #propList then
      dProp = dLp2.getPropAt(index)
      dVal = dLp2[index]
    else
      dProp = dLp2[index]
      dVal = 1
    end if
    
    dtest = dLp.getaProp(dProp)
    
    if voidP(dTest) then
      dLp.setaprop(dProp,dVal)
    else
      dLp[dProp]  = dTest + dVal
    end if
    
  end repeat
  
  return dLp
end

---------------------------------------------------


best regards
daniel plaenitz

Home shock + cgi Bits 'n pieces Director Lingo Shocklets Contact