Brian Dunning's FileMaker Custom Functions

DeleteValue ( VList ; VNo )

Removes a value from a value list

  Average rating: 4.7 (12 votes) Log in to vote

Bill Thurmes   Bill Thurmes
MDCA
http://www.miyotadca.com

Share on Facebook Share on Twitter

  Sample input:
DeleteValue ( "3¶5¶7¶9" ; 3 )
DeleteValue ( "3¶5¶7¶9" ; 6 )
  Sample output:
"3¶5¶9"
"3¶5¶7¶9"

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

DeleteValue removes a value (including ¶) from a value list; complements PutValue. Resultant value list contains one fewer value than starting value list. Useful when sorting and combining value lists, especially pairs of value lists (see also ListPosition for choosing which value to combine, then delete).

 

Comments

comment   comment, VR
Sep 14, 2016
Couldn't this be simply:

LeftValues ( listOfValues ; N - 1 )
&
RightValues ( listOfValues ; ValueCount ( listOfValues ) - N )
 
Bill T   Bill T, Longmont, CO
Sep 15, 2016
Almost. Since LeftValues and RightValues always give a ¶ after the final value, if the final value in the list is populated the result will have a ¶, and thus an extra value, tacked on to the end. Still, your suggestion is much more elegant than mine - thanks! - and I'll come up with a Case statement that works around the problem.
 
comment   comment, VR
Sep 16, 2016
The trailing ¶ will ALWAYS be there (unless the result is completely empty), so there is no test for your Case statement to consider.

You could remove the trailing ¶ by using Left() and Length() - but I see no good reason to do so.

The trailing ¶ is conforming to FileMaker own standard regarding functions that return a list of values. All such built-in functions - LeftValues, MiddleValues, RightValues, FilterValues - return a list with every value followed by a ¶, including the last value.

This does certainly NOT mean that there's "an extra value, tacked on to the end". You can verify this easily by counting the values:

ValueCount ( "a¶b" ) = 2

ValueCount ( "a¶b¶" ) = 2
 
Bill T   Bill T, Longmont, CO
Oct 27, 2016
I need to run the check because I often concatenate value lists, and if that's done the simplest way (ListA & ¶ & ListB) you can end up with a blank value between ListA and ListB.

The trailing ¶ will USUALLY be there, depending on how the original value list was assembled. FileMaker doesn't conform to its own standards sometimes - both List and ValueListItems give value lists that do not include a trailing ¶ - but you're right, ValueCount does work as you said, so I could switch to having the Case statement in the concatenation script step.

Thanks for your help.
 

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.