MODIFICATION/SCAN operands
The following are details of the keyword parameters that may appear on the Modification/Scan Statements in the preceding sections. Consult the definitions of each statement to see which parameters are valid on each statement, and in what form.
ALL
On a REPLACE statement containing the S= operand, specifies that all occurrences of the scan string in the current block or record are to be replaced. If omitted, only the first occurrence of the scan string is replaced.
On a PRINT statement, specifies that all data blocks are to be printed, using the formatting requested by the PRTLEN= and CHAR/HEX/DUMP operands on the ANALYZE/COPY statement.
B=ALL
B=b1
B=b1-b2
B=b1.r1
B=b1.r1-b2.r2
Specifies to which blocks within the file specified by LF= the statement applies.
B=ALL requests all blocks in the file.
B=b1 causes it to apply only to one specified block.
B=b1-b2 specifies a range of blocks (b1 less than b2).
B=b1.r1 indicates a specific record within a specific block (record deblocking must be in effect).
B=b1.r1-b2.r2 causes the statement to apply to a range of records from record r1 in block b1 to record r2 in block b2 (b1 and b2 may be the same).
b1, b2, r1, and r2 are all unsigned decimal numbers from 1 to 2,147,483,647 (without commas). Blocks within a file and records within a block are numbered starting with 1.
CHAR HEX Dump
On a PRINT statement, specifies an overriding print format (character, hexadecimal, or dump) for this PRINT statement only. If omitted, the print format specified on the ANALYZE/COPY statement will control the format for this PRINT statement.
DCK
Specifies that FATAR is to perform the indicated operation only if the block affected had a permanent data check when read from TAPEIN.
J=R
On KEEP statements only, specifies that the old data block is to be right-justified in the new data block (if not specified, the old data block is left-justified).
L=l
For PRINT, specifies an overriding print length.
For KEEP, specifies the new length of the block.
For SCAN, specifies the length of the field to verify.
“l” must be an unsigned decimal number.
LF=ALL
LF=n
LF=nH
LF=nT
Specifies the logical file on the input tape to which this statement applies. n is a decimal number giving the logical file number. If the input tape is labeled, this is the file sequence number (1-65535), the same value you would specify in the LABEL=n parameter in JCL (except that LABEL= only accepts values up to 9999). Specifying n alone will cause the statement to apply to the equivalent data file. Appending an H or T after the file number causes it to apply to the header or trailer label file, respectively, preceding or following that data file. If the input tape is not labeled, or if labels are not being processed (LABELS=NO), then n is the physical file number (1-196605) relative to the beginning of the tape (file 1).
LF=ALL specifies that this statement applies to all files of the input tape.
P=p
For SCAN and REPLACE, specifies the starting location for the operation; if FATAR is deblocking logical records, it specifies a location within a record. For KEEP, specifies the starting location (or ending location if J=R) of the old data block within the new block.
p must be an unsigned decimal number. P=1 is the default and specifies the first byte of the record or block. For deblocked variable format records, the first data byte is at location 5, past the 4 byte RDW (Record Descriptor Word).
T=t
On a TABLE statement, defines the name of a table for reference by a SCAN statement. t must be a unique letter other than P and Z, which are reserved.
On a SCAN statement, specifies the type of scan to be performed: T=Z -- scan for zoned decimal numbers
T=P -- scan for packed decimal numbers T=t -- scan according to user table t
V=string
S=string
D=string
Defines a data string on a REPLACE or TABLE statement. The data may be in EBCDIC characters or hexadecimal bytes, or a combination of both, using this format:
C'chardata' - defines an EBCDIC string up to 255 bytes in length.
X'hexdata' - defines a hexadecimal string up to 255 bytes in length.
A string consisting of both character and hexadecimal data may be defined by simply placing the C and X strings after one another, separated by commas. For example,
defines a 9-byte string consisting of the 3 separate strings concatenated together.
Longer strings obviously cannot fit on a single control statement record, so a data string is continued onto another record by closing the string with a quote and comma followed by a blank, and starting on the next statement (in any column) with X’ or C’. For example,
C'CONTINUED ON THE NEXT RECORD'