You can use a wildcard in the filename.
You could just try to read ALL of the files that match the pattern. You can use the FILENAME= option on the INFILE statement to find the name of the file you are reading.
data logs;
length fname filename $200;
infile "&path./log_%sysfunc(today(), ddmmyyN8.)*.log" filename=fname ;
input;
filename=fname;
lineno+1;
if filename ne lag(filename) then lineno=1;
line=_infile_;
run;
filename log "&path.\log_%sysfunc(today(), ddmmyyN8.) *.log";
@Crt wrote:
Hi everyone!
I am trying to read the latest file from a folder.
Requirements:
1) The folder stores files as:
log_26112021 123456.log
2) The file format is the name_date numbers. There is a space between the date and the numbers.
What I have done so far is:
filename log "&path.\log_%sysfunc(today(), ddmmyyN8.).log';
What I want to do is to read the rest of the file name, whatever it is including the space and the numbers. Any suggestions?
Thank you in advance!
You can use a wildcard in the filename.
You could just try to read ALL of the files that match the pattern. You can use the FILENAME= option on the INFILE statement to find the name of the file you are reading.
data logs;
length fname filename $200;
infile "&path./log_%sysfunc(today(), ddmmyyN8.)*.log" filename=fname ;
input;
filename=fname;
lineno+1;
if filename ne lag(filename) then lineno=1;
line=_infile_;
run;
April 27 – 30 | Gaylord Texan | Grapevine, Texas
Walk in ready to learn. Walk out ready to deliver. This is the data and AI conference you can't afford to miss.
Register now and lock in 2025 pricing—just $495!
Still thinking about your presentation idea? The submission deadline has been extended to Friday, Nov. 14, at 11:59 p.m. ET.
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.
Ready to level-up your skills? Choose your own adventure.