Contar el numero de registros en un archivo

Todo lo relacionado con JCL, manejo de jobs, etc.
Responder
Avatar de Usuario
m0shi0
Usuario avanzado
Usuario avanzado
Mensajes: 32
Registrado: 17 Sep 2008, 18:54
País: México
Ciudad: Queretaro
Ocupación: Consultor
Ubicación: Mexico

Contar el numero de registros en un archivo

Mensaje por m0shi0 » 19 Jun 2009, 14:04

Buenas tardes a todos.

Alguien tiene algun ejemplo de como hacer el conteo de registros de un archivo secuencial y poner el numero de registros que tiene el archivo de entrada en otro archivo secuencial. :leer:

Espero me puedan ayudar.

P.D. El foro se me ha hecho magnifico, ya que conoces gente muy experimentada y nosotros los que vamos en el camino vamos aprendiendo muy rapido.

Saludos a todos. :arriba:
El secreto de la existencia no consiste solamente en vivir, sino en saber para que se vive.

aemontero

Re: Contar el numero de registros en un archivo

Mensaje por aemontero » 19 Jun 2009, 18:28

Buenas Tardes, eso lo puedes hacer con un sort, dejamame buscar el manual y te indico exactamente la instrucción

RICHARD NECIOSUP

Re: Contar el numero de registros en un archivo

Mensaje por RICHARD NECIOSUP » 22 Jun 2009, 01:24

Colegita en el JCL ejecuta un JOB que tenga la rutina de sort, luego enb el spool del 390, podras ver cuantos registros tiene tu fichero (ojo el msg-print de la ejecucion de tu JOB), supongo que tu archivo el secuencial y de registros fijo.

//********************************************************************
//* PASO10 RUTINA SORT PARA ORDENAR UN FICHERO
//********************************************************************
//PASO10 EXEC PGM=SORT,COND=(4,LT)
//SORTIN DD DSN=fichero-input,DISP=SHR
//SORTOUT DD DSN=fichero-output,
// DISP=(,CATLG,DELETE),UNIT=SYSDA,
// DCB=(RECFM=FB,LRECL=nnn,DSORG=PS,BLKSIZE=0),
// SPACE=(%%SPACE_X,RLSE),%%VOL_X
//SYSPRINT DD SYSOUT=*
//SYSOUT DD SYSOUT=*
//SYSIN DD *
SORT FIELDS=COPY
//* nnn es la longitud del registro de salida
//********************************************************************

Saludos desde Peru :silbo:

Pilar Izquierdo

Re: Contar el numero de registros en un archivo

Mensaje por Pilar Izquierdo » 22 Jun 2009, 05:04

Puedes usar la utilidad ICETOOL
//ADMRAC3A JOB CLASS=S,MSGCLASS=X,NOTIFY=&SYSUID,MSGLEVEL=(1,1)
//**************************************************************
//PASO01 EXEC PGM=ICETOOL
//TOOLMSG DD SYSOUT=*
//DFSMSG DD SYSOUT=*
//TOOLIN DD *
COUNT FROM(IN1)
//IN1 DD DSN=IPOSAV.SYSLOGB,DISP=SHR

te dirá en la salida el número de registros

COUNT FROM(IN1)
ICE627I 0 DFSORT CALL 0001 FOR COPY FROM IN1 TO E35 EXIT COMPLETED
ICE628I 0 RECORD COUNT: 000000000021600
ICE602I 0 OPERATION RETURN CODE: 00

espero que te sirva,
un saludo

Y2kcompatible

Re: Contar el numero de registros en un archivo

Mensaje por Y2kcompatible » 22 Jun 2009, 11:50

Lo podes hacer con un doble sort, primeramente generas un archivo con 9 bytes mas de longitud (incorporarndole un caracter + 00000001) el ejemplo es con un archivo de 100 bytes
//SORTIN DD DSN=....infile...,
// DISP=SHR
//SORTOUT DD DSN=&TMP,
// DISP=(NEW,PASS),
// UNIT=SYSDA,
// SPACE=(CYL,(1,1),RLSE),
// DCB=(LRECL=109,RECFM=FB,BLKSIZE=0)
//SYSIN DD *
SORT FIELDS=COPY
OUTREC FIELDS=(1,100,C'X00000001')
RECORD TYPE=FB
END
//* y luego a este archivo lo ordenas por el caracter incorporado y lo sumarizas
//SORTIN DD DSN=&&TMP,
// DISP=(OLD,PASS)
//SORTOUT DD DSN=..outfile..,
// DISP=(NEW,CATLG,DELETE),
// UNIT=SYSDA,
// VOL=SER=xxxxxx,
// SPACE=(CYL,(1,1),RLSE),
// DCB=(LRECL=8,RECFM=FB,BLKSIZE=0)
//SYSIN DD *
SORT FIELDS=(101,1,A),FORMAT=BI
OUTREC FIELDS=(102,8)
SUM FIELDS=(102,8,ZD)
RECORD TYPE=FB
END
//*

Avatar de Usuario
la_sombra
Usuario
Usuario
Mensajes: 15
Registrado: 20 Abr 2010, 10:25
País: Mexico
Ciudad: Distrito Federal
Ocupación: Jefe de grupo

Re: Contar el numero de registros en un archivo

Mensaje por la_sombra » 20 Mar 2012, 21:27

Hola, Puedes usar con un sort esto:

Código: Seleccionar todo

INREC FIELDS=(+1,TO=ZD,LENGTH=10,C'CUENTA') 
SORT FIELDS=(11,6,CH,A) 
SUM FIELDS=(1,10,ZD) 
Con esto formateas la entrada para hacer el sumarizado y despues sumas para saber cuantos registros tienes si sirve. Espero te sirva.

Avatar de Usuario
m0shi0
Usuario avanzado
Usuario avanzado
Mensajes: 32
Registrado: 17 Sep 2008, 18:54
País: México
Ciudad: Queretaro
Ocupación: Consultor
Ubicación: Mexico

Re: Contar el numero de registros en un archivo

Mensaje por m0shi0 » 21 Mar 2012, 11:36

Buen dia a todos.

Gracias por cada una de sus aportaciones, me han sido de mucha utilidad. :leer:

Saludos desde Qrock, Mexico :dance:
El secreto de la existencia no consiste solamente en vivir, sino en saber para que se vive.

Gerardo de Jesús Dguez López

Re: Contar el numero de registros en un archivo

Mensaje por Gerardo de Jesús Dguez López » 22 Mar 2012, 08:19

Estaba mirando algunas respuestas y pongo esta para que la tengan en caso de necesitarla.

//STEP001 EXEC PGM=SORT
//SYSPRINT DD SYSOUT=*
//SYSOUT DD SYSOUT=*
//SORTIN DD DISP=SHR,
// DSN=GIIM.MGTIL.MGB0395D.MGB0395A.FSEG-CON
//SORTOUT DD DISP=(NEW,CATLG,DELETE),
// DSN=GIIM.MGTIL.MGB0395D.FSEG-CON.COUNT,
// SPACE=(80,1,RLSE),
// UNIT=SYSDA,BLKSIZE=0
//SYSIN DD *
SORT FIELDS=COPY
OUTFIL REMOVECC,NODETAIL,
TRAILER1=(2:'Cantidad de registros en el fichero FSUJDERV:',COUNT)
/*

De esta forma obtemos la cantidad de registros en el fichero.

jmhuerta
Usuario
Usuario
Mensajes: 11
Registrado: 20 Mar 2012, 21:18
País: mexico
Ciudad: mexico
Ocupación: Ingeniero de procesos

Re: Contar el numero de registros en un archivo

Mensaje por jmhuerta » 05 May 2014, 18:26

voto por la idea del compañero la_sombra sin hacer tanto arguende se tiene lo que se quiere, la_sombra CHLW.

Avatar de Usuario
kjork
Usuario
Usuario
Mensajes: 1
Registrado: 23 Nov 2018, 11:52
País: Chile
Ciudad: Santiago
Ocupación: Analista funcional

Re: Contar el numero de registros en un archivo

Mensaje por kjork » 23 Nov 2018, 12:16

GRACIAS!!! fue la solucion definitiva!!!
la_sombra escribió:
20 Mar 2012, 21:27
Hola, Puedes usar con un sort esto:

Código: Seleccionar todo

INREC FIELDS=(+1,TO=ZD,LENGTH=10,C'CUENTA') 
SORT FIELDS=(11,6,CH,A) 
SUM FIELDS=(1,10,ZD) 
Con esto formateas la entrada para hacer el sumarizado y despues sumas para saber cuantos registros tienes si sirve. Espero te sirva.

Responder