Brian Dunning's FileMaker Custom Functions

Repeat ( text ; numberOfTimes )

Repeats text number of times

  Average rating: 4.0 (57 votes) Log in to vote

Michael Horak   Michael Horak
*COMMENT Visual Realisation
http://comment.cjb.net/

Share on Facebook Share on Twitter

  Sample input:
Repeat ( "abc " ; 4 )
  Sample output:
abc abc abc abc

  Function definition: (Copy & paste into FileMaker's Edit Custom Function window)

Repeats text the specified number of times.

This simple non-recursive calculation extends the limit of allowable repeats up to 161,999 (with a plain Substitute ( 10^numberOfTimes - 1 ; "9" ; text ) the limit is 404 repeats, while the obvious recursive function would be limited to 10,000 recursions).

 

Comments

Thomas Seidler   Thomas Seidler, London, UK
Jun 27, 2009
For the OCD, here is one that doubles the string each time and uses tail-end recursion...

So you have 2^50k repeats possible - ha ha ha!! No point cluttering Brian Dunnings site with another CFunction doing the same thing, so i just add here for the lunatic fringe...

It should arrive at your desired length extremely rapidly!

It will take decimal numbers and round to nearest letter.

/*
Repeat ( "abc ; " ; 7 ) => "abc ; abc ; abc ; abc ; abc ; abc ; abc ;"
0 -- "abc ; abc ; " ; 3.5 (_n -2 )/ 2
1 -- "abc ; abc ; abc ; abc ; " 1.75
2 -- "abc ; abc ; abc ; abc ; abc ; abc ; abc ; "
*/

Case ( _n > 2 ; Repeat ( _string & _string ; _n/2 ) ; // now I'm sending a string twice as long, so n is halved

_n > 0 ; Left ( _string & _string ; Round ( _n * Length ( _string ) ; 0 ) ) ; // return final result

_ ) // end case - 0 or bad _n return empty
 
Braxton   Braxton, Sacramento
Mar 29, 2010
Thank you so much for doing and posting this.
 
Dan Smith   Dan Smith, B.C. Canada
Aug 28, 2011
I was curious to know the performace difference between this function and this simple recursive function that produces the similar result:
RecursiveRepeat(text;numberOfTimes)
If(
numberOfTimes > 0 ;
text & RepeatB( text ; numberOfTimes - 1 )
)

Comparision of Repeat to RecursiveRepeat for various numberOfTimes values:
numberOfTimes comparison to RecursiveRepeat
001 10% slower
002 almost equal
005 160% faster
010 250% faster
100 1600% faster

Bottom Line: great custom function Michael!
 
Steve Lane   Steve Lane, Devon, PA
Jan 10, 2013
Some further thoughts on this problem here: http://www.soliantconsulting.com/blog/2013/01/power-division
 

Log in to post comments.

 

Note: these functions are not guaranteed or supported by BrianDunning.com. Please contact the individual developer with any questions or problems.

Under construction. Email me your wish list for improvements.