Subscribe
to our newsletter

TextPipe Pro 9.4.1 Apr 10, 2013 new

TextPipe Pro

Download   Buy Now

TextPipe Pro 9.4.1 Apr 10, 2013 new

Buy Now Download

More downloads...

Hide sidebar

Compatible with Windows 7 OS
Software runs successfully on Windows 8, 7 x32 and x64, Vista x32 and x64, 2003/XP

Support Section

helpWe are here to provide technical support to our customers.

Visit Our Support Section »

 

Buy Now Download Tour

The following text demonstrates just how easy it is to
read a well-documented TextPipe filter. TextPipe
formats the filter tree, comments and file list in an
easy-to-read output. This command is just one of the
exporting options found under File Menu\Export. Other options
include exporting to a command line, JScript, VBScript and
a web page.

Filter Title: Y:\COMPANY\DataArchitect\Administrative\TextPipeFilters\SAMPLE.fll

Filter List
-----------
Filter options
|  [X] Log to file
|  [X] Append to logfile
|  Log filename: c:\DataArchitect\textpipe.log
|  Threshold 500
|
|--Input from file(s)
|     [ ] Confirm before processing each file
|     [ ] Confirm before processing read/only files
|     [ ] Delete input files are processing
|     Process binary files
|   
|--Remove binary characters
|   
|--Select lines NOT matching [(=|<>| in |move ).*('\S+')]
|  |  [ ] Include line numbers
|  |  [ ] Include filename
|  |  [ ] Match case
|  |  [ ] Count matches
|  |
|  |--Comment...
|  |     Above line contains secondary text required on each line ;  set "include line numbers" parameter to NO
|  |   
|  +--Delete all
|      
|--Comment...
|     looking for HARD CODED VALUES requires one of the following values
|       =
|     <>
|      in 
|     move 
|     
|     
|     so need a filter expression that says must have one of them ("OR" ) as follows:
|     
|         =|<>| in |move 
|   
|--Comment...
|  |  also, if there is a specific kind of value looking for, then required format mask 
|  |  should also be included in NOTmatching line above
|  |  
|  |  e.g. if looking for TRGP GRP TYP CDs (which are VARCHAR(2), should add a format mask like ('\S+'),
|  |  where "\S" means any NON-SPACE character, so '\S+' means at least one NON-SPACE character enclosed in quotes.
|  |  
|  |  The reason why can not look for '\S\S' is because if a particular hard-coded value is only one character for a  VARCHAR(2) column, then that value would be skipped.  For example, for value 2,
|  |   MOVE '2'               TO CSDT1-DT-TYP-CD.
|  |  
|  |  would be ignored by '\S\S'
|  |  but it is found by ('\S+')
|  |  
|  |
|  |--Comment...
|  |     If the target column is numeric, do NOT require  a tick-mark on each line
|  |   
|  +--Comment...
|        If the target column is numeric, can require a numeric value on lines
|      
|--Comment...
|     So if looking for a hard-coded value of VARCHAR(2),
|     
|     filter characters should be:
|     (=|<>| in |move ).*('\S+')
|     
|     which is made up of two subexpressions () that BOTH must be on all lines,  using the following format:
|     (subexpression1).*(subexpression2)
|     
|     where:
|     ".*"    means   any set of characters in between the two subexpressions matched  zero or more times 
|     "\S"  means   any NON-SPACE character, 
|     "*"     means   match zero or more times, and 
|     "+"    means   at least one
|     
|     The following two examples would be found by above filter:
|     ='02'
|     move 'AB'
|     MOVE '2' 
|   
|--** DISABLED ** Display debug window
|   
|--Select lines matching [NVL|HV|....\*| FILLER ]
|  |  [ ] Include line numbers
|  |  [ ] Include filename
|  |  [ ] Match case
|  |  [ ] Count matches
|  |
|  |--Comment...
|  |     Above line contains text not allowed on each line ;  set "include line numbers" parameter to NO
|  |   
|  +--Delete all
|      
|--** DISABLED ** Display debug window
|   
|--Select lines matching [((PREM_TRNCH_STAT).+(stat\Dcd))|((PMTS).+(stat\Dcd))|((BEN_TRNCH_STAT).+(stat\Dcd))|((BNTS).+(stat\Dcd))]
|  |  [X] Include line numbers
|  |  [X] Include filename
|  |  [ ] Match case
|  |  [ ] Count matches
|  |
|  +--Comment...
|     |  To specify two subexpressions () that BOTH must be on all lines, can use the following format:
|     |  (subexpression1).+(subexpression2)
|     |  where ".+" means any set of characters in between with at least one character in between the two subexpressions.
|     |  ("." means any character and "+" means match one or more times
|     |  
|     |  The PRODUCT standard for referring to a column in a table is:  TABLE_ALIAS1.column_name.
|     |  
|     |  There appears to be some variation in the way this is specified in PRODUCT.  For example, BNTP1.TYP_CD was specified the following four ways:
|     |  
|     |  BNTP.TYP_CD
|     |  BNTP-TYP-CD
|     |  BNTP1-TYP-CD
|     |  
|     |  To handle this variation, the following COMPLEX filter for Textpipe appears to work:
|     |  (bntp).+(typ\Dcd)
|     |  means the line MUST contain both (bntp) and (typ\Dcd), 				              where \D means any non-digit
|     |  
|     |  and finds the following lines in PRODUCT code:
|     |  006540     IF RKRL2-BNTP-TYP-CD(RKRL2-SUB) = '07'                       
|     |  000920           BNTP.TYP_CD           IN ('01','02')          AND
|     |  003640     MOVE '07'             TO BNTP1-TYP-CD.
|     |  057550     MOVE '07'             TO BNTP1-TYP-CD.                       
|     |  002940        IF BNTP1-TYP-CD = '03'
|     |  003020     MOVE '03'                   TO BNTP1-TYP-CD.
|     |  008360        MOVE '06'             TO VBNTC-TYP-CD                     
|     |  004750        IF BNTP1-TYP-CD = '03'
|     |  010410        MOVE '06'             TO VBNTC-TYP-CD                     
|     |  
|     |  However, because of the reference to a view (VBNTC-TYP-CD) in certain programs for getting at this column, a more comprehensive filter is as follows:
|     |  (bnt).+(typ\Dcd)
|     |  Note that this also finds multiple false-positives as VBNTC-TYP-CD also refers to TYP_CD in other tables.
|     |
|     +--Comment...
|           Above line contains PRIMARY text looking for;  set "include line numbers" parameter to yes
|         
|--** DISABLED ** Display debug window
|   
|--Add footer [\r\n\r\n]
|   
|--Remove blank lines
|   
|--** DISABLED ** Truncate to width 80
|   
|--Word wrap (column width 80)
|   
|--Replace [COB:] with [COB]
|     [ ] Match case
|     [ ] Whole words only
|     [ ] Case sensitive replace
|     [ ] Prompt on replace
|     [ ] Skip prompt if identical
|     [ ] First only
|   
|--Replace [FMB:] with [FMB]
|     [ ] Match case
|     [ ] Whole words only
|     [ ] Case sensitive replace
|     [ ] Prompt on replace
|     [ ] Skip prompt if identical
|     [ ] First only
|   
+--Merge output to file w:\temp\sample.doc
    

Files List
----------
C:\TEMP\cobol_programs\*.COBx
Q:\prod40\test\source\CB2*.cob
Q:\PROD40\TEST\pll_32\*.pllX
Q:\PROD40\TEST\FORMS_32\*.FMBX

Z:\PROD40\DEVELOP\PRC\*.PRCX
Q:\prod40\test\copy\CB2*.cobX

Comments
--------
On the "FILES TO PROCESS"  tab, the first row is for testing purposes:
C:\TEMP\cobol_programs\*.COBx

Next are real PRODUCT code:
Q:\prod40\test\source\*.COB
Q:\PROD40\TEST\pll_32\*.pll
Q:\PROD40\TEST\FORMS_32\*.FMB
Z:\PROD40\DEVELOP\PRC\*.PRC
Q:\prod40\test\copy\*.cob


when want to test:
1) put some programs that include data looking for in the "C:\TEMP\cobol_programs\" directory 
2) remove x from end of "C:\TEMP\cobol_programs\*.COBx"
3) add an x on end of four rows containing real PRODUCT code so the test will skip them
Buy Now Download Tour