BookmarkSubscribeRSS Feed
SASPhile
Quartz | Level 8
for instance if c:\temp has the following files
test1.txt
test2.txt
text3.txt

How to create a dataset with test1.txt ,test2.txt and test3.txt are saved as values for variable dsn.

for instance dataset a will have a variable name dsn with test1.txt ,test2.txt and test3.txt as its values.
4 REPLIES 4
Oleg_L
Obsidian | Level 7
This code works on Windows XP.

[pre]
/* read files in directory */
%let input=d:\data\2011\sks;
%let dir=%str(%'dir %")&input.%str(\%" /A-D/B/ON%');
filename myfiles pipe %unquote(&dir);
data list1;
infile myfiles truncover;
input dsn $100.;
run;
filename myfiles clear;
[/pre]
Oleg_L
Obsidian | Level 7
There is another way.
[pre]
%let mypath=d:\data\2011\sks;
data mydir;
length dsn $ 100;
dir = "&mypath";
rc = filename("readdir","&mypath");
did = dopen("readdir");
memcount = dnum(did);
if memcount>0 then do;
do i = 1 to memcount;
dsn = dread(did,i);
output;
end;
end;
rc=dclose(did);
drop rc did memcount i;
run;
[/pre]
Ksharp
Super User
Easy.


[pre]
filename txt pipe 'dir c:\temp\test*.txt /b';
data txt;
infile txt length=len;
input dsn $varying100. len;
run;
[/pre]


Ksharp
SASPhile
Quartz | Level 8
Thanks!

SAS Innovate 2025: Register Now

Registration is now open for SAS Innovate 2025 , our biggest and most exciting global event of the year! Join us in Orlando, FL, May 6-9.
Sign up by Dec. 31 to get the 2024 rate of just $495.
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.

SAS Training: Just a Click Away

 Ready to level-up your skills? Choose your own adventure.

Browse our catalog!

Discussion stats
  • 4 replies
  • 1680 views
  • 0 likes
  • 3 in conversation