Step 3. Setting up field delimiter(s)

A list of potential field delimiters is automatically generated and shown in the options pane. Field delimiters separate the input records produced in the Step 2 into input fields.  Use the options pane to assign a field delimiter.  When working with templates, field delimiters are selected behind the scenes in the template.  Field delimiters can not be changed when working with templates, but (provided more than one template is found) the template in use can be changed with similar results.


You can have an arbitrary text string as a field delimiter.  The following special delimiters are also supported:

<End Of Line> -  <CR>, <LF> or  their combination 
<None> -  Do not use field delimiters
<Tab> -  Horizontal tab
<VTab> -  Vertical tab
<CR> -  Carriage return
<LF> -  Line feed
<FF> - Form feed

To use a single character or a string as a delimiter, simply enter that delimiter:

For example:

or 

abc

To use multiple delimiters, use the following syntax:

(delimiter)(delimiter)...

For example:

(;)(,)(abc)

Each of the three characters above will be considered a field delimiter.

If multiple consecutive instances of a delimiter are to be treated as a single delimiter, use the following syntax:

(delimiter+)

For example, to have multiple <Tab> symbols treated as a single delimiter, use;

(<Tab>+)

To use reserved characters (such as + ( ) < > % ), prepend the character with %:

%delimiter

For example, to have '()+' act as a single delimiter, use:

(%(%)%+)

To use the '%' character as a field delimiter, enter it twice:

(%%)

Let's consider how delimiters should be set up with respect to different inputs:

1. Regular input record structure with a constant field delimiter

1,10/11/2003,Silver,$200.12,5
2,10/26/2003,Platinum,$2.43,728
3,11/10/2003,Gold,$3.57,374
4,11/25/2003,Platinum,$1.00,729

Choosing the comma as a field delimiter for the input like that would be sufficient.

2. Regular input record structure with multiple field delimiters or a repeatable character as a delimiter

Reasons_D___0  : System Use 
Reasons_D___1  : No credit file found under your name. 
Reasons_D___2  : No current credit file is found. Please have the credit bureau update your file. 
Reasons_D___3  : Insufficient credit file information. 

This sample input contains two field delimiters: an underscore (one or more) and a semicolon ":". The field delimiter will be:

(_+)(:)

3. Irregular input record structure with tag based field values

Author="Aberer, Karl", Title="The Use of Object-oriented Data Models in Biomolecular Databases", BookTitle="Conf. on Object-Oriented Computing in the Natural Sciences",Address="Heidelberg, Germany", Year=1994

You would implement the OnRecord context method to handle the tag based values

Function OnRecord
DictOut.Author.value = this.GetValueByTag( "Author=" )
DictOut.Title.value = this.GetValueByTag( "Title=" )
DictOut.BookTitle.value = this.GetValueByTag( "Author=" )
DictOut.Address.value = this.GetValueByTag( "Address=" )
DictOut.Year.value = this.GetValueByTag( "Year=" )

4. No delimiters, position based value extraction

1201770509096001H997677FL01K54052501000250011250092205090108142080000003 00N273589970881159
1201770509096001H997678FL01K54053751000250011375092205080108142080000003 00N273589660849687
1201770509096001H997679FL01K54053751000250011375092205090108142080000003 00N273590030885820
1201770509096001H997680FL01K54056251000250011625092205090108142080000003 00N273590154892287

You implement the OnRecord context method to handle the positional data extraction

DictOut.SellerServNo.value = Mid(DictIn.Field.value, 1, 6)
DictOut.ContractNo.value = Mid(DictIn.Field.value, 7, 10)
DictOut.GroupNumber.value = Mid(DictIn.Field.value, 17, 7)
DictOut.BranchCode.value = Mid(DictIn.Field.value, 24, 4)
DictOut.ProductID.value = Mid(DictIn.\Field.value, 28, 3)

 

Now we can proceed to Step 4 - Check your output structure.

(or go back to Step 2. Setting up a record delimiter.)

 

Comments