BookmarkSubscribeRSS Feed
kjarvis
Fluorite | Level 6

Hello,

 

How can I read the file date from an external file in SAS?

 

I have a job that is already reading the fline name to load in multiple external files daily – I would like to include the date of the file in the data set I create.

 

For example if the file was created on 3/27/2017 - I would like the code to read in 3/27/2017 so I can add it to my data set.

 

I’m using User Written code in DI Studio to read in the file name – but I can't find how to read in the file date. Here’s the code I have so far:

--------------------------------------------------------

 

filename DIRLIST pipe 'dir "\\filelocation\*.csv" /b ';

data dirlist ;

   infile dirlist lrecl=200 truncover;

   input InFile_name $100.;

run;

 

data _null_;

   set dirlist end=end;

   count+1;

   call symputx('read'||put(count,7.-l),cats('filelocation',InFile_name));

   call symputx('dset'||put(count,7.-l),scan(InFile_name,1,'.'));

   if end then call symputx('max',count);

run;

 

options mprint symbolgen;

%macro readin;

   %do i=1 %to &max;

 

      data &&dset&i;

         infile "&&read&i" lrecl=1000 truncover dsd;

         input var1 $ var2 $ var3 $;

       run;

 

   %end;

%mend readin;

 

libname BICTMPOD '\\filelocation\TEMPODBC';

 

data BICTMPOD.work_In_File_Names;

  set dirlist;

 

run;

 

2 REPLIES 2
Reeza
Super User

In the DIR option make sure you specify the correct options to include the created/modified date in the output. Then in the data step you read in the variables needed.

 

Windows reference for DIR statement.

https://www.microsoft.com/resources/documentation/windows/xp/all/proddocs/en-us/dir.mspx?mfr=true

 

And here's a SAS note that illustrates how to do this:

http://support.sas.com/kb/38/267.html

 

You do know that you can read all text files at once if they have the same structure, if they're in the same folder use a wildcard.

https://communities.sas.com/t5/SAS-Communities-Library/How-do-I-write-a-macro-to-import-multiple-tex...

 

 

 

 

art297
Opal | Level 21

The following works for me (using Windows10):

 

filename DIRLIST pipe 'dir "c:\art\*.csv" /tw ';
data dirlist (keep=InFile_name date);
  informat date yymmdd10.;
  format date date9.;
  informat time time8.;
  format time time5.;
  informat size comma12.;
  informat InFile_name $100.;
  infile dirlist lrecl=200 truncover;
  input date time ampm $ size InFile_name;
  if not missing(date);
run;

Art, CEO, AnalystFinder.com

sas-innovate-2024.png

Don't miss out on SAS Innovate - Register now for the FREE Livestream!

Can't make it to Vegas? No problem! Watch our general sessions LIVE or on-demand starting April 17th. Hear from SAS execs, best-selling author Adam Grant, Hot Ones host Sean Evans, top tech journalist Kara Swisher, AI expert Cassie Kozyrkov, and the mind-blowing dance crew iLuminate! Plus, get access to over 20 breakout sessions.

 

Register now!

How to Concatenate Values

Learn how use the CAT functions in SAS to join values from multiple variables into a single value.

Find more tutorials on the SAS Users YouTube channel.

Click image to register for webinarClick image to register for webinar

Classroom Training Available!

Select SAS Training centers are offering in-person courses. View upcoming courses for:

View all other training opportunities.

Discussion stats
  • 2 replies
  • 1781 views
  • 3 likes
  • 3 in conversation