Cobol Foro
Navegación en el Foro
Retroceder   Cobol Foro Entornos de desarrollo y compiladores Cobol Fujitsu COBOL PowerCOBOL (ActiveX, v4 - v11)
PowerCOBOL (ActiveX, v4 - v11) Versiones del IDE basadas en ActiveX
 
Otros temas que te pueden interesar
Tema Autor Foro Respuestas Último post
[Compilador] No puedo leer archivos. dariodr COBOL - General 4 10 de marzo de 2023 10:23
[Duda] Leer archivos COBOL dariodr COBOL - General 1 10 de febrero de 2023 12:04
[Sintaxis] Leer archivos Cobol desde VB6 drvedia1981 PowerCOBOL v3 (V3L10, Win32) 8 31 de enero de 2018 00:53
[Duda] Leer puerto RS232 desde PowerCobol v9 Jovimabo PowerCOBOL (ActiveX, v4 - v11) 13 18 de octubre de 2016 16:00
[Duda] Crear archivos DBF desde COBOL (sin ODBC) Joseg PowerCOBOL (ActiveX, v4 - v11) 4 16 de marzo de 2016 16:36

Respuesta

  #1
Antiguo 29 de septiembre de 2015, 16:54
Roger
Forero Activo
Última Actividad 04.02.2021 13:03
Posts Posts: 236
Likes enviados Enviados: 26
Likes recibidos Recibidos: 60
Predeterminado Leer archivos RM Cobol desde PowerCobol
0 Inactivo Inactivo

Como se lee archivos generados en rmcobol con powercobol un compañero esta migrando su sistema y por el momento necesita trabajar con ambos.

En el anterior foro (ESCOBOL) lei un post donde tenian esta pregunta lamentablemente nunca lo puse en practica.
Roger is offline   Responder Con Cita
  #2
Antiguo 29 de septiembre de 2015, 20:48
Kuk
Administrador
Última Actividad 19.09.2026 20:11
Posts Posts: 2.500
Likes enviados Enviados: 1037
Likes recibidos Recibidos: 1207

Roger, no estoy seguro, pero los ficheros RM no son RMKF como los de PowerCOBOL? Si es así, se puede leer directamente, como si fueran de PowerCOBOL.



NORMAS DEL FORO - para garantizar el buen funcionamiento del Foro.
¿Te han ayudado? NO TE OLVIDES de darle a
¿Quieres dirigirte a alguien en tu post? Notifícale haciendo clic en su Nick
Kuk is offline   Responder Con Cita
  #3
Antiguo 30 de septiembre de 2015, 00:52
Roger
Forero Activo
Última Actividad 04.02.2021 13:03
Posts Posts: 236
Likes enviados Enviados: 26
Likes recibidos Recibidos: 60

Logre leer los archivos grabados en rmcobol cambiando algunos terminos
Código COBOL:
  1. FD  MAEPROV LABEL RECORD STANDARD.
por
Código COBOL:
  1. FD MAEPROV GLOBAL EXTERNAL LABEL RECORD STANDARD.



Código COBOL:
  1.  SELECT MAEPROV ASSIGN RANDOM "MAEPROV.DAT"
  2.                   ORGANIZATION INDEXED
  3.                   ACCESS DYNAMIC
  4.                   RECORD KEY KEY-PVD
  5.                   ALTERNATE RECORD AL1-PV DUPLICATES
  6.                   FILE STATUS FILE-STATUS.


Código COBOL:
  1. SELECT MAEPROV ASSIGN TO "MAEPROV.DAT"
  2.                   ORGANIZATION INDEXED
  3.                   ACCESS DYNAMIC
  4.                   RECORD KEY KEY-PVD
  5.                   ALTERNATE RECORD AL1-PV DUPLICATES
  6.                   FILE STATUS FILE-STATUS.


algunas consideraciones el archivo en rmcobol no debe contener
COMP-6 COMP-3.

pero no puedo grabar-regrabar ni eliminar.
Roger is offline   Responder Con Cita
  #4
Antiguo 30 de septiembre de 2015, 07:55
Josber
Moderador Global
Activista del Foro: Activista del Foro - Issue reason: Por aportar manuales y enriquecer  Agradecimientos: Por muchos agradecimientos de parte de los Foreros - Issue reason: Por muchos agradecimientos 
Última Actividad 20.09.2026 12:17
Posts Posts: 883
Likes enviados Enviados: 418
Likes recibidos Recibidos: 492

Pureba a poner en la declaración de la FD la cláusula BTRV.

Código COBOL:
  1. FD MAEPROV GLOBAL EXTERNAL LABEL RECORD STANDARD BTRV.

Las clausulas GLOBAL, EXTERNAL , no son obligatorias, pero si no las pones, te tocará declaral los ficheros en cada "subprograma" que definas en en FORM.

Además, yo pongo también la clausula OPTIONAL, que lo que hace es que si el fichero no existe, lo crea, para evitar errores de STATUS 35.

Ya nos dirás algo

Un saludo.-
Josber is offline   Responder Con Cita
  #5
Antiguo 1 de octubre de 2015, 02:00
Armando
Forero Junior
Última Actividad 27.08.2026 19:00
Posts Posts: 34
Likes enviados Enviados: 5
Likes recibidos Recibidos: 19

Hola a todos,

Realmente los archivos de Rmcobol (versión 0), son leidos y actualizados sin problemas por los programas powercobol.
Los cambios en la sintaxis son los que mencionan.
Nosotros además agregamos el LOCK MODE IS AUTOMATIC, para controlar los archivos y los registros lockeados (recomiendo hacer pruebas lockeando con un cobol e intentando acceder desde el otro para ver el comportamiento)
Con respecto al tema de la versión, el rmcobol 7 por defecto utiliza la versión 2 (ponemos RUN-INDEX-FILES DEFAULT-FILE-VERSION-NUMBER=0 en el archivo de configuración). El tema es que si se crean con versión 2, al abrirlos en Power podés leerlos pero al abrirlos para grabar o regrabar va a dar un error 90)
Los COMP-6 no existen en Powercobol, y para leerlos se puede hacer una tabla de conversión para leerlos, y obviamente lo mismo para regrabarlos.
El BTRV no es necesario.

espero que les sirva.
armando
Armando is offline   Responder Con Cita
  #6
Antiguo 1 de octubre de 2015, 02:29
Roger
Forero Activo
Última Actividad 04.02.2021 13:03
Posts Posts: 236
Likes enviados Enviados: 26
Likes recibidos Recibidos: 60

Armando
No logro entenderte,los archivos que estoy manipulando fueron creados por rmcobol v5.20 segun lo que manifiestas son versión 0 los puedos leer mas no grabar ni eliminarme manda un error JMW0005I-U THE ERROR OCCURRED IN THE COBOL ERROR REPORT "INTERNAL ERROR=22939"

Me informan que los archivos creados por powercobol se pueden leer por rmcobol
si es asi pasaria la data a power para que se puedan leer, grabar, eliminar por ambas.

Voy a probar luego les informo como me fue.
Roger is offline   Responder Con Cita
  #7
Antiguo 1 de octubre de 2015, 09:25
Kuk
Administrador
Última Actividad 19.09.2026 20:11
Posts Posts: 2.500
Likes enviados Enviados: 1037
Likes recibidos Recibidos: 1207

Armando, qué tipo es realmente el COMP-6 de RM ? Lo mismo que en MicroFocus?

Roger, a veces, cuando el fichero está en grabación y se queda en un bucle, corte de luz o cualquier historia, los ficheros indexados en Power se quedan afectados también y se puede solo leerlos. Lo que yo suelo hacer es un simple programa que lo que hace es coger en lectura el fichero dañado, y escribirlo en uno nuevo registro por registro (en un bucle claramente). No se tarda nada en hacerlo.



NORMAS DEL FORO - para garantizar el buen funcionamiento del Foro.
¿Te han ayudado? NO TE OLVIDES de darle a
¿Quieres dirigirte a alguien en tu post? Notifícale haciendo clic en su Nick
Kuk is offline   Responder Con Cita
  #8
Antiguo 1 de octubre de 2015, 17:46
Fito
Guardián del Foro
Agradecimientos: Por muchos agradecimientos de parte de los Foreros - Issue reason: Por muchos agradecimientos de parte de los Foreros Guardián del Foro: Guardián del espíritu y clima del Foro - Issue reason: Por el Avatar Activista del Foro: Activista del Foro - Issue reason: Por aportar ideas 
Última Actividad 19.09.2026 13:19
Posts Posts: 458
Likes enviados Enviados: 267
Likes recibidos Recibidos: 243

Roger:

Al principio, cuando estaba pasando de rm85 5.20 a power trabajaba con los dos al mismo tiempo.
Hice los cambios como decis y dicen todos.

por ejmplo:

Código COBOL:
  1.     select optional archivo assign to "archivos.dat"
  2.        organization indexed
  3.        acces dynamic
  4.        lock mode is automatic
  5.        record key is archivo-clave
  6.        alternate record key is archivo-clave2 with duplicates
  7.        file status is st-archivo.

el comp-6 no funciona, pero el comp-3 si, los campos signados necesariamente los dejé comp-3.

Hay que tener cuidado con la definición de claves alternativas. Para leer un archivo creado en rm con power, el orden de definición tiene que ser en el orden que está en el archivo, no sé si me explico.

Y un problema que tuve, es que cuando trabajaba con los archivos en power en rm me daba un error de bloqueo. No insvestigué mucho sobre el tema, porque no usé mucho tiempo los dos sistemas. Así que no sé si ese error se puede salvar.

Saludos...
Fito is offline   Responder Con Cita
  #9
Antiguo 2 de octubre de 2015, 01:25
Roger
Forero Activo
Última Actividad 04.02.2021 13:03
Posts Posts: 236
Likes enviados Enviados: 26
Likes recibidos Recibidos: 60

Gracias por su ayuda amigos del foro

Hice la prueba lei el archivo rmcobol con un programa en power cobol y lo volvi a grabar en power, reemplaze este archivo en la carpeta de rmcobol.
Ahora puedo leer, grabar, modificar, eliminar en rmcobol y power
Código COBOL:
  1. select optional archivo assign to "archivos.dat"
  2.        organization indexed
  3.        acces dynamic
  4.        lock mode is automatic
  5.        record key is archivo-clave
  6.        alternate record key is archivo-clave2 with duplicates
  7.        file status is st-archivo.

con la sintaxis del lock controlo que ambos programas puedan leer a la vez un mismo registro.

agradecimiento a Fanny Ojeda no se que nombre tiene en este foro.
Roger is offline   Responder Con Cita
  #10
Antiguo 2 de octubre de 2015, 05:08
Armando
Forero Junior
Última Actividad 27.08.2026 19:00
Posts Posts: 34
Likes enviados Enviados: 5
Likes recibidos Recibidos: 19

Roger
Nosotros creamos archivos tanto desde un lenguaje como del otro, y se leen y se graban indistintamente, pero teniendo la precaucion en rm de que el runtime este configurado con version 0.
Con respecto a los campos signados, optamos por decirle donde va el signo, y usamos:
Código COBOL:
  1. 02 IMPORTE-SLC          PIC S9(12)V99 SIGN TRAILING SEPARATE.

Los COMP-3 no los usamos.

Los COMP-6 empezamos a investigar para convertir el archivo de texto byte a byte a numerico, o sea si tenemos por ejemplo:
si el campo comp-6 es de 12, en power seria un alfa de 6 (cada byte representa 2 digitos).
entonces si lees el alfa cada uno de esos 6 bytes representa 2 digitos numericos.
te armas una tabla con los valores hexadecimales para encontrar cada byte leido
Código COBOL:
  1.     01 W-PASE.
  2.         02 W-LINE01 PIC X VALUE X"01".
  3.         02 W-LINE02 PIC X VALUE X"02".
  4.         02 W-LINE03 PIC X VALUE X"03".
  5.         02 W-LINE04 PIC X VALUE X"04".
  6.                 ....
  7.                         02 W-LINE99 PIC X VALUE X"99".
  8.         02 W-LINE00 PIC X VALUE X"00".
  9.     01 TABLA-PASE REDEFINES W-PASE.
  10.         02 ELEM-PASE OCCURS 100 PIC X.
y vas obteniendo los digitos empaquetados.
(nota: tenes que tener en cuenta que tambien estan los campos signados, pero tambien tienen su hexa , o sea vas a tener 10 variables mas para los positivos y 10 mas para los negativos -representacion de c/u de los 10 digitos con signo, recomiendo ver con el editor de archivos del fujitsu los valores decimales)

Resumiendo, se puede y anda bien.
Alguien comentaba el tema del orden de las claves en la select con respecto al orden en la FD. En rm no importa, pero en Power si.
Armando is offline   Responder Con Cita
Respuesta


Herramientas

Derechos de Publicación
No puedes publicar nuevos temas
No puedes publicar posts/responder
No puedes adjuntar archivos
No puedes editar tus posts

BB code is habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado

Saltar a Foro


La franja horaria es GMT +2. Ahora son las 14:40.
Powered by: vBulletin, Versión 3.8.7
Derechos de Autor ©2000 - 2026, Jelsoft Enterprises Ltd.