LISTSERV at the University of Georgia
Menubar Imagemap
Home Browse Manage Request Manuals Register
Previous messageNext messagePrevious in topicNext in topicPrevious by same authorNext by same authorPrevious page (June 1996, week 3)Back to main SAS-L pageJoin or leave SAS-L (or change settings)ReplyPost a new messageSearchProportional fontNon-proportional font
Date:   Sun, 16 Jun 1996 02:00:27 -0700
Reply-To:   Karsten Self <kmself@IX.NETCOM.COM>
Sender:   "SAS(r) Discussion" <SAS-L@UGA.CC.UGA.EDU>
From:   Karsten Self <kmself@IX.NETCOM.COM>
Subject:   Re: Thanks - Reading IBM tapes
Comments:   To: Ann Fowler <afowler@CCLINK.FHCRC.ORG>

Ann,

I'm not sure whether you've resoved your IBM (mainframe)-to-Unix issues, but here are some pointers from someone who's been there, done that, and (mixed blessing) forgotten much of the pain involved:

1. There is a (cheap) SAS technical report on transporting SAS datasets between host systems. If you are working with (or can get) SAS transport datasets, this format, in conjunction with the manual, may make life much easier for you.

2. IBM MF - Unix transfer is very sensitive to the previously mentioned binary/ascii file transfer options, as well as things like block size, blocking factor, tape labeling, and a whole slew of other issues. Get as full a technical specification of the transfer media write options as you can, and find out how Unix interprets these and what you need to do to get the data to your Unix box appropriately.

3. IBM raw data does not generally delimit records with line or character feeds (the default in the DOS/Unix worlds). As a result, you generally need to keep track of records via the record length. SAS has a number of infile record format option specifications (RECFM= ) which are detailed in the SAS compation for the Unix envrironment. In particular, the S370xxx family of options refers to mainframe files. In my copy of the Unix companion, these RECFM options are listed only with the FILE statement, and not with the INFILE statement options. This is a printing error and was pointed out to me by SAS technical support. FILE is documented on page 174. Generally, the formats are:

...V - variable length record ...VB - variable block (a true beast) ...VBS - variable block spanned, aka 'very beastly sadomasochist'

You may also need to mess with the BLKSIZE= option. If you continue to experience difficulties, try using the FSLIST window to look at the data in both ASCII and HEX, get as much information on format from your data supplier, and give SAS tech support a call. They can't tell you what you've got, but if you know enough about the data, they can help you read it.

4. Finally, you may want to chop off a small piece of the data (1 - 10 records, maybe more) and mess with various options (record length, block size) until things look like they are being read correctly. You can do this either with a SAS 'obs=' options, or by creating a subset record in Unix with the 'dd' command (specify some number of bytes for output. 'head' won't work because of the lack of record delmiters -- Unix sees the raw data as one big record). Generally, there is a majik configuration at which everything simply pops into place, or at least the EBCDIC portions do (packed/zone/integer binary numbers are another story).

At 03:05 PM 6/14/96 -0700, Ann Fowler wrote: > To everyone who replied to my posting on reading some IBM > tapes - a big thank you! > > It appeared that we did everything correct. There just > seems be some weird stuff in the data. Anyway, we were able > to persuade the 'tape people' to send us the data on CD. > The files are too huge to be ftped - 200+ megabytes each!! > Let's hope I won't have any problems reading the data this > time. > > Once again, thanks. > > Ann F. > > ---------------------------------------- Karsten Self / kmself@ix.netcom.com

What part of gestalt don't you understand?


Back to: Top of message | Previous page | Main SAS-L page