En esta sección: |
Puede leer archivos cuyos campos están separados por cualquier tipo de delimitador, incluyendo las comas, pestañas y otros caracteres. La definición de un archivo máster, con el atributo SUFFIX=DFIX, permite especificar cualquier combinación de campos como delimitador de los campos. Los delimitadores pueden ser caracteres que pueden ser imprimidos, o que no pueden serlo, y combinaciones de ambos.
Existen dos métodos compatibles para describir los archivos delimitados:
Nota: SET HOLDLIST no es compatible con los archivos delimitados.
Cómo: Referencia: |
Los delimitadores del archivo máster se definen mediante un campo especial, llamado DELIMITER. La declaración de FILE debe incluir el atributo SUFFIX=DFIX.
Describa los caracteres del delimitador en un campo o en un grupo especial, llamado DELIMITER. Los caracteres del delimitador se especifican en el atributo ALIAS de este campo o grupo especial.
Para usar un delimitador compuesto por un solo carácter que no se puede imprimir, o por uno o varios caracteres que sí pueden imprimirse, el delimitador debe definirse como un campo con los siguientes atributos:
FIELDNAME=DELIMITER, ALIAS=delimiter, USAGE=ufmt, ACTUAL=afmt ,$
Para usar un delimitador compuesto por varios caracteres que no se pueden imprimir, o por una combinación de caracteres que sí pueden imprimirse y otros que no, el delimitador debe definirse como un grupo:
GROUP=DELIMITER, ALIAS= , USAGE=ufmtg, ACTUAL=afmtg ,$ FIELDNAME=DELIMITER, ALIAS=delimiter1, USAGE=ufmt1, ACTUAL=afmt1 ,$ . . . FIELDNAME=DELIMITER, ALIAS=delimitern, USAGE=ufmtn, ACTUAL=afmtn ,$
donde:
Indica que el campo o grupo se está usando como delimitador en el origen de datos.
Idenfica un delimitador con un máximo de 30 caracteres. Si cuenta con uno o varios caracteres que se pueden imprimir, el valor estará compuesto por los caracteres mismos. Si el delimitador incluye caracteres que, a su vez, actúan como delimitadores en la sintaxis del archivo máster, debe estar situado entre comillas simples. Si el carácter no se puede imprimir, el valor es el equivalente decimal de la representación EBCDIC o ASCII del carácter, dependiendo de su entorno operativo.
Son los formatos USAGE y ACTUAL del delimitador. Los valores posibles son:
Tipo de delimitador | USAGE | ACTUAL |
---|---|---|
Caracteres que se pueden imprimir | An, donde n es el número de caracteres | An, donde n es el número de caracteres |
Carácter que no se puede imprimir, como el de tabulación | I4 | I1 |
Grupo (combinación de caracteres que se pueden imprimir y otros que no, o varios caracteres que no pueden imprimirse) | Suma de las longitudes individuales de USAGE | Suma de las longitudes individuales de ACTUAL |
El siguiente ejemplo muestra un delimitador alfanumérico, de un carácter:
FIELDNAME=DELIMITER, ALIAS=',' ,USAGE=A1, ACTUAL=A1 ,$
El siguiente ejemplo muestra un delimitador alfanumérico, de dos caracteres:
FIELDNAME=DELIMITER, ALIAS=// ,USAGE=A2, ACTUAL=A2 ,$
El siguiente ejemplo muestra cómo usar el carácter de tabulación como delimitador:
FIELDNAME=DELIMITER, ALIAS=05 ,USAGE=I4, ACTUAL=I1 ,$
El siguiente ejemplo muestra cómo usar un carácter en blanco, descrito como delimitador numérico:
FIELDNAME=DELIMITER, ALIAS=64 ,USAGE=I4, ACTUAL=I1 ,$
El siguiente ejemplo muestra un delimitador de grupo (combinación de carácter de tabulación-barra diagonal-carácter de tabulación):
GROUP=DELIMITER, ALIAS= ,USAGE=A9, ACTUAL=A3 ,$ FIELDNAME=DEL1, ALIAS=05 ,USAGE=I4, ACTUAL=I1 ,$ FIELDNAME=DEL2, ALIAS=/ ,USAGE=A1, ACTUAL=A1 ,$ FIELDNAME=DEL3, ALIAS=05 ,USAGE=I4, ACTUAL=I1 ,$
El siguiente archivo máster muestra el atributo MISSING especificado para el campo CAR:
FILE=DFIXF01 ,SUFFIX=DFIX SEGNAME=SEG1 ,SEGTYPE=S0 FIELDNAME=COUNTRY ,ALIAS=F1 ,USAGE=A10 ,ACTUAL=A10 ,$ FIELDNAME=CAR ,ALIAS=F2 ,USAGE=A16 ,ACTUAL=A16 ,MISSING=ON, $ FIELDNAME=NUMBER ,ALIAS=F3 ,USAGE=P10 ,ACTUAL=Z10 ,$ FIELDNAME=DELIMITER ,ALIAS=',' ,USAGE=A1 ,ACTUAL=A1 ,$
En los archivos de origen, la presencia de dos delimitadores de coma consecutivos indica que hay datos no disponibles para CAR:
GERMANY,VOLKSWAGEN,1111 GERMANY,BMW, USA,CADILLAC,22222 USA,FORD USA,,44444 JAPAN ENGLAND, FRANCE
La salida es:
COUNTRY CAR NUMBER ------- --- ------ GERMANY VOLKSWAGEN 1111 GERMANY BMW 0 USA CADILLAC 22222 USA FORD 0 USA . 44444 JAPAN . 0 ENGLAND 0 FRANCE . 0
Referencia: |
El archivo máster contiene los atributos estándar de cualquier archivo secuencial. El valor de SUFFIX es DFIX. El resto de la información sobre los delimitadores se encuentra en el archivo de acceso.
Además, puede usar el comando HOLD FORMAT DFIX para crear este tipo de archivos máster y de acceso en archivos delimitados por tokens. Para más información sobre los formatos HOLD, consulte el manual Cómo crear informes con el lenguaje WebFOCUS .
DELIMITER = delimiter, [ENCLOSURE = character,] [HEADER = {YES|NO}],$
donde:
Es la secuencia del delimitador; puede incluir hasta 30 caracteres imprimibles o 30 caracteres que no se pueden imprimir y no son nulos. Para un valor que no pueda imprimirse, introduzca el valor hexadecimal que representa el carácter. Si usa una combinación de caracteres que puedan o no puedan imprimirse, debe introducir todos como valores hexadecimales. Para crear un archivo delimitado por pestañas, puede especificar el valor de delimitador como TAB o como su equivalente hexadecimal (0x09, en plataformas ASCII, o 0x05, en plataformas EBCDIC).
Tenga en cuenta que los dígitos numéricos y símbolos usados en números, como un punto (.), signo más (+) o menos (-), no pueden usarse en la secuencia de delimitador.
Es la secuencia de caracteres enmarcados. Puede tener hasta cuatro caracteres imprimibles, utilizados para enmarcar cada valor alfanumérico del archivo. La mayoría de los caracteres alfanuméricos debe usarse como toda o parte de la secuencia de enmarcado. Sin embargo, los dígitos numéricos y símbolos usados en números, como un punto (.), signo más (+) o menos (-), no pueden usarse en la secuencia de enmarcado. Además, tenga en cuenta que, para poden especificar una comilla simple como carácter de enmarcado, debe introducir cuatro comillas simples consecutivas. El enmarcado más común es la comilla doble.
Especifica si se va incluir un registro de encabezado con los nombres de los campos del archivo secuencial delimitado, generado por la solicitud. El valor predeterminado es NO.
El archivo delimitado por barras verticales, llamado PIPE1, contiene los siguientes datos, con cada valor de datos delimitado por una barra vertical (|). Tenga en cuenta que se puede crear un archivo delimitado como salida de una solicitud, mediante el uso del comando HOLD FORMAT DFIX en la misma:
EAST|2000|3907|1145655.77 EAST|2001|495922|127004359.88 EAST|2002|543678|137470917.05 NORTH|2001|337168|85750735.54 NORTH|2002|370031|92609802.80 SOUTH|2000|3141|852550.45 SOUTH|2001|393155|99822662.88 SOUTH|2002|431575|107858412.0 WEST|2001|155252|39167974.18 WEST|2002|170421|42339953.45
El archivo máster PIPE1 es:
FILENAME=PIPE1 , SUFFIX=DFIX , $ SEGMENT=PIPE1, SEGTYPE=S2, $ FIELDNAME=REGION, ALIAS=E01, USAGE=A5, ACTUAL=A05, $ FIELDNAME=YEAR, ALIAS=E02, USAGE=YY, ACTUAL=A04, $ FIELDNAME=QUANTITY, ALIAS=E03, USAGE=I8C, ACTUAL=A08, $ FIELDNAME=LINEPRICE, ALIAS=E04, USAGE=D12.2MC, ACTUAL=A12, $
El archivo de acceso PIPE1 es:
SEGNAME=PIPE1, DELIMITER=|, HEADER=NO, $
En la siguiente versión del archivo delimitado PIPE1, cada valor alfanumérico aparece entre comillas dobles:
"EAST"|2000|3907|1145655.77 "EAST"|2001|495922|127004359.88 "EAST"|2002|543678|137470917.05 "NORTH"|2001|337168|85750735.54 "NORTH"|2002|370031|92609802.80 "SOUTH"|2000|3141|852550.45 "SOUTH"|2001|393155|99822662.88 "SOUTH"|2002|431575|107858412.01 "WEST"|2001|155252|39167974.18 "WEST"|2002|170421|42339953.45
El archivo máster no cambia, aunque, ahora, el archivo de acceso especifica el carácter de cierre:
SEGNAME=PIPE1, DELIMITER=|, ENCLOSURE=", $
En esta versión del archivo delimitado PIPE1, el primer registro especifica el nombre de cada campo y los valores alfanuméricos están colocados entre comillas dobles:
"REGION"|"YEAR"|"QUANTITY"|"LINEPRICE" "EAST"|2000|3907|1145655.77 "EAST"|2001|495922|127004359.88 "EAST"|2002|543678|137470917.05 "NORTH"|2001|337168|85750735.54 "NORTH"|2002|370031|92609802.80 "SOUTH"|2000|3141|852550.45 "SOUTH"|2001|393155|99822662.88 "SOUTH"|2002|431575|107858412.01 "WEST"|2001|155252|39167974.18 "WEST"|2002|170421|42339953.45
El archivo máster permanece igual. Ahora, el archivo de acceso especifica que existe un registro de encabezado en el archivo de datos:
SEGNAME=PIPE1, DELIMITER=|, ENCLOSURE=", HEADER=YES, $
WebFOCUS |