Copyright: This file © Edward Guy 11/04/01
Citation: Copied from help file for ParseRat © Edward Guy 11/04/01


Help file produced by

HELLLP!

www.guysoftware.com/helllp.html

(If this topic is presented in file testing the

author should use the HELLLP! I

button to define a contents topic)


TRUEyesyesyesCopied from help file for ParseRat © Edward Guy 11/04/01This file © Edward Guy 11/04/01yesyesyesyesyesyes 3 1&AboutE&xit&PrintHelp for ParseRatparseratyes21/03/03


Table of Contents

Input Date Format

Soundex Conversion

ParseRat

Context Sensitive Help

Output Configuration

Getting Started with ParseRat

Input Configuration Page

dBase Files

First Record Containing Field Names

The Output Tab

Proper Case Conversion and Capitalization

Default Value

Duplicate if Blank

Rename Field

Remove Leading/Trailing Blanks

Field Width

Date Conversions

Conversion from Multiple Input Fields (Parsing Corrections)

Page Image Input

Page Header Area

Page Footer Area

Page Data Block

Fixed Format Input Lines

Name Parsing

Name Input Sequence

Name Output Sequence

Infer Title From Gender

Suffices

Titles

Gender Tab

Street Address Parsing

City and State Parsing

Phone Number Parsing

Page Image

Parser Generated Fields

Name Parsing Popup

File Output Formats

Generic Popup

Input Line Image

Combining Input Fields

Splitting Input Fields

Mailing Options

Time Conversions

Saving Preferences

Startup Steps

This Help File

Goodbye

Upgrades & Fixes

Julian Dates

Remember to check your data band height

Year 2000 note

Input Record Parsed into Fields

Output Fields before assembly

Output Record

Internet and Web Page (WWW, http, ftp etc.) addresses

Dummy for _B

Duplicate Elimination

Eliminating Duplicate Records (more detail)

Delimited Input Lines

Examples in the Samples directory/folder

Version History

Hints and Tips

Registration and Payment via CompuServe

Skip if Empty

Appending Results to an Existing File

Fax order for ParseRat

Tagged Input

Command Line Interface

Binary Files

Copy all input fields to output fields

Binary File What's This

Binary View

bookmarks

Web Form Files

Uninstalling ParseRat

Reinstalling or Transferring ParseRat

Multiple passes to handle more fields

Tagged Input

EBCDIC data files

Interleaving Output

dBase Y2K note

User Plug In Programs

XML Files

Trial Limit Reached

1,000 record test box

Importing data from the Clipboard

 HTML files

Multiple Passes to handle complexity

Favourite Settings

Data Blocks in Files

Multiple spaces (removal)

Adding Header and Trailer blocks to the output file

Link pages for web sites (automatically generated)

Constant information

Web Pages, harvesting data via clipboard

Selection of input records

Contents of products.txt

Arithmetic Operations

Unit Conversions

Key Generation

Repeating output field formats

HTML tables

HTML (Web) Tables

Contents


Help file produced by  HELLLP! v3.0a , a product of Guy Software, on 21/03/03 for Unregistered User.

The above table of contents will be automatically completed and will also provide an excellent cross-reference for context strings and topic titles.  You may leave it as your main table of contents for your help file, or you may create your own and cause it to be displayed instead by using the I button on the toolbar.  This page will not be displayed as a topic.  It is given a context string of _._ , but this is not presented for jump selection.

HINT:  If you do not wish some of your topics to appear in the table of contents as displayed to your users (you may want them ONLY as PopUps), move the lines with their titles and contexts to below this point.  If you do this remember to move the whole line, not part.  As an alternative, you may wish to set up your own table of contents, see Help under The Structure of a Help File.

  Do not delete any codes in the area above the Table of Contents title, they are used internally by HELLLP!


Contents
	Contents	find	close
Title Screen

Getting Started with ParseRat

Delimited Input Lines

Fixed Format Input Lines

Page Image and Multi-Line Input

Tagged Input

XML Files

HTML (Web) Tables

dBase Files

Web Form Files

Binary Files

EBCDIC data files

Name Parsing

Gender Evaluation

Street Address Parsing

City and State Parsing

Phone Number Parsing

Combining Input Fields

Arithmetic operations on incoming fields

Unit Conversions

User Plug In Programs

Key Generation

Splitting Input Fields

Date and Time Conversions

Mailing Options

Output Options Tab

Adding Headers and Trailers (e.g. creating web tables and pages)

Eliminating Duplicate Records

Skip or include records based on the Content of Fields

Appending Results to an Existing File

Saving Preferences

Command Line Interface

Hints and Tips

Examples in the Samples directory/folder

Registration and Payment for ParseRat

This Help File

Uninstalling ParseRat

Reinstalling or Transferring ParseRat

Upgrades & Fixes

Version History


ParseRat

File Parser, Converter & Reorganizer

© Edward Guy CDP, 2003

www.guysoftware.com/parserat.htm

To obtain help about items on the screen, click on the title bar’s [image] (Question Mark) icon, then click on the screen item you wish to query.

The Option Tabs (Click on a tab for details)

Start Here


Input Date Format
If you wish to process date information which is not in dBase date fields you must tell ParseRat the sequence of the items in the incoming date fields.  ParseRat can automatically recognize most date format variations once you have done that.  You do not need to tell it about dBase date fields because they are always in a pre-defined format.

If the date field might have time information also included, check the box so marked.  Time information will be parsed as for times defined under the “Time” tab.


Soundex Conversion
SOUNDEX coding was developed around the year 1900 for use with spelling variations in similar sounding names in such things as the US Federal Population Census. It is still useful in processing names which sound similar (particularly when searching for duplicates in a large database of names).  The algorithm will convert words into a pattern of one letter and three digits, which represents the “sound” of the word.  McDonald and Macdonald have the same Soundex code as do Danyliu and Donnelly.

If you wish to do a duplicate elimination and you are not sure that all names are spelled correctly, you may include the soundex values of the name field in addition to its regular representation.


Context Sensitive Help
To obtain help about any item on the screen, click on the title bar’s [image] (Question Mark) icon, then click on the screen item you wish to query.


Output Configuration
This tab permits you to set up the output format for your converted file.  You may specify the type of file and many attributes of the individual fields. For further details of any given item, please click on the title bar’s [image] (Question Mark) icon, then on the item concerned or for general information about the output tab, please see  The Output Tab on the main Help button.


Input Configuration Page
Click on one of the radio buttons to change the input format from the one selected by ParseRat.  The dBase button will be selected if (and only if) the input file is a dBase file based on its file extension being .DBF.

If the Page Image button is selected the Page tab will be enabled and a box to enter the form length in lines will be shown.  If the input file has records of a fixed number of lines per record (e.g. if it is a file of mailing labels) that form length should be entered.  If the input file has pages delimited by a FormFeed character (ASCII 12) ensure that the form length set is longer than the number of processable  lines per page (max 99).  To tell ParseRat how to select information from Page Image files, click on the Page tab.


First Record Containing Field Names
Some software packages will use the first record of a delimited file to obtain or store field names.  For example, Word for Windows can use a file written in this format as a data file for mail merge purposes.  ParseRat can deal with a delimited file of this form both for input and output.


Getting Started with ParseRat

Description of system:

ParseRat works by:

♦	Reading an input file (or taking data from the system clipboard).

♦	Splitting up the input file’s records, lines, pages or other data blocks into fields based on user selection of input type (guided by ParseRat based on patterns it finds in the file).

♦	Processing those fields based on options set in the option tabs.  This may include combining fields, splitting fields, converting fields in various ways or generating information about fields (e.g. the implied gender of a first name) into Parser Generated Fields.

♦	Creating output fields in the form and sequence specified by the user on the Output Tab, either by copying an input field directly or by using a Parser Generated Field.

♦	Changing the case (UPPER CASE, lower case, Proper Case), size (i.e. field width in characters), type (character, numeric, date) etc. of each output field if necessary.

♦	Creating an output record from the output fields.

♦	Writing an output file in a format specified by the user (or putting the data on the system clipboard).

The general processing flow is shown in the picture below:

Step by Step

•	To start ParseRat, click on the Windows  Start button.

•	Click on the ParseRat folder icon.

•	Click on the ParseRat program icon.

•	Click on the Open speed button or select Open Input File from the File menu (you may also import data from the clipboard).

•	Select the file to open in the dialog box which appears and click the Open button.

•	ParseRat will display the first record in the area above the page tabs.

•	It will choose a radio button on the Input Configuration tab and may select the Comma Delimited radio button and display the record as parsed out fields in the left hand columns if the input looks like “comma delimited text with quoted strings” (one of the most common requirements). If tabs are detected it will select Tab Delimited.

You may select a different radio button than the one chosen:

♦	If the file is tab delimited click the Tab Delimited radio button.

♦	If the file is delimited by a keyboard character (e.g. comma, space etc) click on the Other Delimited radio button and press the key for the delimiter to enter it into the box which will appear.

♦	If the file consists of records in which the fields appear in constant positions on the line, click the Fixed Format radio button.

♦	If the file consists of form records posted to you when a user completes an HTML form on a Web page click on Web Form

♦	If you know that the input file is in Page Image form or has its data arranged in multi-line blocks, click on the Page Image radio button (see below for more about page images).  Note that if ParseRat finds FormFeed characters (ASCII 12) in the first 99 lines of the file, it will suggest Page Image input to you. (This setting will usually allow you to process data from saved web pages.) If the data begins with <?xml ParseRat will treat it as Tagged Page Image data with its own best guesses as to which tags identify data blocks and fields - you may change these.

♦	If the file is in binary format, click on the Binary Files button. ParseRat can extract the data from many binary files, even if you do not have their formal format specifications.  Once you have selected the Binary Files option, all other input format options are disabled and to change your mind you must close and re-open the file.  However you may view the first 15,000 characters of the file in binary form at any time by clicking on the View Start of File as Binary button at any time.

♦	Note that the dBase radio button is controlled by ParseRat based on the extension of the input file. If the input file has a DBF extension, ParseRat will attempt to open the file as a dBase file and will parse its records accordingly.

•	If any of the delimited formats is selected, the record will be immediately shown as parsed into fields in the left hand column.

•	If you select either Page Image Input or Fixed Format Records you will need to indicate to ParseRat how to break up the lines of the input file into fields, following instructions in the appropriate topics.  The Page tab is accessible only when the Page Image Input radio button is checked.

•	Once the input record is parsed into fields, you may either go directly to the Output Tab or you may specify more specialized processing of the input fields by selecting one of the other option tabs.

•	To see the effect of your settings on other records in the input file, click on the Next button to see more records.

You may click one of these tabs for more details

The effect of making option changes is immediately shown to the user for the record being examined.  You may use the “Next” and “Prev” buttons to examine the effect of your option selections on other records.

You may save the settings you make as Preferences using the “Save Preferences” function on the File menu item.


Input Record Parsed into Fields
Input Record Parsed Into Fields.  The left side of the screen contains the component parts of the input record after it has been broken up into fields and before further processing.

The rules for creating these fields from the input record are set by clicking radio buttons on the Input tab.

If Page Image Input is selected, this process is completed using the options on the Page tab which is visible only when page image input is selected.

The field names are either assigned by ParseRat or taken from the input file depending on the type of input file.  They may not be changed on this screen by the user, but fields may be given user-selected names on the Output  tab.

To select a field for further processing, first click on the destination - either an output field name or a source selection box on one of the filter/processing tabs then click on the input field name for the field.


Output Fields before assembly
Output Fields before Assembly.  The right side of the screen displays the output fields resulting either from copying directly from input fields or from the inclusion of parser generated fields.

The field names are initially the same as the source names for the data, but may be changed by the user using the Rename option on the output tab.

It is the user’s responsibility to ensure that the field names (if they are to be used in the output file) are acceptable to the applications in which they will be used.

Only for dBase output will ParseRat re-format output field names.

Options for formatting the individual output fields are found in the bounded box at the bottom of the output tab.


Output Record

Output Record.  The bottom of the screen area shows how the record will look after assembling the output records.  The various delimiter options are selected from the bounded box at the top right of the Output tab.


Delimited Input Lines

Many files are received or generated in a "delimited" format.  That means that the various fields are divided from each other by some form of separator or "delimiter".

Common delimiters are commas alone (,) for what are known as "Comma Separated Values" (.CSV).

If there is a possibility that the fields will contain commas, the "Comma Delimited with Quoted String" format is commonly used.  In this format the fields are also separated by commas, but non-numeric fields are also surrounded by quotes ( " ).  This is probably the most common delimited format.  Care is needed to ensure that the "straight" quote is used, not the curly "typsetters''" quotes.  The inclusion of additional quotes within the quoted strings should be avoided if you intend your output also to be in this format - although ParseRat will handle the situation correctly, many programs will be confused by it.

Values may be separated by tab (ASCII 9) characters for Tab Delimited Files. This will be common for data imported via the clipboard from programs such as Microsoft Excel.

Comma Delimited with Quoted String and Tab Delimited files are selected using specific radio buttons on the Input tab.  Other single character delimiters (including comma and space) are selected by using the Other Delimited radio button and entering the delimiter character in the edit box which appears.

If an appropriate delimiter has been selected, the fields so defined will immediately be seen in the left hand column on the screen.


Importing data from the Clipboard
Importing data from the Clipboard.

You may import data from the system clipboard by clicking the [image] icon on the toolbar.  ParseRat will then create a temporary file containing the clipboard contents and will open that file for processing.  Programs such as Microsoft Excel copy data to the clipboard delimited by tabs and this will be opened as "Tab Delimited" by ParseRat, although you may override that if you wish.  If you import emails from the clipboard you will probably wish to process them as "Page Image".

If you wish to "harvest" data from web pages via the clipboard, it will probably be displayed as HTML tables and also some data (e.g. link URLs) may not be visible.  If you copy to the clipboard from the source data view (View…  Source… in most browsers) your data will include the HTML tags, which you may then use to extract the data more easily in the Page Image Input mode, with some unique tag or data string which appears at the beginning of each data block entered as Tag Text on Top Line.  Select Tagged data location and then define your data elements on the Page tab in terms of those tags.

HTML Tables. Since the tags may vary for different rows of an HTML table, ParseRat has special routines to handle them.  Check the HTML Table box to engage them.

The routines extract as separate fields the text found in each table cell and a URL if found (e.g. in an HREF tag).

Outputting data to the ClipBoard

You may direct output to the clipboard by selecting the Clipboard option on the output tab. In this case the data will be written to a temporary file in tab-delimited format and that file will then be copied to the clipboard.  Such data may then be pasted directly into many other programs such as Microsoft Excel.  If you check the Include Field Names box, the field names will placed in the first record.


HTML (Web) Tables

HTML tables found in Web pages are a special form of tagged data, but the tags can be complicated.

For example, a web HTML can look something like this:

<table width="96%" border="0" cellspacing="0" cellpadding="1">

 <tr valign="top">

  <td width="4%"><font face="Arial, Helvetica, sans-serif" size="-1"></font></td>

  <td width="4%"><font face="Arial, Helvetica, sans-serif" size="-1"></font></td>

  <td width="27%"><font face="Arial, Helvetica, sans-serif" size="-1">@SoftTop</font></td>

  <td width="55%"><font face="Arial, Helvetica, sans-serif" size="-2"><a href="http://atsofttop.com/register.asp" target="_blank">Go to register page</a></font></td>

  <td width="10%">

  <div align="center"><font face="Arial, Helvetica, sans-serif" size="-1"></font></div>

  </td>

 </tr>

 <tr valign="top">

  <td width="4%"><font face="Arial, Helvetica, sans-serif" size="-1"></font></td>

  <td width="4%"><font face="Arial, Helvetica, sans-serif" size="-1"></font></td>

  <td width="27%"><font face="Arial, Helvetica, sans-serif" size="-1">1Smart Site</font></td>

  <td width="55%"><font face="Arial, Helvetica, sans-serif" size="-2"><a href="http://www.1smartsite.com/download/" target="_blank">http://www.1smartsite.com/download/</a></font></td>

  <td width="10%">

  <div align="center"><font face="Arial, Helvetica, sans-serif" size="-1"></font></div>

  </td>

 </tr>

 <tr valign="top">

  <td width="4%"><font face="Arial, Helvetica, sans-serif" size="-1"></font></td>

  <td width="4%"><font face="Arial, Helvetica, sans-serif" size="-1"></font></td>

  <td width="27%"><font face="Arial, Helvetica, sans-serif" size="-1">101 Shareware Links</font></td>

  <td width="55%"><font face="Arial, Helvetica, sans-serif" size="-2"><a href="http://www.sharewareplace.com/101/101share.shtml" target="_blank">http://www.sharewareplace.com/101/101share.shtml</a> </font></td>

  <td width="10%">

  <div align="center"><font face="Arial, Helvetica, sans-serif" size="-1"></font></div></td>

 </tr>

</table>

It could be intimidating to sort out the tags which will extract the data you want, which is probably just the following

				@SoftTop		http://atsofttop.com/register.asp	Go to register page
				1Smart Site		http://www.1smartsite.com/download/	http://www.1smartsite.com/download/
				101 Shareware Links		http://www.sharewareplace.com/	http://www.sharewareplace.com/

(Note that the first two columns and the last column of the table are empty, that the third column of the table contains no URL (web address) and only the fourth column contains both text and a URL (sometimes the text is the same as the URL).

ParseRat has special routines to handle such tables. To engage them, you need only to check the HTML Table checkbox which appears when you select the Tagged Data format. The program will then directly process the <TD tags and will extract the text and any URL from each column as a separate field.

If ParseRat finds what looks like an HTML table in the first 15k of your file, it will suggest appropriate settings (it will also detect whether the <TR tags which indicate new  records are upper or lower case and insert the appropriate one in the entry box which denotes the beginning of a "page"). If you do not wish to process the data as an HTML table, just uncheck the HTML Table box.

To test this, select the blue text of the HTML table above and copy it to the clipboard, then start ParseRat, click the "Paste" icon and go to the Page tab.

If there are several HTML tables in your file, the data from all of them will be appended to each other.  If you are capturing using the clipboard you should consider selecting and copying only the table you are interested in, including the <TABLE> tag at the beginning and </TABLE> at the end.

Not that you can also use ParseRat to create web tables and pages.


Fixed Format Input Lines

Instead of an input file having “delimiters” to break it up into fields, its elements may be in fixed locations on the line.  ParseRat must be told what these divisions are.

To do this you use the mouse to set “tabs” (^) on the line below the input record.  As you do this, you will see the parsed result appearing in the left hand columns as fields.

To delete a tab which you have already set, click on it again.

Fields generated by breaking up an input line in this way are given names describing their original positions. e.g. if two tabs are set after column 5 and column 12, the line will be parsed into three fields, with names like Col1-5, Col6-12, Col13-End.

Frequently you will not require all of these fields for your output record.  That is no problem, just ignore the ones you don’t want and omit them from your output specifications.

Should you redefine a field by altering tabs associated with it after you have used it as input to a parser generated field or as an output item that use will become invalid and the result will be blanked.  Other fields not related to the changed tabs will not be affected.

If you need to extract more than 99 fields from a fixed format record, you will need to do this with multiple passes.

Selection of input records

Sometimes you might want to select or "filter" the input based on the contents of one of the fields in the input record. You can do this by checking the Select box on the Misc tab and entering some text into the edit box which appears.  While still on the Misc tab, click on the input field in which this text will be sought. When you do this, only records with that text in that field will be translated to the output file.


Input Line Image
The Input Line Image shows the input line being processed.  For defining fields for Fixed Format input lines or for selected lines from Page Image input the user needs to set tabs below the line image.  For full details see the [image] items regarding Fixed Format Input Lines and Page Image Input.


Copy all input fields to output fields

You may click this button if you have already defined input fields in the left hand columns of the window, but have not yet defined output fields in the right hand side of the window.  It will copy all of the field names (and field formats if the input is dBase) from the input side to the output side.  This can be useful if you want to make an almost exact copy of a file, with a few fields altered.


Page Image and Multi-Line Input

ParseRat is able to parse out fields from page images produced by other programs.  Frequently the only means of exporting data stored in proprietary formats is to use the capability of the original program to produce printed reports and to direct the report to a file instead of a printer.  For example, a library system will always have the capability to print catalog cards, and that print file provides ParseRat with a source from which to export item data for use in some other application.

In other cases, you may need to extract data from multi-line blocks of data in a file.

In every case where input from multiple line blocks needs to be parsed, you will need to determine how the pages or data blocks are defined or delimited.  Possibilities are:

•	Fixed number of lines: Each data block has a given number of lines (typically this will be a file of address label information). Select the Page Image radio button on the Input Type tab.  Select the Fixed Length radio button and enter the number of lines per page or block.

•	Form Feed:  Each page or data block (except possibly the first) begins with a FormFeed character (ASCII 12).  Select the Page Image radio button on the Input Type tab.  Select the FormFeed radio button.

•	Blank Lines between blocks: Data blocks with no blank lines within a block, but with one or more blank lines between blocks.  Select the Page Image radio button on the Input Type tab.  Select the Blank Lines radio button.

•	Tag Text on Top Line:  The blocks are defined by some fixed text which occurs on a line at the head of the block.  This text must be used ONLY in this location and is case-sensitive.  This is often the situation with Emails in a file, where there is some constant text pattern in the header of each message.  Select the Page Image radio button on the Input Type tab.  Select the Tag Text on Top Line radio button and enter the tag target text.  Note that if there are lines ahead of the first line with this text string, they will be ignored.
You have the option of specifying that the tag text may appear anywhere on the line, or only at the left hand end.  This latter option is particularly useful for print image files which were originally intended for a line printer of the 1403 pattern, where the first character on the line is for vertical carriage control ("VFC" files). To set up to find the top of such pages, enter a figure 1 in the tag text box and select the "At left only" option.

Optionally, you may tell ParseRat to skip blank lines appearing in a page image.  This may permit you to handle longer pages if there are always blank lines in the same position. To turn on this option, check the Skip Blank Lines button which appears on the Input Type tab when Page Image Input is selected.

The location of fields in the page or block can be either fixed or tag-related.  If they are fixed, they must always appear in the same position relative to the top line of the page as defined above. If they are not fixed, refer to Tagged Page Input.

The example below is of one of the more complex forms of fixed page input, which has headers, footers and several repeating data blocks both down and across the page.

Each data block is intended to result in one record with each such record able to contain data from the header and footer area as well as from the data block.

Most page input situations will be simpler and will frequently comprise files where there is no header or footer, just data blocks, one across with no gutter (e.g. a file intended to be printed on continuous form mailing labels) or a file with headers and footers, but with single row data blocks each containing several fixed columns of data (e.g. a report print file from another program).

When you click on (or select with the arrow keys) a header or footer line, that line will be displayed in the input record area at the top of the screen.  You define the fields by setting tabs in the same way as for fixed format input lines. When you click on line in a page data block, that line from that block will be displayed in the input record area for field definition.

Field names will be generated based on the location of the field.  Fields defined in the header or footer area will be named LineXXColXX-XX where the line number is the page line number on which the field occurs.  Fields defined in a page data block will be named RowXXColXX-XX where the row number is the number of the row in the data block where the field occurs and the column numbers are relative to the left hand edge of the data block.

Remember that each data block will result in an output record containing fields derived from that data block, together with fields from the header or footer area if you have defined and selected any.

Tagged Page Input:

In some cases, the positions of some of your target data may not be fixed on the page, but may be determined only in relation to some other text on the page.  For example you may wish to process Emails which have variable formats, but always contain known tags to identify data. e.g. To:        Subject:      Date:, etc.

If you select the Tagged page format, you may enter such tags in a list box.  ParseRat will then search the page for the first occurrence of text which exactly matches the tag and will enter the text following it into an input field which is given as a name the tag itself.  The data field will contain all data on the line following the tag up to any other defined tag found on the line. As an option you may specify that ParseRat is to take an occurrence other than the first.

Note that you may set a tag to cut off the end of another tagged field, even if you not want the “tagged” information.

If you check the LineBelow box before entering a tag, the data will be extracted beginning at the start of the line below.  You may specify a the same tag both with and without the LineBelow option and this will result in two different input fields.

If you check the "Ignore Line Ends" option, the field will all contain all information on the page up to the next defined tag (useful if a heading is on the line above the data or for web pages where the line ends are not significant).

If ParseRat recognizes the incoming file as XML, it will make an initial guess at the tags you need.

You may combine the selection of fixed location data and tagged data in the same run (if you defined the "tagged" data first), but you cannot handle multiple data blocks on a page at the same time as tagged data.

See Hints and Tips.

However, remember that you can define a “page” using a Tag Text on Top Line that is not related to a physical page and this will permit many files to be parsed provided that they have at least some structure (see the bookmarks sample file).  You can also define a "page" as being delimited by one or more blank lines which may be valuable for blocks of data with an uneven number of lines per block, but with no identifying "tag text" at the top of the block.

Step by Step

•	Open the input file as described in Getting Started with ParseRat.

•	If the file is of fixed length pages (i.e. there are no FormFeed - ASCII 12 characters defining the page ends) enter the page length in lines in the box which appears when you select Page Image Input and Fixed Length.
If there are FormFeeds (ParseRat will tell you if it found any in the first 99 lines) and you wish to use them to determine page ends, select FormFeed ASCII 12.
If there is some unique character string which defines the start of a page (and for this option the page need not correspond with a physical page - there could be several “pages” on one physical page), enter that character string in the box which appears when you select Tag Text on top line (note that the string must match exactly including any punctuation, spaces and capitalization).  Any lines ahead of the first occurrence of the string will be ignored as ParseRat establishes the top of the first “page” where it finds the first top line tag.
If the "page" blocks are delimited by one or more blank lines, select Blank Line(s).

•	Select whether you are processing fixed format or tagged pages.  Note that you can process some fixed format data as well as tagged data using the Tagged option.

•	Click on the Page tab to show the page image of the first page.  Note that the characters are sized to fit the form on the tab, so if it is a very wide page they may be too small to read but only big enough to see the page layout.  The currently selected line will be displayed in the Input Record area near the top of the screen.

•	If a fixed format page includes headers (including blank lines) above the first line of data records, place the cursor in the top line of data records and click the Header button.  The header area will be displayed in yellow.

•	If a fixed format page includes footers (including blank lines) below the last line of data records, place the cursor in the bottom data record line and click the footer button.  The footer area will be displayed in green.

•	If there is more than one data record (or “Data Block”) per page , place the cursor in the bottom row of the top data band (for many reports being imported with one row per item, this will be the same as the top data row).  Then click on the data button.  The data block will be displayed in blue (but for single-row records you will not see it).  For the tagged data option, the whole “page” is considered a single data block.

•	If there is more than one record per line across a fixed format page, complete the Vertical Data Band box at the bottom right of the page.

•	Place the cursor in the first line from which you wish to extract data (it might be a header area, a footer area or a data block) and notice that the line appears in the input record area.

•	Set tabs (^) using the mouse to define the input fields.  If you want the whole line to be a field, set a tab at or beyond the right-most position on the line.  Note that ParseRat displays the column count of the cursor position.

•	Repeat for every line from which you wish to extract data.

•	Once the input record is parsed into fields, you may either go directly to the Output Tab or you may specify more specialized processing of the input fields by selecting one of the other option tabs.


Page Header Area
A Page Header Area is that area at the top of a page which either contains no information to go into the output record, or contains information common to all records generated from that page.  It is displayed in yellow.

To define a header area, click on the top line of non-header data (the line below the last header line) and then click on the Header button.  If there is no requirement for a header area, click on the top line of the page and then click on the Header button.


Page Footer Area
A Page Footer Area is that area at the bottom of a page which either contains no information to go into the output record, or contains information common to all records generated from that page.  It is displayed in green.

To define a footer area, click on the bottom line of non-footer data (the line above the first footer line) and then click on the Footer button.  If there is no requirement for a footer area, click on the bottom line of the page and then click on the Footer button.


Remember to check your data band height
Remember to check your data band height (in rows) after setting a header or footer area.

To define data blocks, first define any header or footer areas.  Then click on the bottom row of the top data block and then click on the Data button (note that for single row blocks, the top and bottom row are the same).

When you click on any area in a page data block, the whole block is displayed in blue but note that if the data block is only one row high, you will not see the blue background because it will be covered by the selection bar.

Click here to clear this box.


Page Data Block
A Page Data Block is an area on the page which will result in a single output record.

It may consist of one or more rows of data.  There may be more than one data block on the page, both horizontally and vertically.

To define data blocks, first define any header or footer areas.  Then click on the bottom row of the top data block and then click on the Data button (note that for single row blocks, the top and bottom row are the same).  If there is more than one vertical band of data blocks across the page (e.g. a label file with more than one-up) they should be defined using the area at the bottom right of the page.  The (blocks must be of identical format).  The “gutter” if any is the number of blank columns at the left of the leftmost block.

When you click on any area in a page data block, the whole block is displayed in blue but note that if the data block is only one row high, you will not see the blue background because it will be covered by the selection bar.


Page Image
Page Image Input allows ParseRat to extract data from the print files of other systems.  For more detail see the topic Page Image Input.


XML Files

XML Files as Input

XML Files are a special type of tagged file. ParseRat can read them in the same manner as it reads other tagged input files.  However, ParseRat will assist you by making assumptions about the appropriate tags to choose both to identify data blocks and to identify individual data fields.

ParseRat makes these assumptions whenever you open a file where the first record starts with  <?xml

(XML "tags" are strings enclosed in <> symbols)

ParseRat's initial assumption is that the tag which defines data blocks ("logical pages") is the third tag (<CD> in the example below - which is included in the "samples" directory as cd_catalog.xml) and that the tags following it identify individual data fields.  It also defines </ as a tag in order to properly recognize the end of a field, since a field is terminated by the occurrence of another tag.

  <?xml version="1.0" ?>

- <CATALOG>

- <CD>

  <TITLE>Empire Burlesque</TITLE>

  <ARTIST>Bob Dylan</ARTIST>

  <COUNTRY>USA</COUNTRY>

  <COMPANY>Columbia</COMPANY>

  <PRICE>10.90</PRICE>

  <YEAR>1985</YEAR>

  </CD>

The second tag (<CATALOG> in the example above) marks the beginning of the whole dataset in the file and is called the Root Tag.

Note that ParseRat initially assumes that an XML file represents a single table.  If there is a more complex hierarchical structure, ParseRat will expand only the first branch of the tree at this stage.  You export data from other branches by entering the appropriate tags on the Page tab.

You may edit the input settings chosen by ParseRat if they do not suit your needs for a given file.

XML File Output

ParseRat is able to write output files in XML format.  You need to specify a table name Root Tag  (like the tag <CATALOG> in the example above) and a Record Tag (like the tag <CD> above) which will surround each data record.  These settings are made from the MISC tab.

You are responsible for the choice of field tags in the output record, by editing the field names on the Output tab.

If you set the "Append" checkbox on the Output tab, Parserat will use the same root tag and record tag as the file to which you are appending, however it is your responsibility to check the other tags.


Web Form Files

Forms filled out on web pages result in coded files being dispatched to the server or to an email address.  These files have a specially code format. Parserat is able decode the format and present the fields as if they were tagged fields for your further processing.

Since web form "checkbox" tags are inserted in the file only if the box is checked on the form you need to be sure that ParseRat "knows" about all of the check boxes.  ParseRat will learn about the web form as it moves through webform records in a file, but it will only be able to output fields based on tags that are present when it starts the output because only these will appear as input fields.

The easiest way to capture data from all checkboxes is to check all boxes on the form, then send the file and open it in ParseRat.  ParseRat will recognize all of the tags.

Then Save Preferences with those tags showing in the input area.  Now, when you load those saved preferences, ParseRat will be able to recognize all the tags.

If you wish to extract data from downloaded copies of HTML web pages, you may do this as tagged input.  There are special routines to handle HTML Tables.


Binary Files

Many files consist of binary data, with no delimiters.  Frequently such files consist of an initial header block, usually giving details of the structure of the remainder of the file.  Following the header (if any) are records of a fixed length but with no delimiters.  These records may consist of text-only material or binary numbers or a combination of both.

Even if you do not know the formal structure of the file format, in many cases you can determine the structure of a given file by inspecting it.  You may then export its data in a manner similar to that for fixed format files.

Selecting the "Binary" radio button opens a tab permitting you to choose the number of header characters to skip and the size of the records following the header.  You may enter those numbers into the appropriate boxes if you know them but more probably you will find them by experimenting with the mouse.

When the binary tab opens, it displays two windows.  The upper window shows the first 15,000 bytes of the file wrapped into 50 character lines:

Moving the mouse cursor over that window displays the character position and the value of the character at that position.  Clicking the left button of the mouse on one of these characters will set that character as the first character of the first record - those characters ahead of it will be treated as a header block.  The remainder of the file block is shown in the lower window as records of the size set in the appropriate box.  The alignment of columns in this view provides a check on your record size selection.

Clicking the right button of the mouse on a character further into the file will set that position as the beginning of the second record - this defines the record size. In the example shown, right-clicking on the J of Jim changes the record size to 43 characters, and displays the structure in the lower window, as shown:

The alignment of the fields shows that the correct record size has been selected.  The records now appear in the input record window [image] and may be treated in the same manner as fixed format records, defining fields by setting tabs below them.

If the fields contain only ASCII text, they may be treated exactly the same as fixed format records.  However, a binary file frequently contains binary numbers, like the field in columns 17-20 of the example below (note that Intel-pattern binary numbers have the high-order bytes at the right hand end).  A valid length for a binary number is 1, 2, 4 or 8 and the appropriate type may be chosen by clicking the Locate binary fields button on the Binary tab.  ParseRat displays the value of the field in each of the valid configurations against the corresponding radio buttons as shown:

Note that binary numbers may be stored with the first byte being the highest value byte, or with the first byte being the lowest value byte and you may select which conversion you wish by using the radio buttons:

The default shown is known as "Little Endian", a  computer architecture in which, within a given 16- or 32-bit word, bytes at lower addresses have lower significance (the word is stored "little-end-first"). The PDP-11 and VAX families of computers and Intel microprocessors and a lot of communications and networking hardware are little-endian.

Big Endian is a computer architecture in which, within a given multi-byte numeric representation, the most significant byte has the lowest address (the word is stored "big-end-first"). Most processors, including the IBM 370 family, the PDP-10, the Motorola microprocessor families, and most of the various RISC designs, are big-endian.

Zoned Decimal is a holdover from punched cards, where the sign of a number was indicated by punching in one of the top two rows of the card above the low order digit to indicate plus or minus. This translates into numbers which look normal except for the last digit. If there is no overpunch, the number looks normal. (Unfortunately, the zoned decimal format does not translate very well to the ASCII code, since ASCII uses different codes to represent the digits and letters. What happens is that on most ASCII machines, the same characters are used, even though the hex codes for them are different and ParseRat follows that convention.)

e.g.:

000001160}  would convert to -116

000003407N  would convert to -340.75

0000034075  would convert to 340.75

001169345O  would convert to -116934.56

0000000395  would convert to 3.95

The decimals result from an assumed decimal point common in COBOL programs dealing with currency.  In ParseRat you would parse it out into cents, then use the /100 option of the Output Tab to convert to dollars.

Another possible "binary" option is "packed decimal", where each byte except the last carries two numeric digits and the last byte carries one digit and optionally an indication if the value is negative.  This will frequently be found when converting data created by COBOL programs, where this format is called Computational 3 or just COMP3. The actual field width of a COMP3 field may be calculated by taking the number of 9s in the COBOL picture clause, adding 1, then dividing by 2 - rounding up.  e.g.  a 9999V99  COMP3  field takes 4 bytes (as does a 99999V99  COMP3).  Note that the V does not take a position - it is an "Assumed Decimal Point" (see above).

You may have noticed that the example given is of a file in the dBase format. ParseRat will handle dBase DBF files as a defined input type, but other database files which have not been pre-defined may be handled by ParseRat in this manner.

For you to practice with, the example file is included in the Parserat\Samples directory as SALES.DBX and the dBase file from which it is copied as SALES.DBF.

If you need to extract more than 99 fields from a structured binary record, you will need to do this with multiple passes.

EBCDIC, or Extended Binary Coded Decimal Interchange Code is the format in which non-numeric data is stored on some systems (principally IBM Mainframes).  Many programs which transfer data between EBCDIC mainframes and ASCII systems translate each byte as if it were a single text character.  This means that binary numbers and packed decimal numbers are wrongly converted.  If the EBCDIC Source box is checked, ParseRat will correct for this when handling number fields on the Binary Tab.


EBCDIC data files

Since computers are only designed to interpret binary data, textual information must somehow be converted to binary. The method used is simplistic: a number is associated with each possible character. Two codes are in wide use: EBCDIC (pronounced EB-sih-dik) and ASCII (pronounced ASS-key). EBCDIC (Extended Binary Coded Decimal Interchange Code) is used on IBM mini and mainframe computers, as well as mainframes from some other manufacturers. It associates an 8 bit (one byte) number with each character, and is descended from the hole patterns used to represent characters on early punched card systems.

ASCII (American Standard Code for Information Interchange) is used on most other computers, and was developed by a committee with representatives from a variety of computer manufacturers. By definition, ASCII associates a 7 bit number with each character (allowing only 128 different characters instead of EBCDIC's 256), although most computer manufacturers that use ASCII provide an 8 bit version of the code which uses the additional 128 characters to provide a richer set of characters than 7 bit ASCII allows. For example, on the IBM PC - an ASCII computer - characters 128 through 255 are used to represent mostly "graphics" characters. These characters, supported by the video hardware of the PC, allow the drawing of boxes and other simple shapes on the screen in text mode.

Both of these codes include "printable" characters (such as the alphabet, digits and punctuation marks typically found on a typewriter) and "non printable" characters (such as the FF character which causes a printer to go to the top of a new page and the BEL character which causes a terminal to beep, as well as other characters used for control of devices other than display devices).

ParseRat can read EBCDIC files as input, if necessary.  Most methods of transferring data from one machine to another will automatically make the conversion, so this is rarely necessary.  The ParseRat option for EBCDIC is found on the File menu.  ParseRat will export data only in the ASCII format.

Since EBCDIC files are converted as if they were text only, binary numbers and packed decimal numbers would be wrongly converted unless provision is made for this.  ParseRat will automatically correct for this when handling number fields on the Binary Tab.


Binary View

Clicking on the "View Start of File as Binary" button displays a panel on the Input tab which gives a binary view of the first 15,000 bytes of the file. Clicking on the "Display Input Format Options" button returns you to the input option selection.

In the binary view, undisplayable characters are shown as small squares.  To see their value, move the mouse pointer over them. Common values are:

0: NULL - you will usually see this only as part of a binary number.

9: Tab

10: LineFeed

12: FormFeed

13: Carriage Return.

Lots of little squares with values of over 127 usually indicate a file with lots of binary numbers, which you will probably want to process as a binary file.


Binary File What's This
Binary Files

ParseRat is able to extract data from binary files. For instruction on this function see "Binary Files" in the main help file by clicking the [image] button on the main toolbar.


Parser Generated Fields

In addition to assembling selected input fields into different sequences and formats for output, ParseRat can process input fields and generate fields which result from the processing.

For example, it can take in a field or group of fields representing the “Street” line of an address and create individual fields for Suite Designator, Suite Number, Street Number, Street Name, Street Designator (Ave, Rd, St, etc), Street Direction (e.g. N, S, SE), Odd/Even property of street number and a field for “Non-Civic” address data (RR, PO Box etc).

As another example, it can take in a date in a variety of formats and generate not only an output date in a different format, but also the day of the week it represents and integers for Year, Month and Day.

When processing Page Image data using the Tagged format, ParseRat will automatically extract the first four URLs on the page (defined as something with :// in it) and the first four Email addresses (defined as something longer than six characters and including an @ sign).

A Parser Generated Field is placed in an output field using the Output Tab by first adding or inserting an output field, or by clicking on the name of an existing output field (to change the definition of that field).  The name of a parser generated field is then clicked in the Parser Generated Field list box.


Name Parsing

ParseRat has the ability to separate people’s names into their components (Title, First Name, Middle Names, Last Name and Suffix), based on sequence data specified by the user.

This example shows how you may set ParseRat to extract name data suitable for use in mailings from a telephone listing of the form commonly available on CD Rom.

The left hand block of “Radio Buttons” is set to tell ParseRat that the name elements (if present) in this example will be in the sequence LastName, FirstName, MiddleNames, Suffix, Title.  The Suffix and Title entries must be found in the lists specified (which you may edit on-the-fly).

Multiple suffices and titles are correctly recognized, as in "Rev Dr" as a title or "MBA, CDP" as a suffix.

If two words in the title position are joined by "and" or "&" both are considered part of the title if the second is in the title list (e.g. "President and Mrs" is considered a title if "Mrs" is in the title list).

ParseRat knows about multi-word last names, both hyphenated and non hyphenated. One and two word prefixes which may be used with surnames are defined on the Mailing tab.  By this means a last name such as “Van De Geest” will be correctly parsed into the Last Name field. It also knows about multiple titles, (e.g. Rev Dr David Jones) and suffices (e.g. Sammy Davis Jr MBA).

In addition to providing the separate name elements for output as individual fields, ParseRat will also create a “Standardized” name field, placing the elements in the sequence you specify using the right hand block of “Radio Buttons”.

This example also shows another feature of ParseRat, in that “noise” words may be ignored in parsing names (to avoid things like “Children’s Phone” or “Fax Line” being included as part of a name).  These noise entries are specified on the Mailing tab as items to strip from incoming names - they too may be edited by the user.

ParseRat looks for noise words and phrases starting at the second of the incoming name because it is rare for the name to begin with a noise word.  However, you should be careful in choosing noise words, since what is a noise word in one situation may not be in another. e.g. "dent" is often appended to a phone listing to indicate a dentist's phone in a residential listing and in that situation is a noise word (and is in the default list). In a business listing "Bob's dent and collision repair" it would not be and you might want to delete it from the list in a run to restructure business names to move "the" to the front (see below).

If a title is not found in the incoming name field(s), ParseRat can generate a default male or a default female title based on the implied gender of the first or middle names (see the Gender tab).

To assist in customized mailings, ParseRat produces a parser-generated field called Salutation based on the following rules:

•	If there is anything in the title field, that is used as the Salutation.

•	If there is nothing in the title field the first and/or middle names are used as the Salutation, separated by "&" if they were so separated in the raw input.

•	If there is nothing in either title, first or middle name fields, the default male and default female titles are used separated by " or ".

As with certain other tabs, ParseRat can assemble a field to parse from several incoming fields since initial entries may have been incorrectly parsed, or not parsed into enough components.

Business Names should be handled separately from people's names (if exporting from a CD-ROM, export the business listings and residential listings separately).  Usually, you will want to add "The" to the title list since it frequently comes at the end of the listing.  You will usually set the radio buttons to parse for only Last Name & Title.  This will have the effect of only altering the listed value by moving items in the "title" list to the beginning of the "Standard Name" field.


Name Parsing Popup
This tab allows you to specify how to parse out names into their component elements and to generate gender related titles. For more details see Name Parsing after clicking the main help button.


Name Input Sequence
Name Input Sequence (“Sequence In”) buttons are used to tell ParseRat the sequence in which name elements will appear, if present.  The button in the left hand column of buttons level with the element which will be first in the input should be checked.  The button in the second from left column level with the item which will appear second should then be checked, etc.  If it is known that an element will not be present, no button level with it should be checked.  The radio buttons for any unused button columns should be “parked” at the top of the column.  If the Title or Suffix elements are used, elements will appear in the appropriate parsed fields only if they match entries in the Title or Suffix lists provided (which you may edit on-the-fly).


Name Output Sequence
Name Output Sequence (“Position Out”) buttons are used to tell ParseRat which elements to use in generating a Standard Name as a Parser Generated Field, in addition to the individual parsed out elements.


Infer Title From Gender
Infer Title From Gender instructs ParseRat to look at the elements parsed out as First Name and Middle Names and to assign an appropriate male or female title if the title field is blank after parsing the name.  The male and female titles are set on the Gender tab and changes may be made to the pre-programmed genders defined for particular names on that tab.


Suffices
Suffices to names are items which normally appear after the last name (like Sr, Jr, Esq, BSc, PhD, III, etc) which appear in this list.  To edit an item, select it by clicking on it and then you may delete it, or change it.  Note that the matching for parsing purposes is done using the left hand column in a case-insensitive manner (i.e. ignoring capitalization), but the item in the right hand column is what goes into the parser generated field.  This is to enable the user to standardize terminology, the case of the letters, etc  if desired.


Titles
Titles to names are items which normally appear before  the first name (like Mr Mrs, Miss, Ms, Rev, Prof, etc) which appear in this list.  To edit an item, select it by clicking on it and then you may delete it, or change it.  Note that the matching for parsing purposes is done using the left hand column in a case-insensitive manner (i.e. ignoring capitalization), but the item in the right hand column is what goes into the parser generated field.  This is to enable the user to standardize terminology, the case of the letters, etc  if desired.


Gender Tab
Gender Evaluation

ParseRat is able make judgements about gender based on the first names it is given.  It is able to genderize up to three incoming first name fields directly, as well as based on first name or middle name fields generated using the Names tab.  Additionally, it is able to set Gender 1 based on the title field parsed out under the names tab, since a name such as Mrs. V. T. Singh might appear in the input, without a first name to genderize.

The Gender tab allows the specification of one default male and one default female title.

Additionally, there is provision for a “joint” title - mainly for use in mailing list situations where the presence of names of more than one gender usually indicates a couple.  The user may, of course, change these default titles.

For performance reasons ParseRat has 10,000 names directly coded into its programming, but you may add names or override the definitions of existing programmed names.  Be aware that many names (e.g. “Robin” do not reliably indicate gender).

When comparing names for gender purposes, accented characters are considered equivalent to the unaccented characters.

Up to 50 additional names may be added by direct entry on the Gender tab and saved in the configuration (PRZ) file.

Additionally, up to 10,000 additional names may be added at a slight performance penalty by creating a comma-delimited file with the name "gender.txt" in the same folder as the PARSERAT.EXE file. This file must be of the format:

"JULIAN","M"

"JULIE","F"

"ROBIN","?"

where the ? indicates that this name is ambiguous.  This contents of this file are not case-sensitive.

Note that if you have a gender file in some other format, you can probably use ParseRat to convert it to the format above.

In the event of disagreement between definitions, the gender.txt file overrides the pre-programmed names and the names entered on the gender tab override both of the other groups.

To check on how a name has been already defined, enter it into the appropriate edit box and then press the tab key.


Street Address Parsing

ParseRat will parse out the components of a street address into Parser Generated Fields.

It will also create a “Standardized” street address in the sequence which you specify using the block of radio buttons on the right hand side of the tab.

For example, you may not wish to have non-civic address information in the “Standard” line, but export it to a different field.  In that case, ensure that none of the radio buttons level with the non-civic field is checked.

Some Street and Suite designators (e.g. Street, Avenue, Road;   Suite, Ste, Unit, Apt) are pre-programmed but may be overridden or supplemented by using the lists on the Mailing tab.

Since some postal authorities have preferred forms or abbreviations, ParseRat provides the means to substitute these preferred forms for suite and street designators.


City and State Parsing

Frequently, address data (e.g. when using page image input for a file intended as a label print file) the data for City, State/Province and Postal/Zip code will appear in one field.  ParseRat provides the means to parse these out into City, State/Province and Postal/Zip Parser Generated Fields.

The alpha-numeric pattern for many Postal/Zip codes is recognized.

For North American addresses the parser generated field for State/Province will contain the approved abbreviation if the fully spelled out version is found.  The user may edit the State/Province information using the list box provided.

For addresses having a “British” postal code pattern, the abbreviation “UK” will be entered in the “State” field.

An attempt is made to recognize “European” postal codes by structure and context.


Phone Number Parsing

Telephone numbers may be presented in one or two incoming fields.  They will be parsed into two fields designated as “Area Code” and “Phone” parser generated fields.

For some non-North American phone numbers the generic “Splits” and “Combination” tabs allow parsing of phone numbers into components.


Combining Input Fields

ParseRat is able to combine a set of input fields into a single output field, as in the above example.  By default the incoming fields are separated by single spaces, but this may be overridden by specifying up to two characters for each delimiter (a valid value is no delimiter).

To specify a combination, click on a white field in the Combination Specification area, then on the appropriate input field name.  Repeat this for each of the white fields in the Combination Specification area.

To specify a delimiter (separator) to use between two fields, click on the yellow field between them, then enter the desired separator in the yellow edit box and press the tab key.  Repeat this for each separator.

You may specify up to four combinations, the results of which are found in the Parser Generated Fields area on the Output tab.

Arithmetic Operations

If you wish to perform arithmetic operations on your incoming fields, you may set up the delimiters as arithmetic operators between the fields on the Combo Tab and then check the Evaluate as Arithmetic box.  This will then evaluate the strings you create in the resulting combination boxes according to the rules of arithmetic, recognizing

+	Addition
-	Subtraction
*	Multiplication
/	Division
^	Raise to power
%	Remainder after division
( and )	Grouping parentheses.

For example, if you want to add the contents of several numeric incoming fields you would select them as sources for the combination, then put + signs in the delimiter fields between them and check the Evaluate as Arithmetic box.

This example shows how an arithmetic formula may be generated. Four fields are added together and the result is divided by a fifth field.

Above: before checking the  Evaluate as Arithmetic box, below: after doing so.

Unit Conversions

An extension of the function of the Combo definitions provides for linear conversions of the results of the Combination fields.  The result of applying a conversion to Combination1 is placed in the parser-generated field Convert 1.

For each of the four combinations it is possible to specify a conversion of the form Y=A+BX, where X is the source combination value, A is a constant offset (usually zero), B is a multiplier and Y is the converted value. This permits the user to perform any linear conversion.

ParseRat has over 2,000 built-in conversions which may be selected on the conversion details popup panel of the MISC tab (this panel may also be invoked using the Unit Conversion button on the Combo panel).

You may select each of four conversions and for each one you may enter the values of A and B or you may select one of the preprogrammed conversions, which will enter the appropriate values for you. The example shows the system generating a conversion for Combo2 to change incoming figures in Celsius to Fahrenheit.

In the example the value of Combo2 in the current record is 17.

The specific conversion equation is Y=32+1.8X, i.e. 62.6=32+1.8x17. The result 62.6 is placed in the Convert2 parser-generated field.

You may test conversions by manually entering values of X (the source value) and in this manner ParseRat may be used like a conventional units converter.

Even when the panel is closed, the summary values are visible at the bottom of the Misc tab.

Key Generation

An additional parser generated field is provided called Combo 1 ALNUM only which consists of the result in Combination 1 but with only numbers and letters strung together in uppercase.  This is frequently useful to use as a sort and comparison key when performing de-duplication or similar exercises. In database terms, it is a Composite Key.

User Plug In Programs

Sometimes you might want to make changes to a field or set of fields which are not provided by the built-in ParseRat filters.  You may achieve this by writing your own Plug In Program to further process the results of the combination.

(You may wish to create some kind of hash total from a name in the input file, to act as a password code to a system, for example.)

When the "Use Plug In program" box is checked, ParseRat writes a file named ~prtplug.txt in the user's Windows directory (it writes it there because that is the one directory where you know the user has write privileges) containing the Combination Results fields (one per line), then issues a call to whatever program name has been entered in the "Program/File:" input box.  It waits for that program to complete and then reads back from the file new values for the Combination Results fields.  (A sample plugin called plugtest.exe is provided, which reverses the characters in the fields.  The C source of this program is also provided.)

Your "Plug In" program should read that file, make whatever changes you wish to the fields, write them back to the same file, then exit.  You should place your plugin in the same directory/folder as the PARSERAT.EXE file.

Since you do not necessarily know the name and location of the user's Windows directory, ParseRat puts the name of the file (including directory/folder name) as a command line argument when calling your program, so that you may access it in order to determine which file to access.

Note that ParseRat pauses while your program executes for each input record, which can significantly slow the processing speed and may cause windows generated by your program to appear.  If your program does not close files and exit, your computer may "hang".


Splitting Input Fields

Sometimes it is necessary to further split an input field.  ParseRat will perform such a split using the Split tab.  Up to three such fields will be split into up to three fields, based on alphanumeric “words” separated by spaces or other delimiter characters.

The delimiter options are commas(,), slashes(/) or the default which splits on any non-alphanumeric characters.

The resulting splits contain only alphanumeric characters if using the default setting (note that "spiltting" into one field has the effect of creating a new field by simply stripping out all non-alphanumeric characters - which may be desirable in some circumstances).

(The above example shows a section of a dBase file with a German telephone number, a CompuServe ID and an Email ID.  Whether these are likely candidates for such a split is dependent on the user application.)

To specify a split, click first on the Source selection box, then on an input field name.

If it is desired to further split one of the fields resulting, you might consider two passes of the program, creating an intermediate file.

If a string is found in a split-selected input field which matches the pattern for an Internet domain name (e.g. ends in .com, or .co.uk, etc.) it will be placed in the parser generated fields NameInSplit1 etc.


Date Conversions
Date and Time Conversions

ParseRat is able to convert dates from many different formats into several standard formats.  It can also handle dBase date fields both as input and output.

For input it is necessary for the user to specify only the sequence of the incoming date elements (for non-dBase date fields) and whether the incoming field also contains time data.  ParseRat can recognize dates in numeric format with or without delimiters and in alphabetic format in English, French, Spanish, German and Italian. If any non-DMY data (e.g. the day of the week) is prefixed before the date, ParseRat will ignore it since it calculates day-of-week from the day/month/year values.  This means that non-English day-of-week data will not cause confusion.  Should you wish to extract and use such date prefix information, use the SPLIT filter tab on the field in addition to the DATE filter tab.

Year 2000 note: If the incoming year has only two digits, the user may specify the year prior to which dates will be considered to come after the year 2000 in generating 4 digit output years. e.g. if you specify 15, years from 15 to 99 will be assumed to refer to 1915 to 1999 and 00 to 14 will be assumed to refer to 2000 to 2014.

The user selects the format of output dates, with the current date showing in the chosen format on the page as visual feedback.  ParseRat also generates integers for year, month and day which may also be output as Parser Generated Fields.

ParseRat handles time conversions either when the time is part of an incoming date field (the user specifies this option by checking the appropriate box on the Date tab) or when there are separate incoming time fields.

Times will be correctly handled whether or not they contain delimiters and will correctly handle am/pm designations.

As options, ParseRat can treat incoming time values as a decimal fraction of a day (often time values are expressed as Julian dates plus a decimal portion) or as Epoch Seconds, the number of seconds since January 1, 1970, commonly used in computer systems and known to C programmers as "Calendar Time". In the case of Calendar Time, ParseRat will also complete date information in the appropriate fields, unless another specific date source has been selected.

Times are parsed into integer parser generated fields for hours (24 hour clock), minutes and seconds.

A time which comes in as part of Date 1 or Time 1 will be parsed into hour 1, minute 1 and second 1.

If ParseRat finds a number between 1,200,000 and 4,000,000 in a date field, it treats it as a Julian Date, since no other calendar date format fits that pattern.

If it finds a number greater than 4,000,000 it assumes that the number is the number of seconds since January 1, 1970, commonly used in computer systems and known to C programmers as "Calendar Time", and converts it to a date (see the bookmarks sample file).  If "Time in Date" is checked, it puts the time value into the parser generated time fields unless some other time source is specified on the Time tab.

Should more date formats than dBase plus one other input sequence and one other output format be required for a single file, this may be achieved by using more than one pass of the program, creating an intermediate file.


Julian Dates

Astronomers and chronologists use a system of numbering days called Julian days or Julian day numbers.

The Julian day system was developed by Joseph Justus Scaliger (1540-1609) in the course of his work on ancient chronologies published in 1583, and probably named for its fit to the Julian year.

January 1, 4713 B.C. is the date determined by Scaliger to have three different yearly counting schemes simultaneously at the start of their sequences and the Julian Date of a day is the number of days since that date. This makes it easy to determine the  number of days between two days (just subtract one Julian day number from the  other).

The system of Julian days should not be confused with the simpler system of the same name which associates a date with the number of days elapsed since January 1st of the same year.

The Julian Date can be stored in a 32 bit integer (taking up only four bytes), less space than needed for most other date storage (including the YYMMDD six digit format which brought the “Millenium Bug” to the world).


Time Conversions


Conversion from Multiple Input Fields (Parsing Corrections)

ParseRat accepts instructions to put a specific item in a particular place by the user clicking first on the destination and then on the source.  When the user clicks on an already assigned destination, the current source is highlighted (“Selected”) but the user may click on a different source to change that selection.

On several tabs, the user may assemble a composite input field to parse by selecting several input fields which will be strung together.

This is particularly the case with name and address data, where the elements of a name or a street address may be already partially parsed into several input fields.  (This parsing may not have been performed correctly originally, or further processing may be needed).

Click first on the leftmost of the boxes marked: Source Fields, then click in the Field Name column on the field name of the first input field which you wish to assemble for parsing (frequently you will need only one such field).

Then click on the next of the boxes marked Source Fields, then click in the Field Name column on the field name of the next field to be assembled for this parse, etc., etc.

The composite field being assembled will be displayed below the Source Field boxes.

To clear an entry from the Source Field boxes, click on it and then click on the Clear button.


dBase Files

The dBase file format is read and written by most database and spreadsheet programs. dBase files contain field names and the fields are already tagged as numeric, character, date etc.  ParseRat will not recognize dBase “Memo” fields or binary or picture objects, but will handle the other fields in a table which contains them.

On output ParseRat will write dBase type III compatible files if that option is selected.  The user has the choice of writing dates as dBase date fields or as character fields.

If an output field is set as "Logic" format, only values of "?", "Y", "N", "T" or "F" will be permitted in that field and other values will be converted to T or F based on the following rules, applied sequentially:

1	If the first alphanumeric data in the field is a number not equal to zero, the field will be set to "T".

2	If the first alphanumeric data in the field is a number zero, the field will be set to "F".

3	If the first alphanumeric character in the field is "Y", "y", "t" or "T", the field will be set to "T".

4	If the first alphanumeric character in the field is "N", "n", "ft" or "F", the field will be set to "F".

5	If the field has not been set to "T" or F, it will be set to "?".

Note that if you are generating a new dBase logic field, you may pre-set it to "?", "T" or "F" by setting it to a parser-generated Empty Field, and then setting a default value of "?", "T" or "F".

Note that whichever program you are using to process the resulting dBase files must be set to display characters in the same format as the file from which the data originated, if accented characters are included.  Most Windows programs use the ANSI character representation and therefore you should set your database program to use this representation.  Since the DBF format preceded widows, some DBF files use other character representations and since these must be recognized by Windows database programs, these usually permit a choice of representation.  If accented characters look strange in your database program, you will need to check its configuration settings to ensure that it is set to ANSI.

dBase Y2K note: DBF files are fully Y2K compliant when storing dates in the tables.  They carry a 4 digit year in all cases.  However the DBF file header includes a "last updated" date in which the year is carried as a single byte and can therefore carry values of 0 to 255 (00 to FF hex).  dBase III and some other programs recycle the year to zero after 99 so that they carry year 2000 as 0.  Other dBase versions and some other programs do not recycle and thus carry year 2000 as 100 (64 hex).

ParseRat defaults to the dBase III method and carries year 2000 as 0 in a DBF header. You can change this by checking the "DBF Y2K header" box on the Date tab.  This may be required at times, since some programs demand that the header carry dates in this form. Note that if the input file carries a year byte greater than 99, this box is checked by default.

If you are only running the program to change the header treatment of the year byte, proceed as follows:

1.	Open the dBase file.
2.	Click the "Copy Input Fields to Output Fields" button.
3.	Open the Output tab and select dBase output.
4.	Open the Date tab and change the "DBF Y2K header" check box.
5.	Click the Output button on the toolbar and export the changed file.
The following table shows how some other products handle the year byte in DBF headers.


Mailing Options

The Mailing tab allows the user to edit various options used in processing mailing lists.

♦	Street Designators and Approved Abbreviations

♦	Suite Designators and Approved Abbreviations

♦	Non Civic address elements and Approved Abbreviations

♦	Items to trim from “Telephone Directory” names (e.g. “Fax Line”, “Teen Phone”, etc)

♦	Capitalization Exceptions, for use in “Proper Casing” words

♦	Surname prefixes to allow the correct parsing of multi-word non-hyphenated names (e.g. “De La Rue”, “Di Angelo”, “Van Gelder”).

♦	Interleaf factors for printing more than "one up", yet preserving sequences after cutting the stack of paper.

♦	Strip Accents from output fields.  Many mailing programs cannot handle accented characters, checkmarking the "strip accents" box will convert accented characters to their unaccented equivalents in all output fields.


Interleaving Output

Frequently you will have a need to print "several up".  In other words, you may wish to use your output file as input to a mailmerge program which prints several mailing pieces on a single sheet of paper.  If you have a lot of records and you want to maintain the same sequence as your input records after cutting up the sheets, this can result in frustration.  It would be easier if you could just cut the stack of paper and put the resulting stacks together.

For example, if you have 2,000 records and you want to print 2 up on 1,000 sheets of paper you will want to print records 1 and 1001 on the first sheet then 2, 1002 on the second sheet.  After cutting the stack the top piece would have records 1-1000 and the second stack 1001-2000.

To achieve this, you would use the "Interleaf Factor" setting on the Mailing tab and select the entry for "2 streams". This will order your output records as 1, 1001, 2, 1002, 3, 1003 etc.


Adding Header and Trailer blocks to the output file

You may insert a "block" of material ahead of the output records generated by ParseRat and/or a block of material behind the output records generated by ParseRat.  The blocks of material are set up as files and those files are selected by entering their names on the MISC tab.  If a full path name is given (or selected by the Browse button), then that file is used. If only the file name is given, then ParseRat will look for it in the directory in which the program is installed. If no file name is given, or the file cannot be found, then nothing will be inserted.

A good example of how  this is used is  the automatic generation of HTML pages of links to web sites.  You may set up a header block containing the HTML material to go ahead of the links and a trailer block (often consisting solely of </BODY></HTML>) to follow them.  The other HTML code for the links is set up as default values in fields defined as empty (that is how constant information is placed in an output file) and the variable information for the URL, the clickable text and other variable material is selected from the source or the parser generated fields.  Note that default values are limited to 31 characters, so a longer tag will need to go into more than one field. For link page generation, you should also select the "no delimiter" output format option.

As an example of this, you may look at an example created from the sample file products.txt (in the samples directory/folder).  This is a comma-delimited file containing the name and description of a product together with a URL (web address) where it may be found.

If you open products.txt in ParseRat, ParseRat will recognize it as comma-delimited and present it as such. You may  notice that the first record consists of field names, and check the "Take First Records as Field Names" box.  To see how to create an output file with header and trailer block, load the saved preferences file ProductToLinksPage.PRZ.

Notice on the Misc tab that file names for a header block and a trailer block are included on that tab.  Since they do not include full path names, they will be sought in the same directory/folder as the ParseRat program files (the installer will have put them there).

You may now save the output file (giving it an HTM extension) and it will look like the following when opened in a browser.

To create similar link pages from other input files (of any input format type), simply open the file and set it up so that the fields for the URL, clickable title and non-clickable descriptive text are available either as input fields or as Parser Generated fields.  Then select File…  Copy Output Format and select ProductToLinksPage.PRZ.  Connect the appropriate fields to the output fields URL, CLICKABLE TITLE and DESCRIPTIVE TEXT. The fields html1 etc. contain web page formatting tags which you should only change if you understand these tags.

Output the results to a text file with the HTM extension and open it in your browser.

Since a frequent requirement is the creation of a two-column web table, a generic template for this is included in the samples as ProductToWebTable.prz.  This template permits you to insert in each of the two columns:

Text before the "hot" link text.

Hot link text.

URL for the hot link.

Text following the hot link.

Any number of these fields may be left empty and the table will still work.

The result is something like:

Where the name of the product is used as the link text in the first column along with the URL. Only text is used in the second column, leaving the "Link" stuff blank.


Contents of products.txt

"Product","Description","URL"

"PlanBee project management planning tool 1.0c","Critical Path Project Management Planning tool. Inexpensive alternative to MS Project. Reports, PERT charts and Gantt charts may be either printed, or copied to the clipboard for pasting into other programs.","http://www.guysoftware.com/planbee.htm"

"ParseRat 2.0","Parse, convert & reorganize files and databases. Reads most files including page image print files from other processes, fixed format, delimited, dBase, structured binary etc. ASCII or EBCDIC. Intelligently parses dates.","http://www.guysoftware.com/parserat.htm"

"HELLLP! 3.1b","WinHelp file authoring tool for Word for Windows. Use Windows Help files for your manuals~Designed for user friendliness.~~Automatically generates a top level Table of Contents with Hypertext jumps to topics already in place.","http://www.guysoftware.com/helllp.html"

"Just Buttons 1.6","Ever wanted to create a button for your program or web site without having to learn how to use those complicated paint programs? Well guess what, now you can create web buttons instantly just the way you want! Including Javascript mouse events!","http://www.lincolnbeach.com/justbuttons.asp"

"Repligator 7","Repligator is an easy to use graphics effects program. Simply open your image file and hit F7 a few times to see what effects Repligator suggests. Designed for non-artists who want to easily produce unique and colorful effects.","http://www.ransen.com/repligator/"

"SiteTrak 2.2","The simplest and fastest way to submit your shareware products. Keeps a database of all the sites you submit your software to as well as vital information about your applications. Uses PAD files so you can get up to speed quickly!","http://www.lincolnbeach.com/sitetrak.asp"

"NoteTab Pro 4.85","A leading-edge, award-winning text and HTML editor. Handle huge files with ease, convert text to HTML, build document templates and take charge of your code. Fully extensible, with a powerful scripting language to meet the needs of the serious user.","http://www.notetab.com/"

"ClipMate 5.3.02","Popular Clipboard Extender Holds Hundreds of Clips, across reboots. Powerful editing, re-formatting, combining, change case, drag and drop, etc.. Many HTML and internet features, E-Mail clean-up, and even a spellchecker! English dictionary  included","http://www.thornsoft.com/ProductOverview.asp"


The Output Tab

This tab controls how data is placed into the output file. When you first open the output tab, a blank output field is created and you are asked to select the item to go into it.  You do this by clicking on either the field name of one of the input fields or on one of the items in the “Parser Generated Fields” area.  The field name will change from generic “Output XX” to the name of the item selected.

You may (and probably will) wish to change the field names if your output is to be used in a situation in which fields names are significant.  It is the user’s responsibility to ensure that field names are valid for use by other programs which will use them.

In many cases you will wish to copy all of the field names and contents from the input fields to the output fields, and then make minor changes.  To assist in this process, a button is provided on the Input Tab which performs this if appropriate. This button is visible and enabled only when you have defined input fields, but not output fields. You may also copy the output specifications from another saved preference file using the Copy Output Format selection on the File menu.

To add another field, click on the Add Field button if you wish to place a new field at the end.  If you wish to place it above the currently selected field, use the Insert Field button.  The Delete button will delete the currently selected output field.

You may set many options for the currently selected field by using the functions in the framed Detail Setup For Field area at the bottom of the page.  If you are intending to save the file as a dBase file, or in a delimited format which includes field names you may wish to rename the field. Clicking the [<-] (left arrow) button acts as a shortcut key to rename the selected field.

When you click on the dBase output format option, the field names will be converted to valid dBase field names.  ParseRat will also check that you have specified field widths and decimal places as required for dBase files.  If the selected field is a date field, you will be offered the option to save it either as a dBase “Date” field or to save the format you see in the list.

You will be offered case conversion options for character fields and the option to convert to Soundex coding instead.

If you specify that a field is to be numeric you will be allowed to specify decimal, hexadecimal or scientific output format.

Additionally you may elect to have the number divided by 100 by checking the "/100" box, to permit the conversion of percentages to ratios, cents to dollars and to handle any field with an "assumed" decimal point two places from the right (common with COBOL currency data of the form 9(5)v99). This can also convert street addresses to block numbers for mailing and canvasser operations. Similarly the "x100" box will multiply the result by 100, useful for converting ratios to percentages if you have used the "Evaluate as arithmetic" function on the Combo tab.

Setting the number of decimal places also allows you choose truncation (the default) or rounding if less significant digits need to be removed.

If a numeric field is of a fixed width, the user has the option of having it filled out with leading zeros. For “Comma Delimited with Quoted Strings” output, numeric fields are not surrounded by quotes.

The Output Tab also provides the means to eliminate duplicate records, based on specified matching fields in the output record.

You may re-sequence the output fields by dragging the field name items to new positions by placing the cursor on the field name of item to be moved and by dragging it to a new position by holding down the left mouse button while moving the cursor to a new position.  When you release the button, the move takes place.

If necessary you may insert a line break into your output record (converting it into a multi-line block) by inserting a field and defining that field as the LINE BREAK parser generated field.  You will probably only need to do this in situations which you have defined as "no delimiter" format (e.g. creating a QIF file for import to Quicken).  If you have defined delimiters the line break will be between two of them.

If you wish to repeat the output format settings in several fields, first set them up in one of the fields, then right-click on one of the fields to which you wish to copy the formatting.  You will be asked to confirm the format copy and that field will then become the selected field, along with the formatting from the previous field.  You may repeat this process as often as you wish.

Should you wish to insert material before or after the records created from the input material you may specify Header and Trailer Blocks to go into the output file.

Only after you have viewed the Output Tab to specify output formats will you be able to Save the Converted File, that option is disabled until you have done this.  You may start the output process either from the File menu or by clicking the Output icon on the toolbar (the one with the picture of a disk on it). If you wish to test a sample of your file, you may check the "1,000 record test" box. If that box is checked, the program will terminate after writing 1,000 output records which you may then test with your other applications before committing to a run which may produce millions of output records.  The evaluation copy of the program is limited to this 1,000 record test.

Instead of naming an output file, you may select "Clipboard" as an output format option.  In that case the output will be copied to the clipboard.


1,000 record test box
If you wish to test a sample of your file, you may check the "1,000 record test" box. If that box is checked, the program will terminate after writing 1,000 output records which you may then test with your other applications before committing to a run which may produce millions of output records.  The evaluation copy of the program is limited to this 1,000 record test.


Proper Case Conversion and Capitalization
Proper Case Conversion is the conversion of character fields to a format in which initial letters are capitalized and other letters are not.

This will not always result in the correct capitalization so exceptions have been specified.  For example a word beginning with “Mc” usually requires the next letter to also be a capital as in “McDonald”.  Some words (usually trade names) like “WordPerfect” also require to be capitalized using special rules.  ParseRat provides the means to specify up to 50 “Capitalization Exceptions” on the Mailing tab.

Any word beginning with (or comprising) a letter sequence included in this list will have the capitalization pattern established according to the list.  This also permits the initial letter to be lower case if so specified in the pattern.

If a letter sequence is followed by the < character its capitalization pattern will be used only when standing alone as a word.  e.g. the pattern  "IV<" when applied to KING GEORGE IV would result in King George IV, but when applied to AUNT IVY would result in Aunt Ivy and not Aunt IVy.

The list may be edited “on the fly” by the user if desired (changes will be saved with saved preferences).


Default Value
A Default Value may be specified for a field.  If the value in the field is blank, the default value (if one is specified) will be used instead.  To specify a default value for a field, click on the “Default” button and enter the value in the adjacent box.  This mechanism can be used to set a field to a constant value by clicking on the field name in the column at the right and selecting “Empty Field” from the list of Parser Generated Fields.  In such a case the default value will always be the one used.  This can be used much like a simple “Mail Merge” to create repetitive lines incorporating items from the input records (some of the C++ code used in programming the ParseRat application was created that way).


Duplicate if Blank
The Duplicate if Blank setting is used to “fill down” if fields are blank.  If it is set and the field is blank, the value of that field from the previous record will be used.  If a default value is also set for the field, it will be effective only until a non-default value appears in that field.


Rename Field
The Rename Field option allows the user to change the name of the selected field.  This is usually only of value if the output file is to contain the field names in some manner. If you have the Output tab open, the Left Arrow acts as a shortcut key to the rename field function.


Remove Leading/Trailing Blanks
The Trim Blanks option is set for all output fields by default but may be turned off by the user for the selected field.  Its effect is to strip both leading and trailing blanks from information in the incoming fields before they are further processed to produce the specified output field.  Note that trailing blanks will be added if the field width value is set to more than  the width of incoming data for that field.


Field Width
The Field Width setting sets the width of the selected output field.  If longer than the setting it is truncated.  If shorter it is padded with blanks.

Note that the system can scan up to 1,000 records and set all field widths to the widest it finds for each field if the AutoSetFieldWidth item on the File menu is clicked.


File Output Formats
File Output Formats may be selected by clicking on the appropriate radio buttons.

Note that if dBase is selected you will be required to ensure that field widths and decimal places have been defined where appropriate.

The WordPerfect setting will create a WordPerfect version 4.2 Secondary Merge File, which may be used by that and later versions of WordPerfect.

(Note that if you want to read in a WordPerfect secondary merge file, select "Other Delimited" on the input tab and enter CTRL-R in the edit box which appears.)

Many software packages, including Microsoft Word will perform a mail merge using a file which is Comma Delimited with Quoted Strings.

For Microsoft Word merge purposes you should also check the box to output the field names as the first record, since this will allow more flexibility within Word and will allow you to create a master document which will work with different data files, since it uses the first record to specify merge fields to use.


Duplicate Elimination
Duplicate Elimination.  If all of the values in the fields where the DeDup box is checked are identical to those in the previously written record, the current record is skipped and not written to the output file.

Using this function some sophisticated de-duplication is possible with multiple runs of ParseRat.

For example, on an initial run, fields based on soundex coding may be introduced into the output solely for de-duplication purposes and an intermediate file produced.

This intermediate file may be sorted using the de-duplication fields as keys, then run through ParseRat again with those fields flagged for DeDup and another produced with the “duplicates” eliminated.

Note that the eliminated records may not be identical in all fields to the ones retained, just in the DeDup fields.

This file may be used as-is, or it may be run through ParseRat a third time in order to eliminate any fields included solely for de-duplication.


Skip if Empty
Skip if Empty.  If the "Skip if Empty" attribute is set for an output field, ParseRat will not output the record containing that field if the field is totally empty.  Note that if the input field on which it is based contains only spaces, they will normally be eliminated and result in an empty field, resulting in the record not being written.  If you wish to eliminate a record if the input field is totally empty, but include it if the input field contains spaces, simply uncheck the Trim Blanks attribute when you check the Skip if Empty attribute for that field.

The Skip if Used attribute is the opposite to Skip if Empty and omits records where the field is not empty.  This may be used to produce two output files from one input file, separated based on the presence or absence of contents in an output field.

Select based on field contents. Sometimes you might want to select or "filter" the input based on the contents of one of the fields in the input record. You can do this by checking the Select box on the Misc tab and entering some text into the edit box which appears.  While still on the Misc tab, click on the input field in which this text will be sought. When you do this, only records with that text in that field will be translated to the output file. If you select the equals compare type, the field must match in every respect including case.  If you select contains the record will be included if the text string is anywhere in the field and without regard to case. If you select omits the record will be skipped if the text string is anywhere in the field, without regard to case.


Appending Results to an Existing File
Appending Results to an Existing File. If the Append box on the Output tab is checked, ParseRat will not overwrite an existing output file.  Instead it will append the new information to the end of the old file.  The user is responsible for ensuring that the structure of the old file is appropriate and matches the new information.

This function is useful for creating new records by splitting old ones.  For example, if an input file contains names and addresses with several name fields for different people sharing an address (or if names are in "splittable" fields) a run may be done with one of the names going to a name field in the output record.  After that pass, a different incoming name field may be directed to that same output field (setting "skip if empty" to avoid null names creating a record), checking the Append box and repeating the output to the same file.  In this manner, one record will be created for each name.


Eliminating Duplicate Records (more detail)

The elimination of duplicate records can be a major task in many situations.

It is not made any easier by the fact that records which in fact duplicate the same information are not identical.

Using mailing list examples, the name may be spelled differently (McDonald, Macdonald, MacDonald); the salutation (Mrs, Ms; Miss, Dr can be the same person); the street address (#123 - 456 17th Street; 456 Seventeenth St., Apt 123; Suite 123 seventeenth).

Commonly, when generating mailing lists from telephone list CD-ROMs duplicate records will also arise when the same entity has several listings (note that ParseRat has the ability to delete noise words and phrases like “Teen Phone”, “Fax Line”, etc.)

ParseRat has the ability to fully parse an address into its components, as well as generating a standardized address.  It is also able to generate soundex coding of words.

If you know that the records which you wish to eliminate as duplicates are adjacent to those you wish to retain, the procedure is as simple as ensuring that those components on which you wish to base the “matches” are included among the output fields you specify on the Output tab, along with the records you wish to retain in your final file (you can remove the components you don’t need later with another run of ParseRat).

Check the DeDup box for the match fields.  For example, in a mailing list example you will probably want to create a soundex code of the last name (possibly of the street name if you think it might be mis-spelled but phonetically correct)

To obtain these components you may need to use the name parsing and address parsing features of ParseRat.  You would check the DeDup box for the last name soundex, suite number, street number, street name soundex, city and state.

ParseRat would then include only the first record if it finds multiple records where those fields are identical.

If the records are not known to be adjacent, several passes are necessary.

Pass 1: Create the fields needed in an intermediate file.

Pass 2: Sort the intermediate file using the match records as keys (key sequence is not critical - this is just to bring them together).  If you do not have a suitable sort program to handle the kind of output your later process needs (most will work with dBase and will sort tables), you might consider creating a fixed format record with no delimiters, placing the match fields at the front and using the DOS sort - you can process it later with ParseRat’s fixed format routine.

Pass 3: Pass the sorted file through ParseRat with the “match fields” set as DeDup.

Pass 4: (Optional) Another pass to remove any match fields not required in the final output.

This process can be used with very large files (million record size certainly) although the sort may take a long time (maybe over night).

It is frequently advisable to create a key field specifically for use in de-duplication.  ParseRat provides a means of combining (stringing together) up to four input fields.  It also provides as a parser generated field the value of Combination 1 strung together with only numbers and letters (all uppercase) for use as a key in these or similar circumstances.  This parser generated field is entitled Combo 1 ALNUM only. If a key generated this way is used for de-duplication, variations in spacing, punctuation and case will not mask duplicates.


Saving Preferences

ParseRat has the ability (on the File menu) to save the settings you have made for a given situation.

You may wish to use them regularly for processing similar files (e.g. the monthly “hit” report you get from your WWW host).

These preferences may be saved (with the default extension .PRZ) for later use.  Then when you are processing that type of file again, open the file then load your saved preferences for that type of file.

You may set many personal preferences with ParseRat, including preferred date output formats, modifications to standard lists of names, titles, designators etc which you will wish to use for many tasks on different file formats.  You might wish to save them before you set input and output options under a name like DEFAULT.PRZ to save you time when setting up new file formats.  Just open the new file, then load your saved default preferences, set the file-specific options and then you may save the resulting preferences under a new name.

You may also copy the output specifications from an existing preference file by selecting the Copy Output Format selection on the File menu.


Command Line Interface

Sometimes you might want to call ParseRat from some other program to carry out some pre-programmed task.  You may do this by adding parameters to the command line when calling ParseRat.  The command line interface is:

Parserat  InputFileName  PreferenceFileName  OutputFileName

If all parameters are given, ParseRat will load the input file, load the preferences, write the results to the output file and then terminate, closing itself.

If the preferences include "append" as an output preference, the new results will be added to the end of the output file if it already exists.  If the preferences do not include "append", any file with the same name as the output file will be overwritten.

If you wish to read input from or place input to the clipboard use an asterisk * instead of a filename in the appropriate place.

For example, if you regularly download or otherwise acquire a file with a given name, you may set up a Preferences file to handle it.  The results could be added to a database which you are keeping. A simple way of doing this would be to set up a batch file, say RegProc.BAT:

start "Parserat"  "download.txt"  "regproc.prz"  "results.dbf"

Exit

And then associate this file with a desktop shortcut icon.  Then, whenever you clicked on the icon, ParseRat would update your results.dbf file with information from download.txt following the rules you had saved in regproc.prz.

If you wish to run a series of commands in a batch file and want each to finish before the next one starts, you would use the /wait parameter.

e.g.

start /wait "Parserat"  "download.txt"  "regproc.prz"  "results.dbf"

start "Parserat"  "results.dbf"  "makepage.prz"  "page.htm"

Exit

Will start to create the file results.dbf from download.txt and wait for the process to finish before processing the results.dbf file to create another file.

Using a Visual Basic or other program to call ParseRat via shell calls provides the means for some very sophisticated processing.

In Java, for example, you may launch the ParseRat program using the Runtime.getRuntime().exec() command. This command returns a Process object, and then issuing the waitFor() command on the returned Process object causes the program to pause until the ParseRat program completes.

Notes: If the output file name is omitted, ParseRat will load the input file, load the preferences and then wait for you specify an output file.  If both output file and preferences are omitted, ParseRat will load the input file and wait for you to give it further instructions.

The quotes surrounding the items in the command line are necessary only if there are items in the file names which would "break" the items.  This will frequently happen with long filenames and long directory names since these often contain spaces.

Windows 2000/NT/XP note: The "Start" command in Windows 2000/NT/XP batch files is not compatible with the "Start" command in Windows 95/98/ME.  If there is a quoted string it simply opens a new window with the first quoted string as its title.

To make your batch file work properly under Win2000/NT/XP you will need to

omit the word "Start" or

omit the quotes from the strings. (Note that if there are spaces in any of the paths of the parameters you cannot omit the quotes.) or

Put a dummy title in quotes e.g.

start /wait "Title" "Parserat"  "download.txt"  "regproc.prz"  "results.dbf"


Hints and Tips

Favourite Settings:  You might have settings changes which you always make.  For example you might have names for which you always want to provide overrides to the gender data defined in ParseRat, or you might want to add titles or name suffices to the standards (or delete some that are there).  The easy way to do this is to define these settings, without doing any output definitions and to save the resulting preferences.  Then , when you start any new definition, just load that basic preference file as a starting point.

Multiple Passes to handle complexity:

Frequently a sophisticated parsing scheme may be obtained by using multiple runs, parsing first to a temporary file and subsequently using that file for input (see the suggestions for eliminating duplicate records using ParseRat).

Another example may occur when parsing Canadian mailing lists.  The Canadian postal code consists of two parts of the form V7V 1P9, etc. where the first part (the V7V here) indicates a broad tract called the "Forward Sortation Area".  To extract the FSA from the postal code is simple if there is a  field in the original file containing only the postal code (use the Split tab to break it into two fields at the space).  However, if the code is combined in a field with city and province this won't work.  To resolve this, you would first parse to an intermediate file to extract the postal code and then parse from that to your final file, splitting the postal code on the second run.

Multiple passes to handle more fields:

ParseRat will handle up to 99 fields in a single pass.  Sometimes you need to extract more than this number of fields when creating a database from an existing file.  This may be achieved as follows:

•	Perform a ParseRat run extracting up to 99 fields including a ParseRat generated record number. (Save the preference file if you will be repeating the exercise with other similar files).

•	Repeat the process to extract additional fields, again including the same Parse-Rat generated record number.  You may repeat this as many times as necessary, allowing you to convert files with huge numbers of records.

•	Using your database product, perform a "join" using the ParseRat generated record number as the key for the join. This will create a database table containing all of your extracted fields.

Data Blocks in Files:

You can do a lot more with the "Page Input" format if you consider pages to be "data blocks", not necessarily physical pages.  Many files have data blocks logically separated by one or more blank lines.  Process them by setting page input format with "blank lines" set as the page delimiter.

Tagged Input:

Consider using "tagged pages" to extract data from HTML files.  Remember that a "page" could be a single line.

For example, you might have an HTML file containing blocks like:

<INPUT TYPE=hidden NAME="ajparam_logpickord" VALUE="1">

Who holds political office in the city of

<SELECT NAME="ajparam_list1">

<OPTION SELECTED VALUE="0">Anchorage, AK

<OPTION VALUE="1">Fairbanks, AK

<OPTION VALUE="2">Juneau, AK

</SELECT>

 and how can I contact them? <input type=submit value="Answer"></form>

</b></font>

If you wanted to pick out the "City/State" pairs as records, you would:

Select Page Input Format.

Select Tag Text on Top Line

Enter <OPTION in the tag text box (replacing the default "Page").

Select Data Location Tagged.

Go to the Page tab.

Click Add Tag.

Enter > in the box and press enter.

Note that a field name of ">" appears (the field name is the same as the tag) with a value of "Anchorage, AK".  This may be further processed by such things as the "split" filter.

Pressing next produces a new record with Fairbanks, AK and pressing it again produces Juneau, AK.

Pressing next at this point will run down the file to the next such block and continue with more similar pairs.

Note that if the tag had been entered as VALUE= the field would have contained "0">Anchorage, AK and this could be split using the Split tab into three fields of 0, Anchorage and AK for output.

Using tags in this manner provides many sophisticated possibilities.  Remember that you can specify which occurrence of a tag you want to find.  This is useful if, for example, the item you want is the third piece of bold text.

Sometimes the line ends will cause problems on an HTML page. Since they have no effect on the web browser, the application which formatted them may not be consistent in applying them. To avoid this you may check the Ignore Line End box and fields will delimited only by the occurrence of tags.

If there are still <> tags in your output fields and you wish to remove them, use the Strip < > tags function on the Misc tab.

There are special routines in ParseRat to handle HTML Tables.

If you wish to harvest data from web pages you may also import it to ParseRat from the clipboard.

Multiple spaces (removal):

You may wish to "single up" multiple spaces in an input field.  This is easily achieved using the Split tab.  Select the source field and "split" it into "1", based on "Any non-alphanumeric character". This will produce a new field in the "Splits" section of the parser-generated fields consisting of ONLY alphanumeric characters with the words separated by single spaces.

Constant information may be inserted into an output record by selecting "Empty Field" and placing the desired data in the default value.


Generic Popup
No specific help is available for this item.  For general help please click on the [image] button.


Examples in the Samples directory/folder

When ParseRat was installed on your system, a folder containing sample files was established.

This folder contains sample parsable files (usually ending in .TXT) and saved preference files (ending in .PRZ).

To access and examine these files, open the TXT (or other) file first, then choose the PRZ file from the Load Saved Preferences option on the File menu.

PHONEBK.TXT: is a Comma Delimited with Quoted Strings file as exported from one of the popular telephone list CD-ROMs.  Open it and then load its saved preferences.  It demonstrates several features.

Click on the Next button twice to move to record # 3.

Select the Output tab and look at the "Parser Generated Field" list to see how it has created several fields which you may use in manipulating names and addresses. (Note that the Output speed button at the top of the screen is disabled until the Output tab has been selected - this is to avoid having someone attempting to save an output file before defining fields to go into it).

Now select the Name tab.  Note that the name is carried from "Field 1" of the parsed input line onto the name tab (in this instance the name is all in one of the input fields - ParseRat can assemble the name from several input fields if needed - usually to re-parse incorrectly parsed name components in the input file).

Notice that ParseRat has been set to expect input items in the sequence Last Name, First Name, Middle Names, Suffix and then Title and that it will create a “Standard” name in the sequence Title, First Name, Middle Names, Last Name, Suffix.

Titles and Suffices will be recognized only if they appear in the lists given and that you may edit those lists. To add a tile, click on Add.  To delete a title, click on it then click on Delete.  Notice that you may provide substitutes to be used replacing titles and suffices found (for example, you may wish ParseRat to recognize “Professor” as a title but replace it with -substitute - “Prof”).

Notice also that in the raw name input there are items which are not appropriate for personal mailing purposes and which have been eliminated (click the Mailing tab to view the list of words which will be eliminated from incoming names - you may edit this list and your changes will be saved if you save preferences).

Notice that the title Mr has been generated although it did not occur in the input line.  This results from the Infer Title checkbox being set.  Uncheck the box and note that the title vanishes.  ParseRat knows the gender for 10,000 names. You may set the preferred title for male and female names, you may also provide a title to use if both male and female names are present (usually denoting a couple).  Many names are ambiguous (Kim, Robin etc. may be male or female).  You may add or override the gender associated with a name (up to 99 changes or additions may be made).

Click three more times on Next and note how the title Dr was correctly identified after removal of some noise words.

Click Next until you reach record # 10, then click the Street tab.

Notice that this is an apartment number, although without an apartment designator.  Notice that ParseRat has parsed out the address into components and has created an Odd/Even field in the Parser Generated Fields.  See also how a “Standard” address has been created with the element sequence set according to the blue radio buttons.

ParseRat can provide a default suite designator for situations in which one is not found.  Change the # in the default box to Suite and click the tab key. Note how the standard address now uses the new default.

Click Next until you reach record 17 and select the Name tab.  Notice how the last name is parsed as two words, instead of the computer taking just the single word De.  Multi word names are specified on the Mailing tab, where one or two word prefixes with are to be considered part of the surname are specified.

Click Next until you reach record 24.  Note that Van Der  has been parsed as the last name. Move to the Mailing tab and click on Add below name prefixes.  Type in Van Der and go back to the name tab to see how the three word name has been recognized correctly (Van Der is a default prefixes in ParseRat - it was deleted from the saved preferences for this example for demonstration purposes).

LABELS.TXT: is a file typical of the output from a program which generates mailing labels.  You might not have the means to do a direct export of the data, but can usually direct printed output to a file, which ParseRat can read.  When you load the saved preferences for this file, you will see that it is set up as a “Page Image” file with a fixed length of 4 lines.  The top three lines (the fourth is always blank) are specified to be individual fields.  By setting the tabs well past the data on the line, each line is forced to be a complete field.

The first line is directly transferred to fields on the output tab.  The second line is the “Street Address” portion, which is passed through the “Street” tab, with the “Standard Address” being output as the second field of the output record. The third line consists of city/state/zip information which for demonstration purposes is being parsed out into individual elements.  Note that non-US zip information is also parsed out.

To see how the street address is parsed, select the Street tab and observe the results as you move through the file with the Next and Prev buttons.  The sequence for the standard address elements is set using the block of blue radio buttons.  The standardized abbreviations are defined on the Mailing tab.

PAGESMP1: is a page image sample, showing how several data blocks may be parsed from a single page.

The preferences loaded set it up as a page image file, with page breaks indicated by formfeeds (ASCII 12).

18 records result from this two page sample.  Note how information from the header and footer is used in the output record as well as data from the data blocks.

PAGESMP2: is another page image sample.  This one is typical of a report produced by some other program, from which data must be extracted.  Note that it too has the page end indicated by FormFeeds (ASCII 12).  The header area is set above the top data line and the footer area below the bottom data line.  Note that this example has single row data bands and only one set of data across the page.  Each data row will thus result in one output record.

Notice that the input data is passed through the Date and Time tabs, resulting in an output record in which the input date format differs from the output format.  Note also that Year, Month, Day, Hour and Minute are also supplied in integer form as Parser Generated Fields.

As an experiment, select the Input Type tab and click the radio button for Tag Text On Top Line as a page indicator.  Change the word Page in the edit box which appears to read Time   (include the capital, these must match exactly) and return to the Page tab.  Notice how the pages are now set up such that the word Time has now been used to select the page break position and anything above its first occurrence has been ignored.

BOOKMARK.HTM: is a Netscape bookmark file. You'll probably find your own under something like C:\Program Files\Netscape\Users\yourname.  This example shows the use of tagged page input and date conversion from calendar time.  You can use bookmark.prz to convert your own Netscape bookmark file to a database if you wish.

cd_catalog.xml is a simple example of an XML file. You may open it in ParseRat to see how the product makes assumptions about the tags you may wish to use.

products.txt is a comma-delimited file which may be used to demonstrate the automatic generation of web links pages.


	Registration and Payment
Registration supplies the right to the continued use of the product after the 30 day free trial, and the elimination of the reminder screens.  It does not rescind the legal disclaimer of liability under which this product is used.

At the end of the trial period, the Output function will be disabled in the evaluation version.  You may still experiment with settings and save preferences but you will not be able to save the converted file until you pay for the product.

Because of advancing technology in electronic commerce, other payment options in addition to those listed below may be available when you read this.  They will be listed on the ParseRat web page http://www.guysoftware.com/parserat.htm and if your web browser is appropriately configured, you may access it by  clicking here.

You may also pay online for immediate electronic delivery (if you are connected to the Internet you may click on the blue text for automatic connection).

You may also order by fax using the Fax Order Form

A cash order form may be obtained by printing the topic INVOICE

You may purchase by telephone from DigiBuy at (952)253-8175 (or toll free in the USA 1-800-242-4775) - please ask for product # 92965508831.

(Non-Prepaid purchase orders are accepted only from government entities or major corporations and are subject to a $10.00 US handling charge and a minimum order of $200.00 US.  They may be faxed to 604-926-1346)

For use on a single computer (with delivery by mailed disk and manual), registration costs $59.95 US, paid to:

Guy Software,

1752 Duchess Avenue

West Vancouver

British Columbia  V7V 1P9

Canada   	 (sales@guysoftware.com)

For packages mailed to addresses outside of Canada and the United States there is an additional shipping and handling charge of $10 US.

Shipping via express courier costs $50 US extra.

If the user provides an electronic means for the passage of the registration number (Electronic mail accessible via Internet or a Secure North American Fax number), then the cost is $49.95 US per copy in recognition of the lower costs involved.  Please ensure that any electronic route is secure, since anyone with your registration number can make it appear that you have illegally given them a copy registered to you.

For network use, the price is $199.95  US if no more than six people may access the product at once, and $25 US per additional permitted user for numbers in excess of that.  If the user's network has the ability to limit the number of people accessing a file, that number may be used instead of the number of nodes on the network.  For use in a bona fide educational institution the limit of six users is waived provided all users are in the same classroom.

For the single copy licence, if PARSERAT is installed on the internal hard drive (or equivalent) of a computer and one person uses that computer more than 80% of the time it is in use, then that person may use PARSERAT on one other computer.


Registration and Payment via CompuServe

CompuServe provides a convenient route for the registration of Shareware, via a portal to the Soft-Shop registration service.

To use this service, GO SWREG on CompuServe and follow the prompts to register Registration ID  17214.


ParseRat Order Form/Invoice
 	CASH  INVOICE	(Please submit credit card orders via fax or online)

Name:  _________________________________________	Supply of  the PARSERAT System as below

Special "Electronic Registration" package

Address:  _______________________________________	for one computer only	$49.95

Mailed Package-for one computer; 	$59.95

_______________________________________________	Mailed Network Package first six users	              $199.95

Additional users on network  @ $25.00 each	_________

_______________________________________________	Shipping/handling charge outside USA or Canada	$10.00

Payment Enclosed (US Funds):.	$______________

_______________________________________________	For electronic registration,

please give Email  or Fax address  ____________________

to send registration code

Cheques/Money Orders must have a US Bank named on the face.

Fold here first

AFFIX
POSTAGE

GUY SOFTWARE

1752 Duchess Avenue

West Vancouver

British Columbia   V7V 1P9

CANADA

Fold Here second and then tape edges


Credit Card Orders
			Public software Library	Credit Card Orders Only

You can order with MC, Visa, Amex or Discover from Public (software) Library - a Digital River company by calling 800-2424-PsL extension 15614 or 713-524-6394 extension 15614 .  You can also mail credit card orders to PsL at PO Box 35705, Houston, TX 77235-5705.    In all cases please include the name exactly as on the card and the expiration date, in addition to the card number and your name and address (please include also the card billing address if different - this is a bank requirement).  For electronic registration, please remember to include your Email or Fax address for the registration code to be sent to.  On the World Wide Web you may click here to use PsL's online order screen at http://www.digibuy.com/  or link to it from http://www.guysoftware.com/parserat.htm

The above numbers are for orders only.

Please quote item/product code # 15614

Any questions about the status of the shipment of the order, refunds, registration options, product details, technical support, volume discounts, dealer pricing, site licenses etc. must be directed to:

	1752 Duchess Avenue West Vancouver BC   Canada    V7V 1P9 (604)926-1370         sales@guysoftware.com

To ensure that you get the latest version, PsL will notify us the day of your order and we will ship directly to you.


Fax order for ParseRat
Fax order for ParseRat (#91522416467)

Ship-To Name & Address:

First/Middle Name:	Last Name:
Company name:

Address line 1:

Address line 2:

City:	State/Province     --U.S. & Canada only:
Zip, Country:	Phone:	Fax:
Your email address:

Credit card number (MC, Visa, Amex, Discover, Switch, Delta, Eurocard, Diner's):	Expiration- Month/Year: Issue Number (Switch) Start Date (Diner's):

Credit Card Holder's Name & Address for verification: Do NOT enter the BANK's name or address in the fields below. Enter the address where the cardholder receives the statements. (Only fill out the spaces below if the credit card holder's name or address is DIFFERENT from the Ship-To name and address entered in the spaces above.)

Name on the card:	Company name:
Address line 1:

Address line 2:

City:	State/Province:	Zip, Country:

Order Details

Item	Price	Number	Subtotal
Electronic registration of ParseRat (URL download  code only)	$49.95	_______	_____________
Regular registration, includes manual and latest version	$59.95	_______	_____________
Network license, up to six simultaneous users on network	$199.95	_______	_____________
Additional users on network	$25.00	_______	_____________
Shipping and handling (air mail) outside Canada and USA (not applicable to "code only")	$10.00	_______	_____________
Fax Handling Fee	$3.00	1 _______	$3.00 _____________
Card holder will pay card issuer above amount pursuant to cardholder agreement		Total: US Dollars	_____________
	Signature: __________________________________
To order by fax using a credit card, please print out this document, complete it and fax to Soft Shop at one of the numbers below. All are toll free unless marked with a *. If your country is not listed please fax to the USA number +1(978) 336-0331

Australia 1800 013971 Canada (866)723-3438 Finland 0925 360011 * France 0800 917034 Germany 0800 1808295	Ireland 1800 509147 Italy 800 781703 New Zealand 0508 555300 Portugal 800 844030	Spain 900 95 8968 Sweden 0207 94125 Switzerland 0800 835132 UK dial 01297 553366 * USA (866) 219 9380


DISCLAIMER
DISCLAIMER: The supplier and author bear no liability to the licensee or any other person or entity for any damage or loss, including special, incidental or consequential damages caused by this product directly or indirectly.  The software is supplied "as is" without warranty of any kind, either expressed or implied. Warranties of merchantability or of fitness for any purpose are specifically disclaimed.


This Help File

	The help file author tool for WinWord

This Help file was produced by the HELLLP! file authoring system.

HELLLP! is a user-friendly system to aid in the production of Windows help files. It requires Microsoft Word for Windows version 2.0 or higher.  Users of Word versions up to Word 7/Office 95 need version 2.7 of HELLLP!  users of Word version 8/Office 97 or later need version 3 of HELLLP!

HELLLP! is available as shareware from many sources and is always available from http://www.guysoftware.com/helllp.html at which site the author and distributor may also be contacted.


About Shareware:

Shareware is copyrighted software that is distributed by authors through bulletin boards, the Internet, on-line services and CD-Rom vendors.

Shareware allows you to try the software for a reasonable limited period.  If you decide not to continue using it, you throw it away and forget about it. You only pay for it if you continue to use it. Shareware is a distribution method, not a type of software. You benefit because you get to use the software to determine whether it meets your needs, before you pay for it.

The shareware system and the continued availability of quality shareware products depend on your willingness to register and pay for the shareware you use. It's the registration fees you pay which allow authors to support and continue to develop our products. Please show your support for shareware by registering those programs you actually use.


Trial Limit Reached
Evaluation Copy Output Limit

The evaluation copy of ParseRat is limited to the output of 1,000 records in a single run.  You may purchase a full version for immediate download by clicking the button below for immediate connection via Internet.

Other purchase options may be found in the Registration and Payment topic.

Your output file has been written with 1,000 records which you may use with your other applications and processes for evaluation purposes.


Registration Reminder
	EGISTER HERE

ParseRat has been made available to you on a 30 day free trial based on the Shareware principle  According to our records that period has now expired and the Output function is now unavailable.

You may legally continue to use the product to define preferences while your payment and registration is being processed, but otherwise you should cease its use and remove it from your machine.

You may make your payment by any of several methods:

Credit Card and Telephone Orders

Cheque or Money Order by Mail

On Line Ordering for immediate electronic delivery (if you are connected to the Internet you may click on the blue text for automatic connection).

Order by fax.

Because of advancing technology in electronic commerce, other payment options in addition to or instead of those listed above may be available when you read this.  They will be listed on the ParseRat web page http://www.guysoftware.com/parserat.htm and if your web browser is appropriately configured, you may access it by  clicking here.


Upgrades & Fixes

Any upgrades, maintenance releases and frequently asked questions will be posted at http://www.guysoftware.com/parserat.htm

Clicking on this link will connect you if you have a recent browser and an Internet connection.


Uninstalling ParseRat

To uninstall ParseRat (if not installed by a method which creates an automatic uninstall as shown), simply delete the files in the directory into which you installed it.  It does not install any DLLs or similar files on your system.


Reinstalling or Transferring ParseRat

If you wish to reinstall a registered copy of ParseRat or transfer it to a new machine or hard drive, you may do so as follows.

Immediately before the transfer:

Click on the Help menu within ParseRat and select Registration Details.  Write down the user name and registration code number which appears.

Transferring your licence:

If you are restoring all of your hard drive files via a backup utility, no further action is required.  Your licence is transferred automatically.

If you are re-installing ParseRat from a ParseRat installation disk, your licence is installed automatically.

If you are installing from a new downloaded copy and you have retained a previous key file which had been emailed to you, process it as originally instructed and your licence will be installed automatically.

If none of the above methods applies, enter the user name and registration code number (which you wrote down before commencing the transfer) in the registration dialog box within 30 days.


Version History

1.0	First public release

1.0a	Changed hyphen to underscore in automatically generated field names.

Inserted "&" between first name and middle names in parser generated Standard Name if they are of different genders (usually indicates a couple).

Added blank lines as optional page delimiter for page image input.

1.0b	Enhanced "Split" tab function.

1.0c	Added "Append" option for output files.

Added "Skip if Empty" field function to output.

Further enhanced "Split" tab function.

1.0d	Added command line interface.

1.0e	Added ability to generate dBase "logical" fields.

Added "Binary Files" option to input.

Added "Calendar Time" and "Fraction of Day" time formats.

Added binary viewer for start of file.

Increased maximum number of fields to 99.

1.0f	Added a Divide by 100 feature to numeric output.

Increased input and output record limits to 8,000 bytes.

Increased input field limit to 128 for dBase (dBase program limit) and 500 for delimited input.

1.0g	Miscellaneous minor fixes.

1.0h	Added "drag and drop" re-sequencing of output fields.

Added support for "Big Endian" (Motorola pattern) binary and Packed Decimal as well as Little Endian (Intel pattern) binary numbers.

1.0I	Added the ability to use an external file of gender definitions in addition to those pre-programmed.

Enhanced "Skip if Empty" to add a "Skip if Used" capability.

Increased pre-programmed genderized names to 10,000.

1.0j	Added new "Salutation" parser-generated field.

Added function to process files posted from HTML Web forms.

1.0k	Added "Log File" function.

Fix problem trimming decimals on output.

Added support for Zoned Decimal in binary input.

Added ability to import raw EBCDIC

Added support to handle binaries converted as text from EBCDIC.

Updated ordering information to reflect merger of PsL with Digital River.

1.0l	Omitted to avoid number-vs-letter confusion.

1.0m	Fix problem with very long dBase input fields.

Fixup for multiple record Web form input.

Added "interleaf" function for output of mail merge files.

Added "whole word" option to "proper" capitalization patterns.

Added ability to handle page blocks of over 99 lines (while still processing only first 99 lines).

Increased maximum output field size to 1255 bytes (dBase remains at 254 - dBase program limit).

1.0n	Enhanced "Page Image Input" to handle VFC format files (print image with carriage control as first character).

2.0	Enhanced "Tagged" input to permit selection of other than the first occurrence of a tag.

Enhanced "Tagged" input to permit optionally ignoring line ends.

Added automatic setup for XML file tagged input.

Added XML output function.

Now treats all "high-ascii" characters as alphabetic when in text (assumes they are accented characters).

Corrected error where century break for Y2K window was not being restored when loading preferences.

Changed default Y2K century window to 1929.

Added fix for Y2K problem with dBase headers.

Added input file name as parser generated field.

Easier setup for networked copies.

Moved log file to Windows directory to avoid confusion when running on network.

Added function for user "plugins" to modify "combination" fields.

Increased output fieldname width to 31 characters.

Added input filter function.

Added list of "recently used" preferences files to "File" menu.

Added option to input data from system clipboad.

Added option to place output data on the system clipboard.

Added ability to copy output preferences from another saved preference file.

Added ability to place header and trailer blocks in the output file.

Added ability to generate website link pages automatically from database information.

Added "enlarged" view for those with visual difficulties.

2.0a	Minor fixes.

Added "contains" option to selection criteria for input filter.

Added support for 64 bit binary integer input.

2.0b	Automatic adjustment of input line slider when fieldname clicked for binary and fixed-line records.

Fixed problem with recognizing fields on bottom line of page-image input.

Added arithmetic evaluation to combo processing to permit calculations on values in fields.

Added option to round instead of truncate numeric output.

Added option to permit blank values in numeric fields (default substitutes zero).

Added units conversion features.

Increased input and output record limits to 32,767 bytes.

2.0c	Cosmetic adjustments for Windows XP.

Recognizes more date/time stamp formats.

Handles multiple titles and name suffices (e.g. Rev Dr).

Now recognizes formfeed (ASCII 12) at end of line as well as beginning.

Added ability to skip blank lines in page image input.

Added ability to strip tags in < > on output.

Added right-click cloning of output field formats.

2.0d	More efficient use of system memory

Added ability to skip a record if a specified field contains a given text string.

Internet domain names automatically recognized in "split" fields.

Can now optionally extract "tagged" data from the line below the tag.

Improved parsing of HTML (Web) tables.

2.0e	Enhanced handling of accented characters.

Left arrow shortcut for "rename" on Output tab.

More sophisticated recognition of titles.

Added ability to insert line breaks in output record to create multi-line blocks.