used to read data originally written with the corresponding native mode formats on an
IBM mainframe.
Note: Anytime a text file originates from anywhere other than the local encoding
environment, it might be necessary to specify the ENCODING= option on either
EBCDIC or ASCII systems. When you read an EBCDIC text file on an ASCII
platform, it is recommended that you specify the ENCODING= option in the
FILENAME or INFILE statement. However, if you use the DSD and the DLM= or
DLMSTR= options on the INFILE statement, the ENCODING= option is a
requirement because these options require certain characters in the session encoding
(such as quotation marks, commas, and blanks). Reserve encoding-specific informats
for use with true binary files that contain both character and non-character fields.
For complete descriptions of all SAS formats and informats, including how numeric
binary data is written, see SAS Formats and Informats: Reference.
Reading Column-Binary Data
Definition
column-binary data storage
is an older form of data storage that is no longer widely used and is not needed by
most SAS users. Column-binary data storage compresses data so that more than 80
items of data can be stored on a single “virtual” punched card. The advantage is that
this method enables you to store more data in the same amount of space. Because
card-image data sets remain in existence, SAS provides informats for reading
column-binary data. See “Description of Column-Binary Data Storage” on page 456
for a more detailed explanation of column-binary data storage.
How to Read Column-Binary Data
To read column-binary data with SAS, you need to know:
how to select the appropriate SAS column-binary informat
how to set the RECFM= and LRECL= options in the INFILE statement
how to use pointer controls
The following table lists and describes SAS column-binary informats.
Table 21.7 SAS Informats for Reading Column-Binary Data
Informat Name Description
$CBw. reads standard character data from column-binary files
CBw. reads standard numeric data from column-binary files
PUNCH.d reads whether a row is punched
ROWw.d reads a column-binary field down a card column
Reading Column-Binary Data 455
To read column-binary data, you must set two options in the INFILE statement:
Set RECFM= to F for fixed.
Set the LRECL= to 160, because each card column of column-binary data is
expanded to two bytes before the fields are read.
For example, to read column-binary data from a file, use an INFILE statement in the
following form before the INPUT statement that reads the data:
infile file-specification or path-name
recfm=f
lrecl=160;
Note: The expansion of each column of column-binary data into two bytes does not
affect the position of the column pointer. You use the absolute column pointer
control @, as usual, because the informats automatically compute the true location
on the doubled record. If a value is in column 23, use the pointer control @23 to
move the pointer there.
Description of Column-Binary Data Storage
The arrangement and numbering of rows in a column on physical punched cards
originated with the Hollerith system of encoding characters and numbers. It was based
on using a pair of values to represent either a character or a numeric digit. In the
Hollerith system, each column on a card had a maximum of two punches, one punch in
the zone portion, and one in the digit portion. These punches corresponded to a pair of
values, and each pair of values corresponded to a specific alphabetic character or sign
and numeric digit.
In the zone portion of the punched card (the first three rows), the zone component of the
pair can have the values 12, 11, 0 (or 10), or not punched. In the digit portion of the card
(the fourth through the twelfth rows), the digit component of the pair can have the values
1 through 9, or not punched.
The following figure shows the multi-punch combinations corresponding to letters of the
alphabet.
Figure 21.1 Columns and Rows in a Punched Card
row punch
zone
portion
digit
portion
alphabetic
character
X X X X X X X X
1
2
3
4
5
6
7
8
9
12
11
10
A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
X X X X X X X X X
X X X X X X X X X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
456 Chapter 21 Reading Raw Data

Get SAS 9.4 Language Reference, 6th Edition now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.