Cobol - Uso del Corresponding COBOL

 
Vista:

Uso del Corresponding COBOL

Publicado por Jorge Diaz Carpio (3 intervenciones) el 30/06/2008 16:36:50
Una consulta teng un archivo indexado con una estrucutra que maneja tanto arreglos y campos elementale pero varios de estos campos son COMP3 tanto en el arreglo como los campos normales la consulta es como son varios campos y tengo que migrar a otro archivo igual con la diferencia de que no son COMP3 no quiero esta haciendo move campo a campo es por eso que usar el corresponding lo cual funciona pero con arreglos veo que no me funciona si alguien sabe como ahcerlo aceptaria sus comentarios gracias
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Uso del Corresponding COBOL

Publicado por SuperIndio (138 intervenciones) el 01/07/2008 16:20:05
ES QUE EL CORREESPONDIG SE AJUSTA AL FORMATO DE LOS CAMPOS
UN EJEMPLO ES:

01 GRUPO-A.
02 CAMPO1.
03 A PIC X(01).
03 B PIC 9(01).
03 C PIC X(02).
03 D PIC 9(02).
03 E PIC X(03).

01 GRUPO-B.
02 CAMPO1.
03 A PIC X(01).
03 C PIC X(02).
03 E PIC X(03).

MOVE CORRESPONDING GRUPO-A TO GRUPO-B.

Equivale a realizar los siguientes MOVEs:

MOVE A OF GRUPO-A TO A OF GRUPO-B.
MOVE C OF GRUPO-A TO C OF GRUPO-B.
MOVE E OF GRUPO-A TO E OF GRUPO-B.

La verdad que no se me ocurre nada.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Uso del Corresponding COBOL

Publicado por Jorge Armando (3 intervenciones) el 01/07/2008 16:51:51
claro asi si funciona pero cuando la estructura tiene un occurs no funciona sabes si de alguna otra manera puede ser
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Uso del Corresponding COBOL

Publicado por oscar (37 intervenciones) el 01/07/2008 18:47:47
Desgraciadamente tendrás que escribir unas cuantas lineas más ante la presencia de OCCURS.

El PERFORM te ayudara a solucionar el problema:

01 X PIC 99.
01 GRUPO.
03 CAMPO PIC S9(8) COMP-3 OCCURS 15 TIMES.

01 GRUPO-A.
03 CAMPO PIC S9(8) OCCURS 15 TIMES.
- - - - - - - -- - - - --
PERFORM VARYING X FROM 1 BY 1 UNTIL X > 15
MOVE CAMPO(X) OF GRUPO TO CAMPO(X) OF GRUPO-A
END-PERFORM
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Uso del Corresponding COBOL

Publicado por SuperIndio (138 intervenciones) el 01/07/2008 19:06:44
Pero no hay que pasar del COMP o COMP-N (Entiendase como N=3,5)
en forma directa al FORMATO display. Se hace en dos partes
o 2 MOVEs, si me aguantan uno o dos dias, hare las pruebas necesarias para estar seguro y despues les cuento
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Uso del Corresponding COBOL

Publicado por SuperIndio (138 intervenciones) el 01/07/2008 19:11:40
Pero no hay que pasar del COMP o COMP-N (Enteiendase como N=3,5)
en forma directa al FORMATO display. Se hace en dos partes
o 2 MOVE cCORRESPONDING, si me aguantan uno o dos dias, hare las pruebas necesarias para estar seguro y despues les cuento
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Uso del Corresponding COBOL

Publicado por Vladimir Rivera (1 intervención) el 09/03/2012 23:54:58
Felicidades la solucion es correcta, funciona a la maravilla solo hay un error de tecleo en cuanto al indice y su posicion en la instruccion (X)

dice MOVE CAMPO(X) OF GRUPO TO CAMPO(X) OF GRUPO-A

debe MOVE CAMPO OF GRUPO(X) TO CAMPO OF GRUPO-A(X)
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Uso del Corresponding COBOL

Publicado por SuperIndio (138 intervenciones) el 01/07/2008 21:05:02
Malas Noticias amigo.... En CA-Realia COBOL Compiler ni siquiera compila

CA-Realia COBOL Compiler Version 6.0.68
Copyright (c) 1981, 1999 Computer Associates International, Inc.

15:57:50 Pass 1
15:57:50 Pass 1a
15:57:50 Pass 2
15:57:50 Pass 2a
184 C No matching items found in CORRESPONDING; 'MOVE' statement discarded
185 C No matching items found in CORRESPONDING; 'MOVE' statement discarded
186 C No matching items found in CORRESPONDING; 'MOVE' statement discarded
191 C No matching items found in CORRESPONDING; 'MOVE' statement discarded
192 C No matching items found in CORRESPONDING; 'MOVE' statement discarded
193 C No matching items found in CORRESPONDING; 'MOVE' statement discarded
mvco has 6 C Level messages
15:57:50 Pass 3
15:57:50 Pass 4
15:57:50 Pass 5
15:57:50 End of compilation

En MF compila, realiza el move pero los datos ni fu ni fa...
Vas a tener hacer nomas los MOVEs campo a campo para el caso de los vectores.

mi idea era pasar de comp-n a signeado solamente (para que coincidan en la camtidad de byte de memoria allocada) y luego pasarlo a formato display pero no funciona

Lamento mucho
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Uso del Corresponding COBOL

Publicado por Jorge Diaz Carpio (3 intervenciones) el 01/07/2008 23:18:15
checa mira yo tengo asi declarado el archivo origen

01 REGDOL01MOV.
05 MO01KEY.
10 MO01RUT PIC 9(8) COMP-3.
10 MO01MONEDA PIC 99 COMP-3.
05 MO01MES01TO13 OCCURS 17.
10 MO01CAPFIN PIC S9(7)V99 COMP-3.
10 MO01INTFIN PIC S9(5)V99 COMP-3.
10 MO01GASFIN PIC S9(5)V99 COMP-3.
*-
10 MO01CAPSFIN PIC S9(7)V99 COMP-3.

y el archivo destino de esta manera

FD APDOL11MOV.

01 REGDOL11MOV.
05 MO11KEY.
10 MO01RUT PIC 9(8).
10 MO01MONEDA PIC 99.
05 MO01MES01TO13 OCCURS 17.
10 MO01CAPFIN PIC S9(7)V99.
10 MO01INTFIN PIC S9(5)V99.
10 MO01GASFIN PIC S9(5)V99.
*-
10 MO01CAPSFIN PIC S9(7)V99.

y mas abajo hago el corresponding

MOVE CORRESPONDING REGDOL01MOV TO REGDOL11MOV

ojo y si me compila solo que no asigna los valores nada mas no vota error y nada por programa simplemente no asigna
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

RE:Uso del Corresponding COBOL

Publicado por Luis Salinas (83 intervenciones) el 03/07/2008 16:20:30
Espero te sirva este ejemplo.

77 J PIC 99.


MOVE MO01RUT TO MO01RUT-D
MOVE MO01MONEDA TO MO01MONEDA-D
MOVE MO01CAPSFIN TO MO01CAPSFIN-D
PERFORM VARYING J FROM 1 BY 1 UNTIL J > 17
MOVE MO01CAPFIN TO MO01CAPFIN-D
MOVE MO01INTFIN TO MO01INTFIN-D
MOVE MO01GASFIN TO MO01GASFIN-D
END-PERFORM.

Al disenos destino cambiale el nombre de las variables, yo le agregue un guin y una d.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

RE:Uso del Corresponding COBOL

Publicado por Luis Salinas (83 intervenciones) el 03/07/2008 16:49:22
Disculpame por haberte enviado el anterior aporte de manera inconclusa,
cometi un error que estoy reparando en el actual ejemplo.
Es el indice de cada variable.

Gracias por entenderme.


77 J PIC 99.

MOVE MO01RUT TO MO01RUT-D
MOVE MO01MONEDA TO MO01MONEDA-D
MOVE MO01CAPSFIN TO MO01CAPSFIN-D
PERFORM VARYING J FROM 1 BY 1 UNTIL J > 17
MOVE MO01CAPFIN(J) TO MO01CAPFIN-D(J)
MOVE MO01INTFIN(J) TO MO01INTFIN-D(J)
MOVE MO01GASFIN(J) TO MO01GASFIN-D(J)
END-PERFORM.


Att.

Luis Salinas.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar