Brian Dunning's FileMaker Custom Functions

CamelCasePrefix ( name )

isolate first word of camelCase-formatted names

  Average rating: 4.5 (33 votes) Log in to vote

Marc Wood   Marc Wood
studentpress.org
http://studentpress.org

Share on Facebook Share on Twitter

  Sample input:
CamelCasePrefix ("camelCase")
  Sample output:
camel

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

Isolates the first "word" of names written in camelCase. Useful for calculating names of layouts, fields, table occurrences, etc. Returns nothing if name has no capital letters or has spaces.

v 1.1: now uses recursive custom function to find first capital position (FM's built-in Position function is not case-sensitive):

FirstCapitalPosition ( text ; textLength )
http://www.briandunning.com/cf/1313

 

Comments

Fabrice   Fabrice, Brussels
May 26, 2011
try "camelCase". Doesn't work.
 
Marc Wood   Marc Wood, Minneapolis
May 26, 2011
Thanks Fabrice. Obviously didn't test it thoroughly enough. I created a recursive function to take the place of FileMaker's Position function and edited the function to use it.
 
Agnès   Agnès, France
May 27, 2011
Hello,

Hello, here is a test without recursion

Let ([

txt = "camelCase" ;
M = Filter ( txt ; Upper ( Txt ))
];
GetValue ( Substitute ( txt ; left ( M ; 1 ) ; ¶ ) ; 1 )
)

give camel
 
Fabrice   Fabrice, Brussels
May 27, 2011
in other words: to test the position of a capital letter, you'd better use a case sensitive function ;)
 
Daniele Raybaudi   Daniele Raybaudi, ACI
May 27, 2011
Filter ( text ; Upper ( text ) )

could fail if text contains numbers or other chars ( not alfabeth ).

Try this one too:

Let(
a = Left ( Filter ( text ; "ABCDEFGHIJKLMNOPQRSTUVWXYZ" ) ; 1 ) ;
If ( not IsEmpty ( a ) ; GetValue ( Substitute ( text ; a ; ¶ ) ; 1 )
))
 

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.