Date: Tue, 8 Jul 1997 11:10:00 -0600
Reply-To: Stan Aughenbaugh <Stan.Aughenbaugh@MCI.COM>
Sender: "SAS(r) Discussion" <SAS-L@UGA.CC.UGA.EDU>
From: Stan Aughenbaugh <Stan.Aughenbaugh@MCI.COM>
Subject: Re: proc DATASETS long update.
|Date: Tue, 08 Jul 1997 09:41:56 -0400 (EDT)
|From: morvang <morvang@MAIL.CLUB-INTERNET.FR>
|Subject: proc DATASETS
|Sender: "SAS[r] Discussion" <SAS-L@UGA.CC.UGA.EDU>
|To: Multiple recipients of list SAS-L <SAS-L@UGA.CC.UGA.EDU>
|Message-id: <97070813415655/0002134384DC4EM@mcimail.com>
|Autoforwarded: TRUE
|Priority: normal
|
|Hi,
|I have a SAS-library with members ( memtype=DATA) .
|the PROC DATASETS gives only an output list of the member-list.
|Has someone an idea how to obtain - directly - this list in a table ?
|Thanks
|Gerard
Gerard,
here's some code that may help. And I don't *anything* to
do with SAS and PDSs is direct. I accumulated this from many
people on this list, and some that read it and cannot post
to it particularly a friend in Frederick MD.
I haven't tested it recently, but it did work about
6 months ago..and really saved me some work.
Note: Someone once asked me about this in regard to a UG.
Anything that makes the MVS-SAS user's job easier is something
I'm in favor of.
Regards,
Stan Aughenbaugh II
Computer Horizons Corp.
(719) 535-3637
"90% of all statistics are made up"
__________ code follows __________________
So...
Make a dataset using Proc Source:
OPTIONS FILESTAT ERRORS=50 ;
FILENAME DIN 'MW.TD.Y2K.MWB.GPCNTL.LISTPDS' ;
FILENAME DOUT 'MW.TD.Y2K.MWB.GPCNTL.LISTPDS#' ;
DATA _NULL_ ;
FILE SASLIST ;
PROC SOURCE INDD=DIN DIRDD=DOUT ;
RUN ;
(DIN is an existing PDS)
(DOUT is a created sequential listing output)
the process DOUT with the following...
OPTIONS NOWORKTERM ;
DATA PDSMBRS;
LENGTH MEMBER $ 8
STATS $ 3
VER 2
MOD 2
CREATED 3
LASTMOD 3
MODTIME 4
SIZE 3
BYTES 3
INITSIZE 3
LINESMOD 3
USER $ 7;
FORMAT CREATED LASTMOD MMDDYY8. MODTIME TIME5.;
INFORMAT CREATED LASTMOD MMDDYY8. MODTIME TIME5.;
INFILE PDSDIR; *<---------- Fileref of dump file;
INPUT @ 1 MEMBER $8.
@12 TEST $1. @;
STATS = 'NO';
IF TEST = '0F'X THEN DO; /*SPF STATS ARE ON*/
STATS = 'YES';
END;
INPUT @13 VER IB1.
@14 MOD IB1.
@18 ICREATED PD3.
@22 ILASTMOD PD3.
@25 IMODHOUR PK1.
@26 IMODMIN PK1.
@27 SIZE IB2.
@29 INITSIZE IB2.
@31 LINESMOD IB2.
@33 USER $7.;
CREATED = DATEJUL(ICREATED);
LASTMOD = DATEJUL(ILASTMOD);
MODTIME = HMS(IMODHOUR, IMODMIN, 00);
IF STATS EQ "YES" THEN DO;
/* BYTES = SIZE * &LRECL */;
END;
FILE PDSMBRS ;
*OUTPUT PDSMBRS ;
PUT @1 MEMBER @10 LASTMOD @20 SIZE ;
PROC PRINT DATA=PDSMBRS ;
RUN;
/*