home *** CD-ROM | disk | FTP | other *** search
/ Visual Basic 5 Developer's Kit / vb5 dev kit.iso / dev / par / change.doc < prev    next >
Encoding:
Text File  |  1996-05-12  |  18.1 KB  |  359 lines

  1. ===============================================================================
  2. ==========================                         ============================
  3. ==========================     VERSION HISTORY     ============================
  4. ==========================                         ============================
  5. ===============================================================================
  6.  
  7.  
  8.      For easy reference, this history is presented in reverse order (most
  9.      recent version first).  Remember:  if you have previously registered
  10.      Parse-O-Matic, you can self-register any evaluation copies we create
  11.      for two years (six years for deluxe registration).  Thus, your small
  12.      investment in the  initial  registration  can provide you  with many
  13.      free updates.  Since we do not  automatically  ship new versions, we
  14.      encourage you to drop by our BBS (514-345-8654) every few months, or
  15.      visit our Web site (http://www.cam.org/~pinnacl) to see what's new.
  16.  
  17.  
  18. +------------------------- WE ARE CUSTOMER-DRIVEN! ---------------------------+
  19. |                                                                             |
  20. |    Most of the enhancements to Parse-O-Matic are inspired by POM users.     |
  21. |    We charge a nominal fee for custom work, but we will usually provide     |
  22. |    a discount if the requirement seems to be beneficial to other users.     |
  23. |                                                                             |
  24. |    ******* PARSE-O-MATIC'S EVOLUTION IS GUIDED BY OUR CUSTOMERS *******     |
  25. |                                                                             |
  26. +-----------------------------------------------------------------------------+
  27.  
  28.  
  29. ------ ------------------------------------------------------------------------
  30.  VER.  WHAT'S NEW IN THIS VERSION
  31. ------ ------------------------------------------------------------------------
  32.  
  33. 3.71A  Fixed: Some data might be lost if OUT generated exactly 254 characters
  34.        and then additional data was added with another OUT or OUTEND command
  35.  
  36. 3.70A  New commands
  37.          CVTCASE converts a variable to uppercase or lowercase
  38.          GETENV  obtains a system environment variable (e.g. PATH)
  39.          MSGWAIT controls the behaviour of error messages
  40.          REMAP   transforms sub-strings into other strings
  41.          MAPFILE reads a file containing data transformations for REMAP
  42.        Enhancements to PARSE, PEEL and FINDPOSN
  43.          Search strings (e.g. "2*,") are now known as decapsulators
  44.          Overlapping decapsulators now behave more gracefully
  45.            PARSE and PEEL return an empty string; FINDPOSN returns "0"
  46.              This situation used to generate an error message
  47.                i.e. "From" value exceeds "To" value
  48.                Most users found this unhelpful or confusing
  49.                For details, see "Overlapping Decapsulators" in the manual
  50.          New search parameter looks for "last occurence" or "first occurence"
  51.            Example of  "last occurence":  PARSE xyz $FLINE ">*$" ">*.00"
  52.            Example of "first occurence":  PARSE xyz $FLINE "<*$" "<*.00"
  53.        Documentation
  54.          Improved quick-reference section
  55.            The "importable" version has moved from EXAMPL04.POM to QUICKREF.POM
  56.  
  57.        ------------------------
  58.        IMPORTANT UPGRADE NOTICE
  59.        ------------------------
  60.                             
  61.        This notice concerns you if:
  62.  
  63.        - You have created POM applications that are run unattended
  64.        - You use the HALT command
  65.  
  66.        (See "Unattended Operation" and "The HALT Command" in the manual)
  67.  
  68.        Since version 3.20, error messages would "time out" after sixty seconds
  69.        (or when a key was pressed), whereupon Parse-O-Matic would terminate.
  70.  
  71.        Parse-O-Matic now waits for permission to continue if an error occurs.
  72.        You can control this behaviour with the new MSGWAIT command (see "The
  73.        MSGWAIT Command" in the manual).
  74.  
  75.        To make Parse-O-Matic behave as it did before (i.e. timing out sixty
  76.        seconds), add this line to your POM file:  MSGWAIT "60"
  77.  
  78.        If you simply want to make your HALT commands work the same way (i.e.
  79.        allowing them to time out after about a minute), insert MSGWAIT "60"
  80.        prior to each HALT command.
  81.  
  82.  
  83. ------ ------------------------------------------------------------------------
  84.  VER.  ENHANCEMENTS IN PREVIOUS VERSIONS
  85. ------ ------------------------------------------------------------------------
  86.  
  87. 3.61A  Added inline decrement (e.g. SET y = x-)
  88.        LOG command now allows two additional (optional) values
  89.        Rationalized null specs and empty fields in Parse, Peel and FindPosn
  90.          Customers were using these in creative ways that we had not foreseen
  91.          We have taken these into account and fully documented the behaviour
  92.          See "The Null Decapsulator", "Left-Peeling" and "Insoluble Searches"
  93.        Minor improvements to the processing display
  94.  
  95. 3.60A  New commands
  96.          MAKEDATA converts text data to binary
  97.          MAKETEXT converts binary data to text
  98.          ZERODATE initializes the date for serialized date format
  99.          GET      reads variable-length records and delimiter-terminated data
  100.          GETTEXT  combines functions of GET and MAKETEXT commands
  101.          AGAIN    allows you to return to an earlier BEGIN comparison
  102.        Enhancements
  103.          CHOP now allows manually-controlled reading (via the GET command)
  104.          Read-only files are opened as such, avoiding sharing problems on LANs
  105.          Improved appearance of trace logs
  106.          Hexadecimal literals (e.g. $39$34 means "94")
  107.        Utilities
  108.          SHOWNUM.EXE: reference tool converts decimal to hex and vice-versa
  109.          DEVELOP.BAT: simple interactive development environment (IDE)
  110.        Documentation
  111.          New material added for the READNEXT and LOOKUP commands
  112.          Several new sections about techniques and operational planning
  113.          Additional material about running Parse-O-Matic under Windows
  114.        Improved file-handling
  115.          OFILE now adds the default extension, if necessary
  116.            In 3.50, OFILE "XYZ" would not automatically add the .TXT extension
  117.          The default extension routine is no longer "fooled" by ..\ or .\
  118.            Earlier, a file name like ..\XYZ would not get the default extension
  119.        Problems fixed
  120.          Fixed "FRAME-UUI" problem affecting Quiet mode
  121.          Fixed routine to search through DOS PATH for "missing" files
  122.  
  123. 3.50A  Corrected a bug in the LOOKCOLS command (affected Parse-O-Matic v3.4x)
  124.          It would set the "Key-End" value to the last number listed in LOOKCOLS
  125.          It would set the "Data-Start" and "Data-End" to defaults (12 and 255)
  126.        New commands
  127.          ERASE   deletes a file
  128.          OUTPAGE sends a page eject to the output file (or device)
  129.          PAUSE   delays the specified number of milliseconds
  130.          OFILE   switches between output files
  131.            You can overwrite a file or append (add to the end)
  132.              See "How Parse-O-Matic Opens an Output File" in the manual
  133.              The append feature is also available at the command-line level
  134.        Enhancements
  135.          Processing display now shows input and output in appropriate units
  136.            Input units  (Bytes or Records)
  137.            Output units (Bytes or Lines)
  138.          Additional information in "processing completed" line in POMLOG.TXT
  139.            It now specifies the amount of output (in bytes or lines)
  140.          Output can now be sent to a generic device (e.g. COMx or LPTx)
  141.            See "Sending Output to a Device" in the manual
  142.        Documentation
  143.          New "File Handling" section in the manual (POM.DOC)
  144.  
  145.        ------------------------
  146.        IMPORTANT UPGRADE NOTICE
  147.        ------------------------
  148.  
  149.        POM now creates the output file ONLY when it first receives output
  150.        See "How Parse-O-Matic Opens an Output File" in the manual for details
  151.        If the output file does not receive any output...
  152.          If it did not previously exist, it will not be created
  153.          If it already existed, it will contain the old data
  154.            To ensure old data is gone...
  155.              Delete the output file before running Parse-O-Matic, or ...
  156.              Use the ERASE command in the PROLOGUE
  157.  
  158. 3.41B  PEEL reports precise nature of certain impossible parsing situations
  159. 3.41A  Fixed trimming problem affecting PEEL when using "null" delimiter
  160.  
  161. 3.40   New commands
  162.          DATE and TODAY provide date formatting, in any language
  163.          MONTHNUM converts text month to numeric month, in any language
  164.          COPY copies a variable from one character position to another
  165.          DELETE removes selected characters positions from a variable
  166.          EXTRACT moves selected characters from one variable to another
  167.          FINDPOSN locates the position of a string in another
  168.        Enhancements
  169.          All control files (including POM) are searched for, if necessary
  170.            If a directory is explicitly specified, POM looks there only
  171.            Otherwise, POM searches logged dir, POM's dir, then the DOS PATH
  172.            This makes it easier to build a library of standard files
  173.          INSERT now allows "insert to left" and "insert to right"
  174.          Automatic numeric comparators
  175.            The old method used text comparisons, which required pre-padding
  176.            Comparisons automatically determine if number is real or integer
  177.          CALC and CALCREAL now explicitly report "divide by zero" attempts
  178.          User manual reformatted for easier reference
  179.            Explanations of commands are preceded by an improved overview
  180.        Problems fixed
  181.          There were no problems reported in the last release
  182.  
  183. 3.31A  Numeric command parameters are now more forgiving
  184.          Spaces, tabs and commas are removed
  185.  
  186. 3.30A  New commands
  187.          LOG command writes a message to the log file POMLOG.TXT
  188.          HALT command allows termination with a DOS errorlevel
  189.          CALC command performs integer arithmetic functions
  190.          CALCREAL command performs decimal arithmetic functions
  191.          EPILOGUE command defines code to be run before input is processed
  192.          PROLOGUE command defines code to be run after  input is processed
  193.        Enhancements
  194.          Optional MINLEN setting controls the READNEXT command
  195.          Tracing no longer shows code inside skipped BEGIN/ELSE/END blocks
  196.          Increased variable name length from 8 to 12
  197.          Increased number of DBF fields from 50 to 100
  198.          Increased maximum line length in look-up files from 80 to 255
  199.          Increased maximum number of POM lines from 500 to 750
  200.            This does not include comment lines
  201.          Lookup file (LOOKFILE) is now searched for in various directories
  202.            If a directory is explicitly specified, POM looks there only
  203.            Otherwise, POM searches logged dir, POM's dir, then the DOS PATH
  204.          Restructured tutorial for easier reference
  205.          New deluxe registration provides 6 years of new version registration
  206.            Three times the standard benefit, but only twice the price
  207.        Problems fixed
  208.          Clustered ACCEPTs inside "false" code blocks were sometimes executed
  209.          Some error reporting caused problems on extremely large POM files
  210.          Ran out of file handles if you had a large number of input files
  211.          Incomplete trimming of multiple character delimiters in PEEL
  212.  
  213. 3.21A  Custom version; not released to public
  214.  
  215. 3.20A  Parsing of multiple input files into one output file
  216.          DOS wildcards are now permitted in POM command for input file name
  217.            For example:  POM XYZ.POM *.TXT OUTPUT.TXT
  218.          New NEXTFILE command skips to next input file
  219.          New predefined variable $COMMAND, showing current POM command
  220.        New PEEL command
  221.          Works like PARSE, but removes parsed text from source variable
  222.        New SOUND command
  223.          Sets error-message sound or generates a sound
  224.        The DONE and READNEXT commands now have optional comparisons
  225.          For example:  DONE x = y
  226.        Restructured example files as an interactive tutorial
  227.        Enhancements for unattended operation
  228.          Log file (POMLOG.TXT) records processing, and any errors
  229.          Error and warning messages pause for a minute, then the program ends
  230.        Fixed problem with ELSE statements nested two deep
  231.  
  232. 3.11A  DBF file enhancements
  233.          Improved reporting of DbF fields when tracing
  234.          Corrected data alignment error that affected some DbF files
  235.  
  236. 3.10A  New ELSE command
  237.          Allows BEGIN/ELSE/END blocks
  238.        New READNEXT command
  239.          Reads next line from input file, maintaining current place in POM file
  240.        New SETLEN command
  241.          Sets a variable to the length of a value (e.g. "XYZ" is length "3")
  242.        New DONE command (useful only in BEGIN/ELSE/END blocks)
  243.          Jumps to the end of the POM file; equivalent to IGNORE "X" = "Y"
  244.        New ~ comparator ("does not contain")
  245.        PARSE returns a null value if given impossible parsing task
  246.          Example: PARSE x "FRED/MARY" "1*/" "2*/" (problem: no second slash)
  247.        Maximum number of variables and literals increased to 1000 (was 225)
  248.  
  249. 3.00A  New PARSE command
  250.          You can now parse free-form data (including comma-delimited files)
  251.        New APPEND command
  252.          Allows you to concatenate up to four values
  253.        Data in output buffer (via OUT) is now flushed at end of input file
  254.          You can now use POM to create binary and fixed-record-length files
  255.        Varied comparators (equals, not equals, less than, contains, etc.)
  256.          Affects the commands IF, IGNORE, ACCEPT, BEGIN, OUT[END]
  257.          For example:  IF x > y THEN z = "YES"
  258.  
  259.        -------------------------------------------
  260.        CHANGES REQUIRED IN YOUR EXISTING POM FILES
  261.        -------------------------------------------
  262.  
  263.        This notice involves a change in the behaviour of IGNORE and ACCEPT.
  264.  
  265.        With the addition of varied comparators, you may have to change some of
  266.        your old POM files.  The IGNORE and ACCEPT commands were considered
  267.        "true if the string contains the specified text".  In other words, they
  268.        performed a "contains" comparison rather than an "equals" comparison.
  269.        (IF, BEGIN and OUT[END] used an "equals" comparison.)  IGNORE and ACCEPT
  270.        now default to an "equals" comparison.
  271.  
  272.        There are two situations in which you must modify an IGNORE or ACCEPT:
  273.  
  274.        (1)  If you padded the line with "=" (for clarity or aesthetics), yet
  275.             you meant "contains", the line should be changed.  For example:
  276.  
  277.             IGNORE $FLINE[1 10] = "YES"    (old style, using "=" for clarity)
  278.             IGNORE $FLINE[1 10] ^ "YES"    (new style, using "contains" symbol)
  279.  
  280.        (2)  If you omitted the "=" character, and you want to do a "contains"
  281.             comparison, you must insert the "contains" symbol:
  282.  
  283.             IGNORE $FLINE[1 10] "YES"      (old style, stated tersely)
  284.             IGNORE $FLINE[1 10] ^ "YES"    (new style, using "contains" symbol)
  285.  
  286.        If you are comparing two strings of equal length, there is no need to
  287.        modify an IGNORE or ACCEPT.  For example:  IGNORE $FLINE[1 3] "YES"
  288.        will continue to work properly, since either a "contains" or "equals"
  289.        comparison will produce the same result.
  290.  
  291. 2.71B  Fixed SPLIT bug
  292.          POM quit early if file length was an exact multiple of 32767
  293.  
  294. 2.71A  Added PROPER command
  295.        Updated manual to explain licensing options
  296.  
  297. 2.70C  Minor fix to unregistered (trial copy) reminder
  298.  
  299. 2.70A  POM can now read DBF (DBase) files directly
  300.        New ASCII literals (using the # character)
  301.        New TRACE, OUTHDG and PAGELEN commands
  302.        Documented the /Q command-line switch
  303.        User manual expanded to 30 pages; new examples (walk-throughs) provided
  304.  
  305. 2.60   New BEGIN and END commands (blocked "IF" operations)
  306.          Command lines may now be indented for clarity
  307.        New predefined variable $SPLIT
  308.          This indicates which CHOP or SPLIT segment you are on (1, 2, 3 etc.)
  309.        New look-up processing
  310.          New LOOKUP, LOOKSPEC, LOOKCOLS, LOOKFILE commands
  311.          New /L start-up option
  312.        Improved error detection and reporting
  313.        Comparison operation is now optional for OUT and OUTEND
  314.  
  315. 2.52   Added new symbol $TAB; fixed operation of $BRR and $BRL
  316.        New provisions for international registration
  317.  
  318. 2.51   Fixed Program Error MV-P-2 caused by padding with tabs instead of spaces
  319.  
  320. 2.50   CHOP command breaks up fixed-length (non-text) files
  321.        User manual restructured and partially rewritten
  322.  
  323. 2.40   SPLIT command breaks up long (over 255 characters) input lines
  324.  
  325. 2.33   New /Q (quiet) function:  type POM /? for explanation
  326.        Fixed bug: long output lines (>255) occasionally would lose some text
  327.  
  328. 2.32   Fix to CHANGE to correct lock-up when matching single-character string
  329.        Added registration via credit card
  330.        Added new version of SEE to allow full browsing of wide documents
  331.        While tracing, processing display now shows precise line number
  332.  
  333. 2.31   MINLEN now supports zero-length lines
  334.          Default MINLEN is, however, still "1"
  335.  
  336. 2.30   Output (via OUT and OUTEND) can now be more than 255 characters
  337.          However, no individual OUT or OUTEND can output a line longer than 255
  338.        New commands:  PAD, INSERT
  339.        Ease-of-use changes
  340.          More informative processing display
  341.          Variable names are no longer case sensitive
  342.          Improved error checking
  343.          Added another example to documentation
  344.  
  345. 2.20   Provided 2-year self-registration for registered users
  346.        Increased number of variables and literals from 100 to 225
  347.        Allowed "=", "THEN" and "ELSE" to improve readability
  348.        New commands:  SET, ACCEPT
  349.        Now possible to trace variables by name (SET POM=var/var/var...)
  350.          SET POM=T (older versions) is now specified as SET POM=ALL
  351.        Improved documentation (more examples)
  352.  
  353. 2.10   First public release
  354.  
  355. 2.00   Custom version; not released to public
  356.  
  357. 1.00   Custom version; not released to public
  358.  
  359.