Brian Dunning's FileMaker Custom Functions

LineWrap ( text ; margin )

Adds or repositions line breaks in supplied text so it wraps to specified margins.

  Average rating: 3.9 (51 votes) Log in to vote

Martin D. Brunner   Martin D. Brunner
Zurich Financial Services
http://www.mdb.bz

Share on Facebook Share on Twitter

  Sample input:
LineWrap ( "Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat." ; 25 )
  Sample output:
Lorem ipsum dolor sit
amet, consectetuer
adipiscing elit, sed
diam nonummy nibh
euismod tincidunt ut
laoreet dolore magna
aliquam erat volutpat.

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

This function uses a recursive routine to re-format a supplied block of text so that it falls within a specified margin width.

It ensures that there is a line break (¶) before the specified number of characters is reached on each line but it keeps words together.


If the input text contains no carriage returns, they will be inserted at the appropriate positions so that the text wraps within the defined text block size.

Any number of line breaks (¶) in the original text are preserved for the output.

The results may vary depending on the font used: proportional-spaced fonts (without fixed character width) may exhibit a more variable result than mono-spaced fonts.

I use this function to break text into a specified length of lines in order to afterwards create a tree column layout with the CF "ColumWrap" that can also be found on briandunning.com.

The idea and the basic setup comes from the CF "Abscind" by Ray Cologon, NightWing Enterprises.
I made it easier and modifyed it, so it calculates correctly and also supports multiple line breaks.

Martin D. Brunner - www.mdb.bz

 

Comments

Patrick Horn   Patrick Horn, Saarbrücken, Germany
May 8, 2012
Unfortunatlety, if there is a word without spaces longer than "margin", the function does not wraps (breaks) this word (OK, it could preserve longer words), but it even doesn't wrap anything AFTER this word ...

e.g.:
LineWrap ("1234 1234 1234 1234 12345678901234567890 1234 1234 1234 1234"; 15)

Result:
1234 1234 1234
1234
12345678901234567890 1234 1234 1234 1234
 
Anatole Beams   Anatole Beams, London, UK
Oct 14, 2014
Brilliant function. Solved a problem I had with getting a Preview layout to show a block of text and a price column.

It just needs some hyphenation rules to solve the problem in the previous post and it would be perfect. Better still, it could be built in to FileMaker scripting with this feature.
 

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.