Skip to content

Replace sas7bdat mix page padding hack - #434

Open
hpoettker wants to merge 1 commit into
WizardMac:devfrom
hpoettker:remove-mix-page-hack
Open

hpoettker wants to merge 1 commit into
WizardMac:devfrom
hpoettker:remove-mix-page-hack

Conversation

@hpoettker

Copy link
Copy Markdown
Contributor

Resolves #381.

With #421, we now know how SAS determines the padding between subheaders and data on mixed pages when reading sas7bdat files. We can use this information to remove a hack in the sas7bdat reader that currently more or less guesses the padding and guesses wrong in the context of issue #381.

I've removed all parsing and validation of the version string except for the major version, which is exposed through the API. Any further parsing and validation can result in unnecessary obstacles as seen in #379.

If you'd prefer to keep some of it, for example for the minor version, please let me know.

I've validated the change against both big-endian and little-endian as well as 64-bit (which always have 0 padding) and 32-bit sas7bdat files as produced by SAS 9.4.

I don't have access to sas7bdat files created by Stat/Transfer. But if Stat/Transfer produces sas7bdat files that are readable by SAS, then it must produce the right padding value as SAS will make read errors if the padding is off (see #421).

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

readstat_sas7bdat_read: stat/transfer + "padding" causes issues

1 participant