cobrix
cobrix copied to clipboard
COMP-3 field is being read with a value 3 less than expected value
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?
0131441F is COMP-3 encoded 131441. Looks correct . Why do you expect 131444?
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….
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