I am importing text file and want to build the file path based on the month and year from a prompt variable, then use the file path in an infile statement. Normally strings are my thing but apparently not in SAS. I have included a condensed version of my code to show what I am trying to accomplish. Any advice?
Data myDataSet ;
%let month = %sysfunc(putn(%sysfunc(month("&PV_ReportMonth."d)), z2.));
%let year = %sysfunc(year("&PV_ReportMonth."d));
/* I want to dynamically build the file name and path from a Date Prompt variable &PV_ReportMonth */
mytextfilepath = "C:\mypath\mytextfile"||@month||@day||".txt";
/* So if user chose May 2018. mytextfilepath would be "C:\mypath\mytextfile052018.txt"
/* And use it like this */
infile mytextfilepath DLM='|' firstobs=2;
input Var1 ~$10.
Var2 $
Yada $
Blah $;
run;
Since the macro statements are resolved before the data step runs, I like to keep them separate in code, for clarity:
%let month = %sysfunc(putn(%sysfunc(month("&PV_ReportMonth."d)), z2.));
%let year = %sysfunc(year("&PV_ReportMonth."d));
%let mytextfilepath = C:\mypath\mytextfile.&month.&day..txt;
Data myDataSet ;
infile "&mytextfilepath" DLM='|' firstobs=2;
input
Var1 ~$10.
Var2 $
Yada $
Blah $
;
run;
In reality, I would create the macro variable in a preceding data step with call symput, as that removes the need for the %sysfunc calls.
Since the macro statements are resolved before the data step runs, I like to keep them separate in code, for clarity:
%let month = %sysfunc(putn(%sysfunc(month("&PV_ReportMonth."d)), z2.));
%let year = %sysfunc(year("&PV_ReportMonth."d));
%let mytextfilepath = C:\mypath\mytextfile.&month.&day..txt;
Data myDataSet ;
infile "&mytextfilepath" DLM='|' firstobs=2;
input
Var1 ~$10.
Var2 $
Yada $
Blah $
;
run;
In reality, I would create the macro variable in a preceding data step with call symput, as that removes the need for the %sysfunc calls.
Perfect, Thank you Kurt! - it works perfect ![]()
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!
Check out this tutorial series to learn how to build your own steps in SAS Studio.
Find more tutorials on the SAS Users YouTube channel.
Ready to level-up your skills? Choose your own adventure.