Steve Stratford asked: >Speaking of the Rosetta Stone, where are the routines kept? Back when they >were coming fast and furious, I tried to keep copies, but I know I didn't >get them all. Steve, After several iterations, Alain and I compiled an abridged version of the Rosetta Stone Library which he has very nicely proofed and indexed. I expect it to be included in the soon-to-be-released Release 6. In the meantime, I have forwarded you my latest draft via private e-mail. Thanks to generous contributions from the list, we now have a library of tested functions that greatly expand FB^3's cross-platform language compatibility. In many cases, the FB^3 functions are much faster, or more versatile, than those found on other platforms. For instance, while the VB Split function, can create an array of words from a string, it is by its nature limited to 255-character strings. One FB^3 version can do the same with up to a 2 gig container! Several functions are extremely fast, thanks to conventions found in FB^3 and streamlining by Alain, Jay Reeve and Robert Purves. Others showcase FB^3's containers and dynamic arrays. Most are included as self-running demos in Console mode, which make them much easier to understand and use. I can't see Rosetta Stone being expanded much more, because it appears we may have hit the wall on the number of bookmarks in the document (it is quite large at about 170k). About the same time we started the Rosetta Stone Library, I created a second library of useful functions which, although not necessarily inspired by cross-platform rivals, have proved very useful. Perhaps one day the Turbo Function Library also will be available for publication. Rosetta Stone and Turbo Function have become so valuable to me that I keep copies on my desktop and find myself referring to them almost as often as to the Reference Manual. They are invaluable when porting code from other platforms. If anyone has any other additions, suggestions or critiques, they are welcome. Ken For those interested, here's a list of Rosetta Stone functions. '---------- BEGIN FB^3 ROSETTA STONE LIBRARY --------- TRUNCATE TRUNCATE (Example 1) TRUNCATE (Example 2) RTRIM (Function to remove trailing spaces from a string) RTRIM (Example 1) RTRIM (Example 2) RTRIM (Example 3) LTRIM (Function removes leading spaces from a string) LTRIM (Example 1) LTRIM (Example 2) LTRIM (Example 3) TRIM (Function removes leading and trailing spaces from a string) TRIM (Example 1) TRIM (Example 2) TRIM (Example 3) TRIM (Example 4) TRIMALL (Function removes all spaces from a string) TRIMALL (Example 1) TRIMALL (Example 2) TRIMALL (Example 3) ZAP (Function removes unprintable characters) RZAP (Example 1) LZAP (Example 1) ZAP (Example 1) LSET RSET (Example 1) RSET (Example 2) GLSET GRSET PADLEFT (Example 1) PADLEFT (Example 2) SPLIT and JOIN (delimited string to array; array to delimited string) SPLIT (Example 1) JOIN1 (Example 1-- run with SPLIT Example 1 above) JOIN2 (Example 2-- run with SPLIT Example 1 above) SPLIT (Example 2) SPLIT (Example 3) SPLIT (Example 4) COUNTFIELDS (String Example 1) COUNTFIELDS (String Example 2) COUNTCHARS (String & Handle) COUNTCHARS (Example 1) COUNTCHARS (Example 2) COUNTCHARS (Example 3) SPLIT (Container Example 1) SPLIT (Container Example 2) COUNTFIELDS (Container) COUNTCHARS (Container Example 1) COUNTCHARS (Container Example 2) LBOUND UBOUND SEARCH FINSTR (Forward search) BINSTR (Backward search) INSTRREVERSE (Reverse of INSTR ) REPLACE (Function to search and replace a substring in a string) REPLACE (Example 1) REPLACE (Example 2) REPLACE (Example 3) REPLACE (Example 4) REPLACE (Example 5) REPLACE (Example 6) REPLACE (Example 7) REPLACE (A special function utilizing an FB^3 Container) REPLACEALLCHAR (A function to replace all characters in a string) CHANGESUFFIX (Example 1) CHANGESUFFIX (Example 2) CHANGESUFFIX (Example 3) INSERT (inserts a string at a given position within another string) INSERT (Example 1) INSERT (Example 2) REPLICATESTRING (Example 1) REPLICATESTRING (Example 2) REPLICATESTRING (Example 4) REVERSE (Function reverses the order of letters in a string) REVERSE (Example 1) REVERSE (Example 2) REVERSE (Example 3) ROTATE (Functions to rotate strings left and right) RROTATE LROTATE SHUFFLE MIXSTRING ISPALINDROME (Example 1) ISPALINDROME (Example 2) ISPALINDROME (Example 3) ROUND (Function rounds decimal number to given amount of places) ALPHADOLLAR (Convert a numeric value to the equivelant value in words) UPPERCASE LOWERCASE CAPWORDS CAPSENTENCES UFUNK LFUNK PROPERNAMEREVERT (Example 1) PROPERNAMEREVERT (Example 2) PROPERNAMEREVERT (Example 3) ISALPHANUMERIC (Example 1) ISALPHANUMERIC (Example 2) ISNUMERIC (Example 1) ISNUMERIC (Example 2) FORMAT MACTONET/NETTOMAC SCRAMBLE/UNSCRAMBLE (Example 1) SRAMBLE/UNSCRAMBLE (Example 2) SRAMBLE/UNSCRAMBLE (Example 3) SCRAMBLE/UNSCRAMBLE (Example 4) SCRAMBLE/UNSCRAMBLE (Example 5) SOUNDEX METAPHONE ELAPSEDTIME (Example 2) ELAPSEDTIME (Example 3) ELAPSEDTIME (Example 4) DAYSINMONTH (Example 1) DAYSINMONTH (Example 2) CREDITCARDTYPE CCVERIFY$ (Credit card verifier) CCVERIFY$ (Example 2) TRIGONOMETRIC FUNCTIONS