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 (September 2001, week 1)Back to main SAS-L pageJoin or leave SAS-L (or change settings)ReplyPost a new messageSearchProportional fontNon-proportional font
Date:         Mon, 3 Sep 2001 21:03:24 -0400
Reply-To:     Richard DeVenezia <radevenz@IX.NETCOM.COM>
Sender:       "SAS(r) Discussion" <SAS-L@LISTSERV.UGA.EDU>
From:         Richard DeVenezia <radevenz@IX.NETCOM.COM>
Organization: MindSpring Enterprises
Subject:      Re: Testing for empty file.

"Paul Dorfman" <paul_dorfman@HOTMAIL.COM> wrote in message snip > But after a private back-and-forth with Toren I realized that the INPUT > statement is not needed for achieving the goal. At the same time, I realized > that SAS knows whether the file is empty or not already after executing > INFILE at the *compile* time, which is evident from the following:

I beg to differ on a very technical note...

I do not believe the infile is executed at compile time, but rather in the gray post-compile pre-run initialization phase.

Consider this macro that generates a data step that takes about 8 seconds to compile and run (P3-850Mhz). Consider I have an empty file. Upon first invocation of the macro, everything w.r.t the eof flag is as you stated.

However, invoke the macro again, and during the compile time save something to the file. At run time the eof flag shows 0 indicating the infile is not executed at compile time but rather at runtime or post-compile/pre-runtime.

%macro longcompiletime; data x;

put eof=; if 0 then infile 'c:\temp\x.dat' end=eof; put eof=;

t0 = datetime();

i = int(20000*ranuni(0)); %do i = 0 %to 20000;

if i=&i then put i=;

%end;

e = datetime() - t0; put e= time10.2;

stop; run; %mend;

%longcompiletime;

Richard DeVenezia


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