=============================================================================== ========================== ============================ ========================== VERSION HISTORY ============================ ========================== ============================ =============================================================================== For easy reference, this history is presented in reverse order (most recent version first). Remember: if you have previously registered Parse-O-Matic, you are entitled to unlock any new shareware versions we create for a period of two years. Thus, your small investment in the initial registration can provide you with a lot of free updates. Since we do not automatically ship new versions, we encourage you to drop by our BBS at 514-345-8654 every few months, to see what's new. +-----------------------------------------------------------------------------+ | | | Most of the enhancements to Parse-O-Matic are inspired by POM users. | | We charge a nominal fee for custom work, but we will usually provide | | a discount if the requirement seems to be beneficial to other users. | | POM's evolution has been guided almost entirely by our customers. | | | +-----------------------------------------------------------------------------+ ------ ------------------------------------------------------------------------ VER. WHAT'S NEW IN THIS VERSION ------ ------------------------------------------------------------------------ 3.10A New ELSE command Allows BEGIN/ELSE/END blocks New READNEXT command Reads next line from input file, maintaining current place in POM file New SETLEN command Sets a variable to the length of a value (e.g. "XYZ" is length "3") New DONE command (useful only in BEGIN/ELSE/END blocks) Jumps to the end of the POM file; equivalent to IGNORE "X" = "Y" New ~ comparator ("does not contain") PARSE returns a null value if given impossible parsing task Example: PARSE x "FRED/MARY" "1*/" "2*/" (problem: no second slash) Maximum number of variables and literals increased to 1000 (was 225) ------ ------------------------------------------------------------------------ VER. ENHANCEMENTS IN PREVIOUS VERSIONS ------ ------------------------------------------------------------------------ 3.00A New PARSE command You can now parse free-form data (including comma-delimited files) New APPEND command Allows you to concatenate up to four values Data in output buffer (via OUT) is now flushed at end of input file You can now use POM to create binary and fixed-record-length files Varied comparators (equals, not equals, less than, contains, etc.) Affects the commands IF, IGNORE, ACCEPT, BEGIN, OUT[END] For example: IF x > y THEN z = "YES" ------------------------------------------------------------ NOTICE REGARDING CHANGES REQUIRED IN YOUR EXISTING POM FILES ------------------------------------------------------------ This notice involves a change in the behaviour of IGNORE and ACCEPT. With the addition of varied comparators, you may have to change some of your old POM files. The IGNORE and ACCEPT commands were considered "true if the string contains the specified text". In other words, they performed a "contains" comparison rather than an "equals" comparison. (IF, BEGIN and OUT[END] used an "equals" comparison.) IGNORE and ACCEPT now default to an "equals" comparison. There are two situations in which you must modify an IGNORE or ACCEPT: (1) If you padded the line with "=" (for clarity or aesthetics), yet you meant "contains", the line should be changed. For example: IGNORE $FLINE[1 10] = "YES" (old style, using "=" for clarity) IGNORE $FLINE[1 10] ^ "YES" (new style, using "contains" symbol) (2) If you omitted the "=" character, and you want to do a "contains" comparison, you must insert the "contains" symbol: IGNORE $FLINE[1 10] "YES" (old style, stated tersely) IGNORE $FLINE[1 10] ^ "YES" (new style, using "contains" symbol) If you are comparing two strings of equal length, there is no need to modify an IGNORE or ACCEPT. For example: IGNORE $FLINE[1 3] "YES" will continue to work properly, since either a "contains" or "equals" comparison will produce the same result. 2.71B Fixed SPLIT bug POM quit early if file length was an exact multiple of 32767 2.71A Added PROPER command Updated manual to explain licensing options 2.70C Minor fix to unregistered shareware reminder 2.70A POM can now read DBF (DBase) files directly New ASCII literals (using the # character) New TRACE, OUTHDG and PAGELEN commands Documented the /Q command-line switch User manual expanded to 30 pages; new examples (walk-throughs) provided 2.60 New BEGIN and END commands (blocked "IF" operations) Command lines may now be indented for clarity New predefined variable $SPLIT This indicates which CHOP or SPLIT segment you are on (1, 2, 3 etc.) New look-up processing New LOOKUP, LOOKSPEC, LOOKCOLS, LOOKFILE commands New /L start-up option Improved error detection and reporting Comparison operation is now optional for OUT and OUTEND 2.52 Added new symbol $TAB; fixed operation of $BRR and $BRL New provisions for international registration 2.51 Fixed Program Error MV-P-2 caused by padding with tabs instead of spaces 2.50 CHOP command breaks up fixed-length (non-text) files User manual restructured and partially rewritten 2.40 SPLIT command breaks up long (over 255 characters) input lines 2.33 New /Q (quiet) function: type POM /? for explanation Fixed bug: long output lines (>255) occasionally would lose some text 2.32 Fix to CHANGE to correct lock-up when matching single-character string Added registration via credit card Added new version of SEE to allow full browsing of wide documents While tracing, processing display now shows precise line number 2.31 MINLEN now supports zero-length lines Default MINLEN is, however, still "1" 2.30 Output (via OUT and OUTEND) can now be more than 255 characters However, no individual OUT or OUTEND can output a line longer than 255 New commands: PAD, INSERT Ease-of-use changes More informative processing display Variable names are no longer case sensitive Improved error checking Added another example to documentation 2.20 Provided 2-year self-registration for registered users Increased number of variables and literals from 100 to 225 Allowed "=", "THEN" and "ELSE" to improve readability New commands: SET, ACCEPT Now possible to trace variables by name (SET POM=var/var/var...) SET POM=T (older versions) is now specified as SET POM=ALL Improved documentation (more examples) 2.10 First public release 2.00 Custom version; not released to public 1.00 Custom version; not released to public