Ver Mensaje Individual
  #2
Antiguo 23 de abril de 2021, 00:53
JCantero
El Foro es mi casa
Activista del Foro: Activista del Foro - Issue reason: Por participación activa Agradecimientos: Por muchos agradecimientos de parte de los Foreros - Issue reason: Por muchos agradecimientos de parte de los Foreros 
Última Actividad 02.09.2026 00:15
Posts Posts: 442
Likes enviados Enviados: 167
Likes recibidos Recibidos: 269

Para el ejemplo que has puesto si no he entendido mal, no hace falta un sort

La fd del fichero entrada:

Código COBOL:
  1.            01 reg-entrada.
  2.                02 id-e pic xx.
  3.        * suponiendo que n = 40
  4.                02 datos-e pic x(40).
  5.                02 cadena1-e pic x(10).

La fd del fichero salida:
Código COBOL:
  1.            01 reg-salida.
  2.                02 id-s pic xx.
  3.        * suponiendo que n = 40
  4.                02 datos-s pic x(40).
  5.                02 cadena1-s pic x(10).
  6.                02 cadena2-s pic x(10).

La variable de working cadena tendria el ultimo leido
y fs- entrada file status del fichero entrada

Código COBOL:
  1.            01  cadena pic x(10).
  2.            02 fs-entrada            pic xx.
  3.               88 esta-entrada             value '00' '02'.
  4.               88 n-esta-entrada           value '23'.
  5.               88 fin-entrada              value '46'  '10'.
  6.               88 bloqueado-entrada        value '99' '90'.
  7.               88 f-bloqueado-entrada      value '38' '93'.
  8.               88 f-noexiste-entrada       value '35'.

Y ya un bucle para leer el fichero entrada hasta el final

Código COBOL:
  1.                   open input entrada
  2.                   open output salida
  3.                   initialize reg-entrada
  4.                   move '0000000000' to cadena
  5.                   read entrada next record  end-read
  6.                   perform until fin-entrada
  7.                       initialize reg-salida
  8.                       move reg-entrada to reg-salida
  9.                       if id-e = '01' then
  10.                            move cadena1-e to cadena
  11.                       end-if
  12.                       move cadena to cadena2-s
  13.                       write reg-salida end-write
  14.                       initialize reg-entrada
  15.                       read entrada next record  end-read
  16.                   end-perform.
  17.                   close entrada salida.
  18.        

Esto es salvo error u omision, Pero eso seria la idea
JCantero is offline   Responder Con Cita