<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Re: request for simple macro to handle files in SAS Procedures</title>
    <link>https://communities.sas.com/t5/SAS-Procedures/request-for-simple-macro-to-handle-files/m-p/14050#M2140</link>
    <description>I know this way.......&lt;BR /&gt;
&lt;BR /&gt;
%macro import(path,file,dsn);&lt;BR /&gt;
proc import out = &amp;amp;dsn&lt;BR /&gt;
datafile = "&amp;amp;path..&amp;amp;file..csv"&lt;BR /&gt;
dbms = csv replace;&lt;BR /&gt;
getnames = yes;&lt;BR /&gt;
datarow = 2;&lt;BR /&gt;
run;&lt;BR /&gt;
%mend import;&lt;BR /&gt;
&lt;BR /&gt;
%import(c:\sas,employee,emp);&lt;BR /&gt;
%import(c:\sas\data,salaries,sal);&lt;BR /&gt;
%import(d:\programm,demographic,demo);&lt;BR /&gt;
.&lt;BR /&gt;
.&lt;BR /&gt;
.&lt;BR /&gt;
.</description>
    <pubDate>Thu, 02 Apr 2009 02:53:31 GMT</pubDate>
    <dc:creator>Alankar</dc:creator>
    <dc:date>2009-04-02T02:53:31Z</dc:date>
    <item>
      <title>request for simple macro to handle files</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/request-for-simple-macro-to-handle-files/m-p/14048#M2138</link>
      <description>Hi,&lt;BR /&gt;
i request you to  help about :&lt;BR /&gt;
&lt;BR /&gt;
i have 35 excel files,&lt;BR /&gt;
i would like to import all files into sas &lt;BR /&gt;
&lt;BR /&gt;
i am importing the files using the following code by changing the file path and name&lt;BR /&gt;
&lt;BR /&gt;
%let snameout=ilgeagles;&lt;BR /&gt;
PROC IMPORT OUT= mlspr09.&amp;amp;snameout&lt;BR /&gt;
            DATAFILE= "C:\fay\spring09 mails out\the illegal eagles spring09.csv" &lt;BR /&gt;
            DBMS=CSV REPLACE;&lt;BR /&gt;
     GETNAMES=YES;&lt;BR /&gt;
     DATAROW=2;&lt;BR /&gt;
RUN;&lt;BR /&gt;
&lt;BR /&gt;
but i need help in-regards to&lt;BR /&gt;
&lt;BR /&gt;
1. A macro that can import the files from various locations into one specified libary awith one datastep &lt;BR /&gt;
2. same macro can help me to prepare a dataset that should have all 35data sets together in it.&lt;BR /&gt;
some think like&lt;BR /&gt;
data target.required;&lt;BR /&gt;
set source.&amp;amp;a &amp;amp;b &amp;amp;c...........;&lt;BR /&gt;
run;&lt;BR /&gt;
&lt;BR /&gt;
&lt;BR /&gt;
Many Thanks in-advance,&lt;BR /&gt;
suresh</description>
      <pubDate>Wed, 01 Apr 2009 13:17:16 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/request-for-simple-macro-to-handle-files/m-p/14048#M2138</guid>
      <dc:creator>ssas</dc:creator>
      <dc:date>2009-04-01T13:17:16Z</dc:date>
    </item>
    <item>
      <title>Re: request for simple macro to handle files</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/request-for-simple-macro-to-handle-files/m-p/14049#M2139</link>
      <description>Clearly someone has put a bug in your ear that a macro approach is the only way -- I have to suggest otherwise.  Also, you are asking for someone to do programming that you cannot - unless I'm misunderstanding your request?&lt;BR /&gt;
&lt;BR /&gt;
As an alternative, consider the merits if a SAS DATA step approach, iteratively looping with a code such as (not involving macro logic, only SAS DATA step variables):&lt;BR /&gt;
&lt;BR /&gt;
FILENAME TEMPSAS temp;&lt;BR /&gt;
DATA _NULL_;&lt;BR /&gt;
FILE TEMPSAS;&lt;BR /&gt;
DO I=1 TO 35;  &lt;BR /&gt;
  * GENERATE SAS CODE TO A TEMP FILE TEMPSAS. ;&lt;BR /&gt;
  * USE PUT STATEMENT LOGIC TO THE OPEN FILE  AS NEEDED. ;&lt;BR /&gt;
END&lt;BR /&gt;
STOP;&lt;BR /&gt;
RUN;&lt;BR /&gt;
%INCLUDE TEMPSAS;&lt;BR /&gt;
RUN;&lt;BR /&gt;
&lt;BR /&gt;
&lt;BR /&gt;
Also, consider that if you avoid the macro approach, it may be a task you would consider undertaking -- possibly even one you could then support, modify, enhance going forward without having to depend on forum subscribers?&lt;BR /&gt;
&lt;BR /&gt;
Scott Barry&lt;BR /&gt;
SBBWorks, Inc.</description>
      <pubDate>Wed, 01 Apr 2009 15:03:50 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/request-for-simple-macro-to-handle-files/m-p/14049#M2139</guid>
      <dc:creator>sbb</dc:creator>
      <dc:date>2009-04-01T15:03:50Z</dc:date>
    </item>
    <item>
      <title>Re: request for simple macro to handle files</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/request-for-simple-macro-to-handle-files/m-p/14050#M2140</link>
      <description>I know this way.......&lt;BR /&gt;
&lt;BR /&gt;
%macro import(path,file,dsn);&lt;BR /&gt;
proc import out = &amp;amp;dsn&lt;BR /&gt;
datafile = "&amp;amp;path..&amp;amp;file..csv"&lt;BR /&gt;
dbms = csv replace;&lt;BR /&gt;
getnames = yes;&lt;BR /&gt;
datarow = 2;&lt;BR /&gt;
run;&lt;BR /&gt;
%mend import;&lt;BR /&gt;
&lt;BR /&gt;
%import(c:\sas,employee,emp);&lt;BR /&gt;
%import(c:\sas\data,salaries,sal);&lt;BR /&gt;
%import(d:\programm,demographic,demo);&lt;BR /&gt;
.&lt;BR /&gt;
.&lt;BR /&gt;
.&lt;BR /&gt;
.</description>
      <pubDate>Thu, 02 Apr 2009 02:53:31 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/request-for-simple-macro-to-handle-files/m-p/14050#M2140</guid>
      <dc:creator>Alankar</dc:creator>
      <dc:date>2009-04-02T02:53:31Z</dc:date>
    </item>
    <item>
      <title>Re: request for simple macro to handle files</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/request-for-simple-macro-to-handle-files/m-p/14051#M2141</link>
      <description>Thanks a lot  alankar and sbb for your help&lt;BR /&gt;
&lt;BR /&gt;
Thanks,&lt;BR /&gt;
sams</description>
      <pubDate>Thu, 02 Apr 2009 15:38:35 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/request-for-simple-macro-to-handle-files/m-p/14051#M2141</guid>
      <dc:creator>ssas</dc:creator>
      <dc:date>2009-04-02T15:38:35Z</dc:date>
    </item>
    <item>
      <title>Re: request for simple macro to handle files</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/request-for-simple-macro-to-handle-files/m-p/14052#M2142</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;This is great about the forum support, to get solutions to problems that I myself are unable to solve. I really like this forum. &lt;/P&gt;&lt;P&gt;Thank you all that have helped me in the past&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 22 Nov 2011 20:34:47 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/request-for-simple-macro-to-handle-files/m-p/14052#M2142</guid>
      <dc:creator>coba</dc:creator>
      <dc:date>2011-11-22T20:34:47Z</dc:date>
    </item>
    <item>
      <title>Re: request for simple macro to handle files</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/request-for-simple-macro-to-handle-files/m-p/14053#M2143</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;If your CSV files have a known structure then it is easier to just read them directly into a dataset.&lt;/P&gt;&lt;P&gt;You can use a wildcard (*) in the file name to find all csv files in a directory.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;%let dir=C:\fay\spring09 mails out;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;data spring09 ;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; infile "&amp;amp;dir\*.csv" dsd dlm=',' truncover ;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; input var1 var2 .... ;&lt;/P&gt;&lt;P&gt;run;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;You might need to add something to eliminate header lines when reading multiple files.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;data spring09;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; infile "&amp;amp;dir\*.csv" dsd dlm=',' truncover;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; input @;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; if _infile_ =: 'var1' then delete;&lt;/P&gt;&lt;P&gt;&amp;nbsp; input var1 var2 ... ;&lt;/P&gt;&lt;P&gt;run;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 23 Nov 2011 00:42:22 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/request-for-simple-macro-to-handle-files/m-p/14053#M2143</guid>
      <dc:creator>Tom</dc:creator>
      <dc:date>2011-11-23T00:42:22Z</dc:date>
    </item>
    <item>
      <title>Re: request for simple macro to handle files</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/request-for-simple-macro-to-handle-files/m-p/14054#M2144</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;The following code I wrote is a long time ago. I think you can use call execute() to optimize it.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;PRE&gt;%let subdir=D:\FTP\F-NASE09_18\;
filename dir pipe "dir &amp;amp;subdir.*.xls /B";
data _null_;
 infile dir truncover end=last;
 input filename&amp;nbsp; $100.;
 length f $ 8;
 f=filename;
 call symputx(cats('dsn',_n_),f);
 filename=cats("&amp;amp;subdir",filename);
 call symputx(cats('path',_n_),filename);
 if last then call symputx('nobs',_n_);
run;
%put _user_;

%macro import;
%do i=1 %to &amp;amp;nobs;
proc import datafile="&amp;amp;&amp;amp;path&amp;amp;i" out=&amp;amp;&amp;amp;dsn&amp;amp;i dbms=excel replace;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; getnames=no;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; mixed=yes;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; run;
%end;
%mend import;

%import



&lt;/PRE&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Ksharp&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 23 Nov 2011 02:21:04 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/request-for-simple-macro-to-handle-files/m-p/14054#M2144</guid>
      <dc:creator>Ksharp</dc:creator>
      <dc:date>2011-11-23T02:21:04Z</dc:date>
    </item>
    <item>
      <title>Re: request for simple macro to handle files</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/request-for-simple-macro-to-handle-files/m-p/14055#M2145</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P style="min-height: 8pt; height: 8pt;"&gt;I have similar question. But, I am trying to read multiple csv files from same folder with different file structure and files names in solaris environment. I need to check the files, and check if there are more than one row and then read the files every day, and append them. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P style="min-height: 8pt; height: 8pt;"&gt;I have created this macro to read the files. I would like to know if its possible to read all of them with a single macro. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Please advise if I am doing anything wrong in it. Thannks in Advance.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Mycode:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;%let path = "/sasdata/path/";&lt;/P&gt;&lt;P&gt;%let libto = library;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;options mprint;&lt;/P&gt;&lt;P&gt;%macro Readcsv (csvfile=);&lt;/P&gt;&lt;P&gt;/*&amp;nbsp;&amp;nbsp; %let hasRows=;*/&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; %let foundit = %sysfunc(exist(&amp;amp;path.&amp;amp;csvfile..csv)); &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; %if &amp;amp;foundit %then %do;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; filename csvTest "&amp;amp;path.&amp;amp;csvfile..csv";&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; data _null_;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; infile csvTest;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; input;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if _N_ eq 2 then do;&lt;/P&gt;&lt;P&gt;/*&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; call symput("hasRows", "yes");*/&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; stop;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; end;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; run;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; %end;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; proc import datafile=&amp;amp;path.&amp;amp;csvfile..csv &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; out=&amp;amp;libto..&amp;amp;csvfile replace;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; delimiter= ",";&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; getnames=yes;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; scan=yes&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; mixed=yes;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; run;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;/*&amp;nbsp;&amp;nbsp; %end;*/&lt;/P&gt;&lt;P&gt;%mend Readcsv;&lt;/P&gt;&lt;P&gt;%Readcsv (csvfile= file_xyz);&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;%Readcsv (csvfile= file_abc);&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 13 Mar 2012 01:19:25 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/request-for-simple-macro-to-handle-files/m-p/14055#M2145</guid>
      <dc:creator>jeeth79usa</dc:creator>
      <dc:date>2012-03-13T01:19:25Z</dc:date>
    </item>
    <item>
      <title>Re: request for simple macro to handle files</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/request-for-simple-macro-to-handle-files/m-p/14056#M2146</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;If your solaris environment support FILENAME + PIPE then the task will be very simple.&lt;/P&gt;&lt;P&gt;But I think call execute is a good one for your question.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;%let path = "/sasdata/path/";&lt;/P&gt;&lt;P&gt;%let libto = library;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;options mprint;&lt;/P&gt;&lt;P&gt;%macro Readcsv (csvfile=);&lt;/P&gt;&lt;P&gt;/*&amp;nbsp;&amp;nbsp; %let hasRows=;*/&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; %let foundit = %sysfunc(exist(&amp;amp;path.&amp;amp;csvfile..csv)); &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; %if &amp;amp;foundit %then %do;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; filename csvTest "&amp;amp;path.&amp;amp;csvfile..csv";&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; data _null_;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; infile csvTest;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; input;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if _N_ eq 2 then do;&lt;/P&gt;&lt;P&gt;/*&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; call symput("hasRows", "yes");*/&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; stop;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; end;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; run;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; %end;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; proc import datafile=&amp;amp;path.&amp;amp;csvfile..csv &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; out=&amp;amp;libto..&amp;amp;csvfile replace;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; delimiter= ",";&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; getnames=yes;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; scan=yes&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; mixed=yes;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; run;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;/*&amp;nbsp;&amp;nbsp; %end;*/&lt;/P&gt;&lt;P&gt;%mend Readcsv;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;data _null_;&lt;/P&gt;&lt;P&gt; input fname $40. ;&lt;/P&gt;&lt;P&gt; call execute('%Readcsv(csvfile=',strip(fname),')');&lt;/P&gt;&lt;P&gt;cards;&lt;/P&gt;&lt;P&gt;file_xyz&lt;/P&gt;&lt;P&gt;file_abc&lt;/P&gt;&lt;P&gt;;&lt;/P&gt;&lt;P&gt;run;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Ksharp&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 13 Mar 2012 03:22:34 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/request-for-simple-macro-to-handle-files/m-p/14056#M2146</guid>
      <dc:creator>Ksharp</dc:creator>
      <dc:date>2012-03-13T03:22:34Z</dc:date>
    </item>
    <item>
      <title>Re: request for simple macro to handle files</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/request-for-simple-macro-to-handle-files/m-p/14057#M2147</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hello Shap,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thannks for the suggestion. I am getting the following error when I used the call execute step. I tried different ways to accommodate the quotes, but still getting the same error. Can you please let me know if I am missing anything?&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I have tried these&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;call execute('%Readcsv(csvfile=',strip(fname),')');&lt;/P&gt;&lt;P&gt;call execute('%Readcsv(csvfile=','||strip(fname)||');&lt;/P&gt;&lt;P&gt;/*call execute('%Readcsv(csvfile=','||strip(fname)||');');*/&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ERROR 253-185: The EXECUTE subroutine call has too many arguments.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 16 Mar 2012 19:29:38 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/request-for-simple-macro-to-handle-files/m-p/14057#M2147</guid>
      <dc:creator>jeeth79usa</dc:creator>
      <dc:date>2012-03-16T19:29:38Z</dc:date>
    </item>
    <item>
      <title>Re: request for simple macro to handle files</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/request-for-simple-macro-to-handle-files/m-p/14058#M2148</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Sorry. It is my fault. I offer you the wrong code. It should use || instead of comma.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;call execute('%Readcsv(csvfile='||strip(fname)||')');&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;or try to use cats() function:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;call execute(cats('%Readcsv(csvfile=',fname,')'));&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Ksharp&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 19 Mar 2012 02:46:49 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/request-for-simple-macro-to-handle-files/m-p/14058#M2148</guid>
      <dc:creator>Ksharp</dc:creator>
      <dc:date>2012-03-19T02:46:49Z</dc:date>
    </item>
  </channel>
</rss>

