Shopping Cart

Search:

Signup

Contact

FileMaker is a registered trademark of FileMaker, Inc. in the U.S. and other countries.

# FileMaker Pro Custom Functions

Repeat ( text ; numberOfTimes )

Rate this function:

Discuss this Custom Function

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

Repeats text number of times

Sample Input:
 Repeat ( "abc " ; 4 )
Sample Output:
 abc abc abc abc

Then copy & paste into FileMaker Advanced's Edit Custom Function window.

## Description:

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).

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

This is my Custom Function and I want to edit it

## Discuss:

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

Thomas Seidler, London, UK
June 27, 2009 4:31am

Thank you so much for doing and posting this.

Braxton, Sacramento
March 29, 2010 7:41pm

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!

August 28, 2011 1:41pm

Some further thoughts on this problem here: http://www.soliantconsulting.com/blog/2013/01/power-division

Steve Lane, Devon, PA
January 10, 2013 1:28pm