FilterPartialValues ( values ; string )
Exclude values that contain string.
Average rating: 4.0 (21 votes) Log in to vote
Richard Dyce - Show more from this author
Dyce & Sons Ltd. http://dyce.com |
user_scripting
Function definition: (Copy & paste into FileMaker's Edit Custom Function window)
This is simply convenience function, used to search for 'scripting' layouts.
Updated to avoid adding a trailing return
Comments
Agnès, France Apr 26, 2016 |
||
Hi, You can also have the same result without recursion ;) Let ([ L = "Item List¶Item_scripting¶User List¶user_scripting¶Prefs" ; Keep = "_scripting" ; R = "#" & Substitute ( L ; [ ¶ ; "¶#" ] ; [ Keep ; Keep & ¶ & Keep ] ) ; Fb = Substitute ( R ; [ ¶ ; "#¶"] ; [ Keep & "#" ; Keep ] ) & "#" ]; Substitute ( FilterValues ( R ; Fb ) & "[end]" ; [ "#¶" ; "" ] ; [ "¶[end]" ; "" ] ; [ "#" ; "" ] ; [ Keep & "¶" & Keep ; Keep ] ) ) this way is case sensitive ( add upper for no ) |
||
Richard, Zuchwil Apr 26, 2016 |
||
Agnès, you're clearly on a roll ;-) Thanks, R | ||
Richard, Zuchwil Apr 26, 2016 |
||
Agnès, where exactly are you adding Upper for case-insensitive? Or is that an exercise for the student? ;-) | ||
Richard, Zuchwil Apr 26, 2016 |
||
Agnès, ahem, sorry, but I'm not sure that the non-recursive works for all the same cases: Assuming your version is implemented (and I haven't screwed up the implementation): // FilterPartialValues_NR ( values ; string ) // FilterPartialValues_NR ( values ; string ) Let ( [ R = "#" & Substitute ( values ; [ ¶ ; "¶#" ] ; [ string ; string & ¶ & string ] ) ; Fb = Substitute ( R ; [ ¶ ; "#¶"] ; [ string & "#" ; string ] ) & "#" ]; Substitute ( FilterValues ( R ; Fb ) & "[end]" ; [ "#¶" ; "" ] ; [ "¶[end]" ; "" ] ; [ "#" ; "" ] ; [ string & "¶" & string ; string ] ) ) Then, FilterPartial_NR ( "Item List¶item_scripting¶User List¶user_scripting¶Prefs" ; "script" ) returns: "item_script¶user_script" Whereas, the original version: FilterPartialValues ( "Item List¶item_scripting¶User List¶user_scripting¶Prefs" ; "script" ) returns: "item_scripting¶user_scripting" :-( |
||
Agnès, France Apr 26, 2016 |
||
Oh sorry, I'ts an old calc, and I removed that line, I do not know why she was there... D = FilterValues ( R ; Substitute ( R ; "#" ; "" ) ) without checking calc ! donc : Let ([ L = "Item List¶Item_scripting¶User List¶user_scripting¶Prefs" ; Keep = "_scr" ; R = "#" & Substitute ( L ; [ ¶ ; "¶#" ] ; [ Keep ; Keep & ¶ & Keep ] ) ; Fb = Substitute ( R ; [ ¶ ; "#¶"] ; [ Keep & "#" ; Keep ] ) & "#" ; D = FilterValues ( R ; Substitute ( R ; "#" ; "" ) ) ]; Substitute ( FilterValues ( R ; Fb & ¶ & D ) & "[NoValue]" ; [ "#¶" ; "" ] ; [ "¶[NoValue]" ; "" ] ; [ "#" ; "" ] ; [ Keep & "¶" & Keep ; Keep ] /* ; [ "[NoValue]" ; "" ] */ ) it's ok |
||
Agnès, France Apr 26, 2016 |
||
For Case no sensitive : Let ([ L = "Item List¶Item_scripting¶User List¶user_scripting¶Prefs" ; Keep = Upper ( "_Scr" ) ; R = "#" & Substitute ( Upper ( L ) ; [ ¶ ; "¶#" ] ; [ Keep ; Keep & ¶ & Keep ] ) ; Fb = Substitute ( R ; [ ¶ ; "#¶"] ; [ Keep & "#" ; Keep ] ) & "#" ; D = FilterValues ( R ; Substitute ( R ; "#" ; "" ) ) ; Result = Substitute ( FilterValues ( R ; Fb & ¶ & D ) ; [ "#¶" ; "" ] ; [ "#" ; "" ] ; [ Keep & "¶" & Keep ; Keep ] ) ]; Substitute ( FilterValues ( L ; Result ) & "[NoValue]" ; [ "¶[NoValue]" ; "" ] ) ) but the calc is less pretty ;) |
||
Eric, SJSU Apr 29, 2016 |
||
CF Description says "Exclude values that contain string." Would a description such as "Search only values containing string" not be more appropriate ? |
||
Note: these functions are not guaranteed or supported by BrianDunning.com. Please contact the individual developer with any questions or problems.