DATA Step, Macro, Functions and more

save file names in dataset

Reply
Super Contributor
Posts: 647

save file names in dataset

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.
Regular Contributor
Posts: 151

Re: save file names in dataset

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]
Regular Contributor
Posts: 151

Re: save file names in dataset

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]
Super User
Posts: 9,682

Re: save file names in dataset

Easy.


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


Ksharp
Super Contributor
Posts: 647

Re: save file names in dataset

Thanks!
Ask a Question
Discussion stats
  • 4 replies
  • 230 views
  • 0 likes
  • 3 in conversation