AddConstantToString ( string ; fillchar ; posit ; direction ; iter )
Adds a constant string to very Nth position of a string
Average rating: 4.5 (33 votes) Log in to vote
Martti Tumanto Martinova Oy http://www,martinova.fi |
Function definition: (Copy & paste into FileMaker's Edit Custom Function window)
Recursive CF that formulates output strings by adding a constant string to every Nth position resulting a more readable grouped output for longer strings ( f.eg Bank references, serial numbers etc).
Grouping starts either Right (default) : 12-345-678 or Left: 123-456-78
Comments
Lee Smith Sep 8, 2009 |
||
You have an error in the CF. You have changed the name of your CF where it calls itself. Solution is to change the name of the CF, Or better yet, change the Calculation where it calls itself. i.e. change AddFillCharToString to AddConstantToString Lee |
||
Martti Tumanto, Espoo, Finland Sep 9, 2009 |
||
Corrected, thank you Lee | ||
Mike Oct 22, 2015 |
||
I'm new to custom functions so I'm trying to learn the logic behind specific lines in this. 1. The "char" variable is set to the Mod function, but what does the <> 0 do? I cannot find where that would be supported as it's outside the Mod function. 2. The "stringout" function uses the Case function. The first test checks for iter=1, and sets the result to blank if true. There are no other tests within this Case startement however, but there are 3 more segments after this. I assume these to be default values, but that would mean three default values. How can you have more than one default in a single Case statement? stringout = Case ( iter = 1 ; "" ; //test and result if true char ; //no test so default 1 dir1 ; //no test so default 2 fillCharacter //no test so default 3 ); The function works, I just don't know how it does with these variables defined that way. Thanks. |
||
Martti, Espoo, Finland Oct 22, 2015 |
||
Hi Mike! Thank you for your comment. Nice to hear that CF works. Here is some explanation about the magic: 1. char = Mod (iter ; posit+1) ≠0 . This is a Logical statement, equivalent to char = if ( Mod(item ; posit+1 = 0 ; 1 ; 0) 2. Stringout-function ; please check the syntax of Case function: in this case case (item = 1 ; "" ; // OK? write nothing in 1st iteration, just initiate recursive variables char ; dir1 //if char flag is on , write the char (the names of these variables are admittedly misleading) fillChacracter // this is the default ; write the fillchar Happy learning with Filemaker! Martti |
||
Note: these functions are not guaranteed or supported by BrianDunning.com. Please contact the individual developer with any questions or problems.