HELP: Format data in several wrapped record elements (all meta data lost) TYPE: OBJECT SYNTAX: REC(METHOD=WRP/LEN/L4I/L4X/B4I/B4X/S4I/S4X/HLI/HLX/HBI/HBX/HSI/HSX/DLM/DLN/ALL,RECLEN=num,RECDLM='bin'/CR-ASCII/LF-ASCII/NL-ASCII/CRLF-ASCII/CR-EBCDIC/LF-EBCDIC/NL-EBCDIC/CRLF-EBCDIC/CR-UTF08/LF-UTF08/NL-UTF08/CRLF-UTF08/CR-UTF16BE/LF-UTF16BE/NL-UTF16BE/CRLF-UTF16BE/CR-UTF16LE/LF-UTF16LE/NL-UTF16LE/CRLF-UTF16LE/CR-UTF32BE/LF-UTF32BE/NL-UTF32BE/CRLF-UTF32BE/CR-UTF32LE/LF-UTF32LE/NL-UTF32LE/CRLF-UTF32LE,RSTDAT=RECORD/ERROR/IGNORE,SUPPAd,PRSATR=ASA/MCC/REL/RELASA/RELMCC,WRPERR,BUFSIZ=num,INICNT=num)
By default (i.e. no method provided), the object "format record" formats data blocks to records by slicing the block into records of the provided record length if none of the valid 4 byte length formats or the defined binary delimiter is detected. If the data is already organized as records, then the data is re-wrapped. You can enforce an error to prevent the default wrapping if no record length information is found.
If the method DLM is used, then a delimiter must be specified. When specifying a binary delimiter without a method or method DLN or ALL, then the detector will verify if the binary delimiter is present in the data. If you use archive formats where the file attributes can be stored, the binary delimiter will be set automatically
If you have written attributes (see FMT.BLK()) in front of the records, you can parse these attributes. If you use archive formats where the file attributes can be stored, the PRSATR selection will be set to the right method automatically.
NUMBER: METHOD=WRP/LEN/L4I/L4X/B4I/B4X/S4I/S4X/HLI/HLX/HBI/HBX/HSI/HSX/DLM/DLN/ALL - Method for record formatting [AUTO]
WRP - Wrap blocks in records of defined record lengthLEN - Parse data based on 4 byte length fields with auto detection of the formatL4I - Parse data based on 4 byte length fields: Little endian integer, length inclusiveL4X - Parse data based on 4 byte length fields: Little endian integer, length exclusive (ZIP)B4I - Parse data based on 4 byte length fields: Big endian integer, length inclusiveB4X - Parse data based on 4 byte length fields: Big endian integer, length exclusive (USS)S4I - Parse data based on 4 byte length fields: System endian integer, length inclusiveS4X - Parse data based on 4 byte length fields: System endian integer, length exclusive (VAR)HLI - Parse data based on 4 byte length fields: Little endian short (LLxx), length inclusiveHLX - Parse data based on 4 byte length fields: Little endian short (LLxx), length exclusiveHBI - Parse data based on 4 byte length fields: Big endian short (LLxx), length inclusive (MVS)HBX - Parse data based on 4 byte length fields: Big endian short (LLxx), length exclusiveHSI - Parse data based on 4 byte length fields: System endian short (LLxx), length inclusiveHSX - Parse data based on 4 byte length fields: System endian short (LLxx), length exclusiveDLM - Parse data based on the provided binary record delimiterDLN - Parse delimiter or length field with auto detectionALL - Parse delimiter or length field with auto detection else wrap in recordsNUMBER: RECLEN=num - Maximum length of a record [512] also used for wrappingSTRING: RECDLM='bin'/CR-ASCII/LF-ASCII/NL-ASCII/CRLF-ASCII/CR-EBCDIC/LF-EBCDIC/NL-EBCDIC/CRLF-EBCDIC/CR-UTF08/LF-UTF08/NL-UTF08/CRLF-UTF08/CR-UTF16BE/LF-UTF16BE/NL-UTF16BE/CRLF-UTF16BE/CR-UTF16LE/LF-UTF16LE/NL-UTF16LE/CRLF-UTF16LE/CR-UTF32BE/LF-UTF32BE/NL-UTF32BE/CRLF-UTF32BE/CR-UTF32LE/LF-UTF32LE/NL-UTF32LE/CRLF-UTF32LE - Delimiter used to parse end of record
CR-ASCII - Delimiter: carriage return in ASCII (0x0D)LF-ASCII - Delimiter: line feed in ASCII (0x0A)NL-ASCII - Delimiter: new line in ASCII (0x85)CRLF-ASCII - Delimiter: carriage return line feed in ASCII (0x0D0A)CR-EBCDIC - Delimiter: carriage return in EBCDIC (0x0D)LF-EBCDIC - Delimiter: line feed in EBCDIC (0x25)NL-EBCDIC - Delimiter: new line in EBCDIC (0x15)CRLF-EBCDIC - Delimiter: carriage return line feed in EBCDIC (0x0D25)CR-UTF08 - Delimiter: carriage return in UTF-8 (0x0D)LF-UTF08 - Delimiter: line feed in UTF-8 (0x0A)NL-UTF08 - Delimiter: new line in UTF-8 (0xC285)CRLF-UTF08 - Delimiter: carriage return line feed in UTF-8 (0x0D0A)CR-UTF16BE - Delimiter: carriage return in UTF-16BE (0x000D)LF-UTF16BE - Delimiter: line feed in UTF-16BE (0x000A)NL-UTF16BE - Delimiter: new line in UTF-16BE (0x0085)CRLF-UTF16BE - Delimiter: carriage return line feed in UTF-16BE (0x000D000A)CR-UTF16LE - Delimiter: carriage return in UTF-16LE (0x0D00)LF-UTF16LE - Delimiter: line feed in UTF-16LE (0x0A00)NL-UTF16LE - Delimiter: new line in UTF-16LE (0x8500)CRLF-UTF16LE - Delimiter: carriage return line feed in UTF-16LE (0x0D000A00)CR-UTF32BE - Delimiter: carriage return in UTF-32BE (0x0000000D)LF-UTF32BE - Delimiter: line feed in UTF-32BE (0x0000000A)NL-UTF32BE - Delimiter: new line in UTF-32BE (0x00000085)CRLF-UTF32BE - Delimiter: carriage return line feed in UTF-32BE (0x0000000D0000000A)CR-UTF32LE - Delimiter: carriage return in UTF-32LE (0x0D000000)LF-UTF32LE - Delimiter: line feed in UTF-32LE (0x0A000000)NL-UTF32LE - Delimiter: new line in UTF-32LE (0x85000000)CRLF-UTF32LE - Delimiter: carriage return line feed in UTF-32LE (0x0D0000000A000000)NUMBER: RSTDAT=RECORD/ERROR/IGNORE - Defines handling of remaining rest [auto]
RECORD - Build a record with the remaining rest (default for delimiter)ERROR - Return an error if a remaining rest found (default for length fields)IGNORE - Ignore a remaining rest (no record, no error)SWITCH: SUPPAd - Suppress trailing padding/equal bytes [FALSE]NUMBER: PRSATR=ASA/MCC/REL/RELASA/RELMCC - Parse attributes (e.g. print control character) in front of the record [NONE]
ASA - ASA print control character (1 byte)MCC - Machine print control character (1 byte)REL - Slot number of RRDS (8 byte integer in big endian)RELASA - Slot number plus ASA print control character (9 byte)RELMCC - Slot number plus Machine print control character (9 byte)SWITCH: WRPERR - If no method defined (auto detection) enforce an error if no length format (wrapping) detected [FALSE]NUMBER: BUFSIZ=num - Initial buffer size for preallocation [65536]NUMBER: INICNT=num - Initial amount of records for preallocation [128]