BookmarkSubscribeRSS Feed

PROC EXPLODE: The SAS procedure that time forgot

Started ‎06-25-2018 by
Modified ‎06-25-2018 by
Views 5,438

I'll begin by saying that the code I'm about to share is undocumented for recent releases of SAS, and therefore not officially supported.  Read on for pure nostalgia or to learn trivia for your next SAS-themed cocktail party.

 

Decades ago, before web pages, computer program results were shared on reams of wide green-striped paper, affectionately known as "green bar paper."  In my undergrad days as a computer science student, I didn't know for certain whether my program worked properly until I retrieved my green-bar printout from the compute center.  (It was a minimum-wage student worker's job to separate/sort/distribute all of the output -- alas, an occupation that no longer exists.)

 

A feature of any green-bar printout is the heading: a paper-wasting ASCII-art banner of the output name and maybe the account that produced it.  SAS has a language feature that allows you to produce banners like this: it's called PROC EXPLODE.  Try running this in your SAS for Windows or SAS Enterprise Guide session:

 

options ps=132 nonumber nodate;
ods listing;

FILENAME FT15F001 temp;

proc explode;
parmcards;
1 KICKING IT 
2 OLD SCHOOL!
;
run;

explode.png

 

The PARMCARDS statement is a relic from the punch card days, and the FT15F001 fileref is the spooling source that feeds it, a leftover from Fortran integration/compatibility.

 

If you use SAS University Edition (or SAS Studio in general), the LISTING (text) destination isn't visible.  However, you can route the PROC EXPLODE output to a file, which you can then open and enjoy.

 

 

options ps=132 nonumber nodate;
ods listing file='/folders/myfolders/oldschool.lst';
FILENAME FT15F001 temp;
proc explode;
parmcards;
1 KICKING IT 
2 OLD SCHOOL!
;
run;
ods listing close; 

 

Comments

I remember PROC EXPLODE.

 

Any idea why it is no longer supported? 😉 

 

But @ChrisHemedinger, if I go to http://documentation.sas.com/?cdcId=pgmmvacdc&cdcVersion=9.4&docsetId=allprodsproc&docsetTarget=proc... I see this:

 

Capture.PNG

 

Doesn't this imply it's still supported? And documented?

Well, I guess it is still supported.  My cursory search didn't turn it up.

 

So...EXPLODE on, with impunity!  Thanks @PaigeMiller!

If you click the link, you get a PDF from 2004, from the SAS 9.1 documentation.

I think I may have a use for this! Now all I need is "reams of wide green-striped paper"

@PaigeMiller

Don't forget the tractor drive printer to go through all of those folded pages of output.

 

Options linesize=132; I believe was very common with the green bar as well...

 

Of course the real fun "header" pages used the letter to create the banner text instead of using a single character like *.

Something like:

KK   KK
KK  KK
KK KK
KKKK
KK KK
KK  KK
KK   KK
KK    KK
KK     KK

(too lazy to go much further though the I should be easy enough)

 

Alphabet style, @ballardw!

 

K  K III  CCC K  K III N   N  GGG      III TTTTTT 
K K   I  C    K K   I  NN  N G          I    TT   
KK    I  C    KK    I  N N N G  GG      I    TT   
K K   I  C    K K   I  N  NN G   G      I    TT   
K  K III  CCC K  K III N   N  GGG      III   TT   
                                                  
                                                  

 OOO  L    DDD       SSS   CCC H  H  OOO   OOO  L    
O   O L    D  D     S     C    H  H O   O O   O L    
O   O L    D  D      SSS  C    HHHH O   O O   O L    
O   O L    D  D         S C    H  H O   O O   O L    
 OOO  LLLL DDD      SSSS   CCC H  H  OOO   OOO  LLLL 

Online generators are plentiful on the nostalgic web.

Coincidentally, I had just looked up PROC EXPLODE earlier today because I had a possible use for it, for the first time in 2 decades.

 

But alas, it won't do what I want because it writes to the listing destination, and what I want is for BIG LETTERS to appear in the SAS log.

 

This isn't the first time I've wanted to do something like 

 

    ods saslog;

 

to duplicate listing output to the log.   

 

In this case, I suspect that PROC EXPLODE isn't ODS-aware anyway.

@JackHamilton - I got you.

 

filename bigmsg temp;
options ps=132 nonumber nodate;
ods listing file=bigmsg;
FILENAME FT15F001 temp;
proc explode;
parmcards;
1 KICKING IT 
2 OLD SCHOOL!
;
run;
ods listing close; 

data _null_;
 infile bigmsg;
 input;
 put _infile_;
run;

 

Oh, and if you want it ERROR-red?  Change that PUT line.

 

data _null_;
 infile bigmsg;
 input;
 put "ERROR-" _infile_;
run;

kickingit.png

 

I remember those green-striped sheets well, boxes of them coming up from the print room only to find there was an error in the code and the whole lot was useless!

 

I also remember the COBOL coding sheets we had to hand write our programs on before sending them off to the punch room, how different things are today!

@ChrisHemedinger: If you want to write an article about a "really" undocumented, yet even more (methinks) useful procedure, do one on proc spell. It has the same listing problem for SAS UE, but easy to get around:

options caps;
filename bigmsg temp;
ods listing file=bigmsg;
filename temp temp;
data _null_;
  file temp;
  informat sentence $100.;
  input sentence &;
  put sentence; 
  cards;
Let's see if sas spell procdure can be used
to verify whether tha seperate words in
this, uhm, flie are, uhm, valid against a
stantard internal dictionary and let’s see
how versatile it is
;
proc spell in=temp nomaster;
run;

proc spell in=temp verify;
run;

proc spell in=temp suggest;
run;

ods listing close; 

data _null_;
 infile bigmsg;
 input;
 put _infile_;
run;

Art, CEO, AnalystFinder.com

 

@ChrisHemedinger

The neat thing about the step with the "ERROR-"? Enterprise Guide immediately thinks the step has failed!

Really neat - but what about the newest kid on the block ?? This seems to be done using some clever placement while writing to the log - I noticed it while opening a cas sesssion log (now, is that a good thing or a bad thing 🙂 ?

 

 

image.png

Aww, it doesn't rotate 90 degrees, like Print Shop did.

Version history
Last update:
‎06-25-2018 03:03 PM
Updated by:
Contributors

sas-innovate-2024.png

Join us for SAS Innovate April 16-19 at the Aria in Las Vegas. Bring the team and save big with our group pricing for a limited time only.

Pre-conference courses and tutorials are filling up fast and are always a sellout. Register today to reserve your seat.

 

Register now!

Free course: Data Literacy Essentials

Data Literacy is for all, even absolute beginners. Jump on board with this free e-learning  and boost your career prospects.

Get Started

Article Labels
Article Tags