Capturar datos de archivos de programa en cobol

452 views
Skip to first unread message

arti...@gmail.com

unread,
Nov 21, 2013, 8:04:05 AM11/21/13
to publice...@googlegroups.com
Hola amigos, tengo un cliente que tiene un programa en Cobol y necesito rescatar la información de dicho programa
para traspasarlo a mis aplicaciones, el programa está escrito en Cobol y los archivos de datos tiene las extensión
.Dat y los índices .Idx. Alguien sabría decirme qué tipo de orígenes de datos debo usar para acceder a la información.
Saludos.

Carlos Miguel FARIAS

unread,
Nov 21, 2013, 8:34:31 AM11/21/13
to Grupo Fox
Las veces que me toco, tuve que leer el archivo como texto plano, mirando el archivo con un editor hexa, detecte donde empezaba el primer registro (suelen tener una cabecera), los registros en general son de longitud fija.
Deberías conseguir el diseño de registro, eso es código fuente cobol, la descripción de nombres y tipo-tamaño de campo, no se almacenan en el disco.
Si uso datos empaquetados o binarios, ya el proceso es además, más complejo, porque hay que hacer una conversión adicional.
Suponiendo que tienes determinada la estructura del registro, abris el archivo con fopen, y luego te posicionas en el byte correspondiente (fseek) y lees con fread la cantidad de bytes que tenga el registro.
La cadena obtenida, deberás fraccionarla de acuerdo a la longitud fisica de cada campo (substr) y luego convertir el campo al tipo de dato que corresponda.
Si el dato empaquetado o binario, deberás ver como convertir.
Saludos: Miguel, La Pampa (RA)

Arnaldo Toledano

unread,
Nov 21, 2013, 9:27:36 AM11/21/13
to publice...@googlegroups.com, arnaldo....@gmail.com
Miguel, que recuerdos ! ! ! ! ! !
Cuando empece con Clipper, que era una "tegnologia nueva" aya por el 90, hice una rutina en clipper, con los mismos
comandos que vos comentas, para levantar los datos de COBOL.
Es tal cual lo mencionas vos.
Una vez logrado el INICIO de los datos, todos los registros son de la misma longitud
El fin de cada registro estaba dado por el chr (10) + Chr(13)
El largo de cada campo era exactamente igual en todos los casos.
Es decir NO EXISTÍA el VARCHAR.
artiges, suerte y si necesitas ayuda, puedo buscar mi rutina en clipper.



Arnaldo Toledano
Tesys Informática
Córdoba
Argentina



--

HernanCano

unread,
Nov 21, 2013, 10:13:40 PM11/21/13
to publice...@googlegroups.com, arnaldo....@gmail.com

Importante si compartes la rutina.

La idea es entonces:
Mirar con un editor de texto (hexadecimal o no) (y no grabar al terminar de inspeccionarlo) el archivo en cuestión, y mirar desde cuál byte empieza el primer registro (el que puede verse con lectura humana, por decirlo de alguna forma), y hacer un programa en Fox/VFP que "parsee" los datos.

Es una labor manual, pero como dice Miguel: la estructura no se graba en disco, y entonces la solución una investigación personal, y evidentemente documentar cada campo cuál nombre/descripción puede ser, qué longitud tiene, etc.

Es personal pues cada uno tienes los datos.

Sí, hace un tiempo hice algo similar, aunque el programa no sé si era específicamente en Cobol, pero los datos sí tenían esa distribución mencionada.
Reply all
Reply to author
Forward
0 new messages