Here's my version:

function getRepeatingPatterns tString,minLength,maxLength
  set the caseSensitive to true

  repeat with n = minLength to maxLength
    put empty into testString

    put 0 into charCount
    repeat for each char c in tString
      put c after testString
      get length(testString)
      if it < n then next repeat
      if it > n then delete char 1 of testString
      if space is in testString then next repeat -- optional
      if cr is in testString then next repeat -- optional

      add 1 to countArray[testString]
    end repeat
  end repeat

  repeat for each line L in the keys of countArray
if countArray[L] > 1 then put L && countArray[L] & cr after countList
  end repeat
  delete char -1 of countList
  sort lines of countList
  return countList

end getRepeatingPatterns

On 26 Aug 2006, at 23:23, jbv wrote:

for those interested, here's something much faster :

on mouseUp
  set cursor to watch
  lock screen
  put fld 1 into myST
  put number of chars of myST into n
  put "" into myL
  set the casesensitive to true
  put 1 into k
  repeat while k<=1000
    repeat with i=100 down to 6
      put k+i-1 into b
      get char k to b of myST
      put myST into a
      replace it with "" in a
      put ((n - number of chars of a) / b) into c
      if c>=2 then
        put it & tab & c & cr after myL
        add b-1 to k
        exit repeat
      end if
    end repeat
    add 1 to k
  end repeat
  put myL
end mouseUp

_______________________________________________
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

_______________________________________________
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