[comp.os.vms] BLOCK I/O using RMS Services - Need help

mike@ut-emx.UUCP (Mike) (04/07/88)

I am trying to read in a large file using block I/O as described in
chapter 4 of the RMS reference manual.  The file is one created by the
EVE editor having variable length records and carriage return carriage control.
I have set up a large character array (this program is written in C, by
the way) to receive the data into.  The file appears to be read in correctly,
with all the data as well as record length fields.  The way I have understood,
the first two bytes of a record are the record length.  If the record length
happens to be an odd number, then a null character has been added to the
end of the record, as VMS writes data 2 bytes at a time.  Using this data
I can then pick out the data records and have been successful doing this
to a point.  The data file looks like this:

123456789012345678901234567890
123456789012345678901234567890X
       :
       :
alternating these two lines for the rest of the file, 70+ blocks in all.

After reading about half of the file, the line with the X on the end of
it starts getting one more data byte added to it.  I looked at the
a dump of the file, the extra byte appears in the dump, the recordsize
count is correct, but it does not appear in the editor-created data file.
What gives?  I can send the source for the I/O if needed, but as I mentioned, 
what is puzzling is that the dump reveals that the code is there, but neither
the TYPE command nor the EVE editor reveal it.  Any help will be appreciated.

Mike O'Donnell