Brian Dunning's FileMaker Custom Functions

DeleteVariableText ( Value ; StringStart ; StringEnd ; Pos ; Start ; End ) )

Substitute out blocks of text, defined by a start/end string of characters - whose inner contents are of variable width

  Average rating: 4.3 (36 votes) Log in to vote

Daniel Wood   Daniel Wood
Digital Fusion Ltd

Share on Facebook Share on Twitter

  Sample input:
RectangleArea ( This is (ID12)substituting out (ID9282)all instances of (ID)variable length bracketed stuff ; "(" ; ")" ; 1 ; "" ; "" )
  Sample output:
This is substituting out all instances of variable length bracketed stuff

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

This function enables you to substitute out blocks of text from a field where only the start and end characters of those blocks are known. For example, you might wish to substitute out all pieces of text which are enclosed in brackets, but whose inner contents of those brackets are unknown.

The function recursively by traversing the field, storing positions of the start & end characters when found - and when both a start and end are found, the block is removed, and traversal continues on the new piece of text.



Neuronnerd   Neuronnerd, Evans, Georgia
Aug 21, 2010
There appears to be a typo: "DeleteText" should be "DeleteVariableText"
Daniel Wood   Daniel Wood, Digital Fusion Ltd
Aug 21, 2010
Fixed, thanks.
Thomas Seidler   Thomas Seidler, London
Sep 2, 2012
error in code:
StartPosition = If ( Middle ( Value ; Pos ; 3 ) = StringStart and IsEmpty ( Start ) ; Pos ; Start ) ;

should be 1 not 3...

Thanks for function though.
Katy Butterworth   Katy Butterworth, New Zealand
Jul 20, 2014
Just wanted to say thanks! I think it is wonderful that you would share this and it has saved me some real headaches. Worked a treat!
Daniel Wood   Daniel Wood, Digital Fusion Ltd
Jul 20, 2014
No problem :) Hope all is well!
Martin   Martin, Berlin
Jul 14, 2017
Sorry but there is missing the information what the Vars are for

Value = (Text?)
StringStart = ?
StringEnd = ?
Pos = ?
Start = ?
End = ?

Also the Example does not wor
Daniel Wood   Daniel Wood, Digital Fusion Ltd
Jul 14, 2017
hi Martin,

Value - the text string you want to perform the function on
StringStart - This is the start string identifying the start of the block(s) of text to remove.
StringEnd - This is the end string identifying the end of the block(s) of text to remove.

Pos - Always set to 1 on first running the function.
Start/End - you can leave blank, these are parameters used in the recursion.

Unfortunately I have lost my password so cannot edit the function, but if you look up a few comments to a post by Thomas Seidler, you'll find the bug in the code that you can fix for the function to work.


Log in to post comments.


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

Under construction. Email me your wish list for improvements.