Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Which COBOL database do I have?

A simple but, heh, still weird question. Hope in good section, couldn't find decent answer in whole internet.

First of all, it looks strongly like COBOL (ACUCOBOL?), but I am not sure.

I have binary files with extensions: .AC, .vix, .SC; several MBytes each. Most of files are in pairs eg. ADDRESSES.AC + ADDRESSES.vix or COMPANIES.SC + COMPANIES.vix. In the middle of these files I can see parts of records, however it seems to be a set of binary files.

No human readable indexes, maps, dialects, configuration files, headers that I know exists in Cobol databases - nothing to be parsed using some normal text tools. No CPY, RDD, XFD files as well. Just files with a lot of binary data and parts of records/ids (?) from time to time. So I can determine e.g., that one file contains set of addresses, next apparently sales, next client data etc.

Questions are:

How to determine which version of COBOL database am I using? (Mostly to obtain a proper tool to extract the data.)

How to convert this database to something that can be parsed and moved to whatever else - even Excel?

I have no access to computer that was working with this database as it is deep in the litter bin from many years, nothing else remained, just one folder with database files.

Had anybody the same problem?

Here is sample: enter image description here

like image 603
Vilq Avatar asked Mar 02 '26 08:03

Vilq


2 Answers

How to determine which version of COBOL database am I using?

You aren't using a database but ISAM files, very likely ACUCOBOL GT file format 5. For details about the format see official documentation.

Mostly to obtain a proper tool to extract the data.

The proper tool would be vutil and the command vutil -u -t ADDRESSES.AC ADDRESSES.TXT which will present you with a text file that is very likely in fixed-length form (variable form is relative uncommon) -> step 1.

As the data likely contains binary fields you have to investigate the data to check the actual format/record layout --> step2, and calculate the decimal values from the binary fields --> step 3. But there are tools out there that help you with step 2 and 3, I can recommend RecordEditor where you'll see the data, can set field widths/types (defining a record layout, similar to Excel Import, but also allows you to use binary COBOL types) and convert the resulting file to CSV.

If you don't have access to vutil (or vutil32.exe on Windows) you may find someone that has access to this tool and convert the data for you; or get an evaluation version (would be an old download, the new product owner of ACUCOBOL-GT is MicroFocus and only provides evaluation versions of their not-compatible "Visual COBOL" product).

Alternatively you can reverse-engineer the format (the record layout is in the vix-file, open it with an hex-editor and dive in), but this likely is a bigger task...

Summary:

  • decide how to do step 1, vutil/vutil32.exe is the easiest way
  • 1: convert the data to text format
  • 2: investigate the files and inspect for the record layout (field width, type)
  • 3: load the file, convert binary fields, export as csv
like image 188
Simon Sobisch Avatar answered Mar 03 '26 23:03

Simon Sobisch


You definitely have the vision indexed data files as you will see the .vix files which match, if you do not have a .vix file then it is a relative file with a set no of records.

If you have Acubench under the Tools Menu there is an option for Vision File Utility, from there you can Unload your Vision Data to a text file which is tab delimited.

From there you can import to Excel as a tab delimited file and then re-save as a csv file.

like image 21
Ian Harper Avatar answered Mar 03 '26 22:03

Ian Harper



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!