Just for interest's sake, here is a list of the functions supported in this single subroutine.
* =================================================================== * * * * INVOCATION * * * * This subroutine can be invoked in several ways (depending upon * * the function desired). Supplied functions provide the ability to * * copy/parse, insert/overlay, delete, find, justify, and translate * * text strings. These functions generally operate based on a master * * "buffer" and one or more parameter "strings" -- as follows: * * * * ----- MANIPULATIONS ----- * * "C"OPY - copy from master buffer into parm string(s) * * "P"ARSE - parse master buffer into parm string(s) * * "I"NSERT - insert parm string(s) into master buffer * * "O"VERLAY - overlay parm string(s) onto master buffer * * "D"ELETE - delete single parm string from master buffer * * "F"IND - find single parm string in master buffer * * setting the string length parameter accordingly * * * * ----- TRANSFORMATIONS ----- * * "J"USTIFY - skip leading chars less than or equal to spaces * * in parm string(s), left-justify remainder, strip * * delimiter chars (if any), and drop trailing chars * * less than or equal to spaces * * "M"JUSTIFY - skip leading/trailing chars less than or equal to * * spaces in parm string(s) & mid-justify remainder * * "R"JUSTIFY - skip trailing chars less than or equal to spaces * * in parm string(s) & right-justify remainder * * R"T"RIM - set length of parm string(s) w/o trailing spaces * * * * ----- TRANSLATIONS ----- * * TO"A"SCII - translate EBCDIC parm string(s) to ASCII * * TO"E"BCDIC - translate ASCII parm string(s) to EBCDIC * * PRINTMAS"K" - mask non-printable chars in parm string(s) * * "L"OWERCASE - translate parm string(s) to lower-case * * "U"PPERCASE - translate parm string(s) to upper-case * * "W"ORDCAPS - first translate parm string(s) to lower-case and * * then capitalize the first letter of each word * * * * ----- SCRIPTING ----- * * "S"CRIPTING - operate in mini-scripting mode--this can perform * * different functions, by string, in a single CALL. * * But this excludes the following two functions, as * * they completely rebuild the output buffer. * * * * ----- CONVERSIONS ----- * * TO"B"ASE64 - encode binary input string(s) into base64 output * * (use a maximum of 7,494 binary characters, or up * * to 29 full input strings + 70 bytes in 30th input * * string for up to 9,992 bytes into output buffer-- * * i.e., 29 x 256 + 70 = 7,494 / 3 x 4 = 9,992) * * "X"FROMB64 - decode base64 input string(s) into binary output * * (use a maximum of 13,324 base64 characters, or up * * to 52 full input strings + 12 bytes in 53rd input * * string for up to 9,993 bytes into output buffer-- * * i.e., 52 x 256 + 12 = 13,324 / 4 x 3 = 9,993) * Sincerely, Dave Clark
