Brian Dunning's FileMaker Custom Functions

Codify ( theText ; code_option )

Encode/decode any input text using native code() & char() functions

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

Bruce Robertson   Bruce Robertson

Share on Facebook Share on Twitter

  Sample input:
Let ( [
this = "http://www.briandunning.com/filemaker-custom-functions/upload.php¶Example \"encoding\" result." ;
$$result = codify(this; 1) ] ;
List($$result;
"¶ROUND TRIP:¶";
codify( $$result;2)
)
)
  Sample output:
460011600108001170011500101001140003200034001030011000105.10000111000990011000101000340003200101001080011200109000970012000069000130011200104001120004600100000970011100108001120011700047001150011000111001050011600099001100011700102000450010900111001160011500117000990004500114001010010700097001090010100108001050010200047001090011100099000460010300110001050011000110001170010000110000970010500114000980004600119001190011900047000470005800112001160011600104

ROUND TRIP:

http://www.briandunning.com/filemaker-custom-functions/upload.php
Example "encoding" result.

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

Encodes/decodes text using native code() and char() functions

The code() function turns each character of text into 5 digit unicode number
char() function decodes back into text

Although bulky, this is a convenient way to encode anything,
using fast native functions, into a single line of digits.
Results can easily passed in script parameters, variables, etc, and decoded
as desired.

The original source might have included multiple returns but the encoded result
is a single value. Therefore you can encode several different items and use value operations
like getValue() to operate on them.

code_option 1
ENCODE
Accepts any input including text containing returns
Breaks text into 80 character chunks and applies code() function
Each encoded chunk may be up to 400 digits
Chunks are delimited with "." character

code_option 2
DECODE
Takes "chunked" digit string and uses char() function to convert to standard text
Max chunk length must be 400 characters, delimited by return or "."

NOTE:
For use in $var[N] or $$var[N] you must limit output to 800 digits or less.
Therefore you must limit input to 160 characters or less.

The "." delimiter used here cannot be used in N

Either use a different calculation or custom function or do something like the following:

Let([
N = substitute( codify( left( yourText; 160 ) ; 1); "." ; "") ;
$$var[N} = theValueYouAreAssigning ] ;
"")

By Bruce Robertson
v1.0 3/6/2010

 

Comments

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.