cobrix icon indicating copy to clipboard operation
cobrix copied to clipboard

COMP-3 field is being read with a value 3 less than expected value

Open anavimr opened this issue 2 years ago • 3 comments

Trying to read a file which has the following 07 IM-LKUP-LM-HH-MM-SS PIC S9(7) COMP-3.

The resulting value for each record is coming up with a value thats 3 more than expected. For instance instead of seeing 131444 - its resulting in 131441 Happens for every single record - all other fields are being parsed correctly - this is the only COMP field.

Added the following option .option("debug", "hex") and I see {131441, 0131441F} Here is what I see in the file using a hex editor: (ignore double quotes) "‘à"

Any idea why this is happening and how to fix it.

Is this because of an unsigned COMP field and the sign value should be ignored but the code is somehow including it in the value?

anavimr avatar Aug 21 '23 15:08 anavimr

0131441F is COMP-3 encoded 131441. Looks correct . Why do you expect 131444?

yruslan avatar Aug 22 '23 06:08 yruslan

I think we figured out the issue. The file record format is U (undefined) Does Cobrix support this. The first field(s9999 Comp-3) defines how many bytes the record is….

anavimr avatar Aug 22 '23 23:08 anavimr

Yes, you can use record length expressions, like:

.option("record_format", "F")
.option("record_length_field", "RECORD_LENGTH_FIELD + 10")

more details are in README

yruslan avatar Aug 23 '23 06:08 yruslan