The COBOL data structure analysis tool

COBData Banner

The COBDATA tool was originally written to provide a handy way of deriving the offsets and lengths of COBOL fields defined in COBOL record definitions. It has come a long way since then...

This tool (as well as providing some useful functionality to COBOL and other language programmers who need to deal with COBOL data structures) comes in two forms:

    1. As a free-standing program (executable - .EXE) which you can download and use when working with COBOL.
There is no charge for this and several hundred people have downloaded the package.  This is a .Net executable (.exe) called COBDATA which is really a wrapper for the analysis engine below.

    2. As a COM (Component Object Model) component which can be embedded in your own software to provide offsets and lengths of COBOL data fields.
We have seen people use this to write general purpose data presentation modules in VB.Net and the PRIMA Migration Toolset also has this component embedded in it so it can use generalized reference modification internally, and so it can convert COBOL types into RDB types. There is a (small) charge for this because we support it and will provide updates free of charge, as well as helping you integrate it into whatever language you wish to use it from. This is a .Net COM component (.DLL) called COBSTRUCT and is the analysis engine used to derive the information from the COBOL data definitions.

Previously, in the old COBOL21 site, we provided full details and source code of both COBSTRUCT and COBDATA, using it as an example of how to bring standard procedural COBOL into a modern OO form and wrap it with a modern .Net GUI interface written in C#. However, both these components have now been redeveloped in C# and completely separated, so the source code is no longer publicly available, unless you specifically request it from PRIMA.

* - So, what exactly does this tool do?

    It allows you to see instantly the offsets and lengths of fields which comprise a COBOL record definition (structure). COBOL has a number of rich and useful "clauses" which can be applied to data definition. They can be bewildering to other language programmers who need to interface to COBOL created datasets.

    While you are editing a COBOL record definition, you can select with the mouse the block of fields (or the whole record) which you want details on. Copy your selection to the system clipboard (Ctrl/C), maximise the tool from the task bar, and click the "Execute" button. The clipboard is converted to a data stream, which is fed to the COBSTRUCT engine, and offsets and lengths for each defined name are calculated, taking into account REDEFINES, hierarchic group levels, OCCURs, and different data USAGE formats.

    It is also now possible to direct the input and output for the engine to a folder. For example, if you are working with a particular COBOL record definition in a folder full of COPYbooks, you can COPY it to be "" in the same folder and use the Config > Advanced options of COBDATA to process the file directly, instead of using the clipboard. You can edit the file to try different definitions and update the original when you are satisfied.

* - The new version of COBSTRUCT has been enhanced and the following features are now available:

1. Correct offset/length calculation for multi-level COBOL tables.

2. Correct recognition of nested REDEFINES fields.

3. Correct lengths for all COBOL USAGEs. (Supports Micro Focus binary fields as well...)

>4. Ability to redirect input and output, without being confined to the clipboard and the local directory.

5. Ability to calculate using Offsets OR Positions in the record. (COBOL indexes from 1 (position); most other languages index from 0 (offset))

6. Ability to route error messages from the COBSTRUCT engine to either the screen or the Windows Application log.

To download the FREE COBDATA tool,click here; to obtain the embeddable analysis engine (COBSTRUCT COM Component), send us a note with your company name, a little about your organization, and the language you wish to embed it into. We will give you a price, and a download link once you pay us.

(TELL US if you have ANY problems downloading, installing, or running this package.)