<?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: Append all csv file into one dataset in SAS Procedures</title>
    <link>https://communities.sas.com/t5/SAS-Procedures/Append-all-csv-file-into-one-dataset/m-p/178373#M45561</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;I don not like the proc import usage that way. lt is scanning first the data and than creating a datastep/input of data. &lt;BR /&gt;The result can be that with some creative input you are getting the sas-datasets in different structures.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;In you datasetnaming you have session_1 batch_1 etc and they are separated by a _&amp;nbsp;&amp;nbsp; Is the _ a variable separation or a level-naming separation.&lt;BR /&gt;As assuming it is replaced by real values I hope they will avoid the _ and the _ is being reliable as level indication.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;The following code, is tested with two csv files.&amp;nbsp; &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #0000ff;"&gt;filename impcsv ' /folders/myshortcuts/ikke';&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #0000ff;"&gt;data orderlst (keep= x y z q order part eval) ;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="color: #0000ff;"&gt;&amp;nbsp; length filename filenmcr $250 ;&amp;nbsp;&amp;nbsp;&amp;nbsp; retain _nfl -1 eovfl&amp;nbsp; ;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="color: #0000ff;"&gt;&amp;nbsp; length z $3 q $1 order part eval $16&amp;nbsp;&amp;nbsp; ; retain order part eval ; /* the targeted lays out */ &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="color: #0000ff;"&gt;&amp;nbsp; infile impcsv(12345*.csv) filename=filenmcr eov=eovfl eof=allfil end=endfl missover dsd dlm=";"&amp;nbsp; ;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="color: #0000ff;"&gt;&amp;nbsp; input @ ; &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="color: #0000ff;"&gt;&amp;nbsp;&amp;nbsp; if ( eovfl or _nfl &amp;lt;0 ) then link header; &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="color: #0000ff;"&gt;&amp;nbsp;&amp;nbsp; _nfl=_nfl+1;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="color: #0000ff;"&gt;&amp;nbsp;&amp;nbsp; input x y z q ;&amp;nbsp; &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="color: #0000ff;"&gt;&amp;nbsp;&amp;nbsp; output ;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="color: #0000ff;"&gt;&amp;nbsp;&amp;nbsp; if ( end ) then link tailer ; &lt;/SPAN&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &lt;BR /&gt;&lt;SPAN style="color: #0000ff;"&gt;return;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #0000ff;"&gt;header:&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="color: #0000ff;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; filename=filenmcr;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="color: #0000ff;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; put "-- " filename " --"; _nfl=1 ; eovfl=0; &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="color: #0000ff;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; input&amp;nbsp; ; /* advance one line, ignoring the header */ &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="color: #0000ff;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; part=scan(filename,-6,"_"); &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="color: #0000ff;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; order=scan(filename,-4,"_");&amp;nbsp; &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="color: #0000ff;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; eval=scan(filename,-3,"_");&amp;nbsp; &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="color: #0000ff;"&gt;return;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #0000ff;"&gt;tailer:&amp;nbsp; &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="color: #0000ff;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; put "total records" part _nfl / ; &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="color: #0000ff;"&gt;return;&amp;nbsp; &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="color: #0000ff;"&gt;allfil:&amp;nbsp; &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="color: #0000ff;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; put "processing done"l / ; &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="color: #0000ff;"&gt;return;&amp;nbsp; &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="color: #0000ff;"&gt;run;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #0000ff;"&gt;proc print;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="color: #0000ff;"&gt;run;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;NOTE: The infile library IMPCSV is:&lt;/P&gt;&lt;P class="sasNote"&gt;NOTE: The infile IMPCSV(12345*.csv) is:&lt;/P&gt;&lt;P class="sasNote"&gt;-- /folders/myshortcuts/ikke/12345_a_b_c_part-2_batch-1_session-1_reader-1_03aug12_dummy.csv&amp;nbsp; --&lt;/P&gt;&lt;P class="sasNote" id="sasLogNote4_1409249648186"&gt;&lt;/P&gt;&lt;P class="sasNote"&gt;NOTE: The infile IMPCSV(12345*.csv) is:&lt;/P&gt;&lt;P class="sasNote"&gt;-- /folders/myshortcuts/ikke/12345_a_b_c_part-2_batch-1_session-2_reader-2_03aug12_dummy.csv&amp;nbsp; --&lt;/P&gt;&lt;P class="sasSource"&gt;processing done&lt;/P&gt;&lt;P class="sasNote" id="sasLogNote5_1409249648186"&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; z&amp;nbsp;&amp;nbsp;&amp;nbsp; q&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; x&amp;nbsp;&amp;nbsp; y&lt;/P&gt;&lt;TABLE class="table"&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TH class="r rowheader" scope="row"&gt;&lt;SPAN style="font-family: andale mono,times;"&gt;1&lt;/SPAN&gt;&lt;/TH&gt;&lt;TD class="data"&gt;&lt;SPAN style="font-family: andale mono,times;"&gt;UNE&lt;/SPAN&gt;&lt;/TD&gt;&lt;TD class="data"&gt;&lt;SPAN style="font-family: andale mono,times;"&gt;N&lt;/SPAN&gt;&lt;/TD&gt;&lt;TD class="data"&gt;&lt;SPAN style="font-family: andale mono,times;"&gt;session-1&lt;/SPAN&gt;&lt;/TD&gt;&lt;TD class="data"&gt;&lt;SPAN style="font-family: andale mono,times;"&gt;part-2&lt;/SPAN&gt;&lt;/TD&gt;&lt;TD class="data"&gt;&lt;SPAN style="font-family: andale mono,times;"&gt;reader-1&lt;/SPAN&gt;&lt;/TD&gt;&lt;TD class="r data"&gt;&lt;SPAN style="font-family: andale mono,times;"&gt;1&lt;/SPAN&gt;&lt;/TD&gt;&lt;TD class="r data"&gt;&lt;SPAN style="font-family: andale mono,times;"&gt;560010101&lt;/SPAN&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TH class="r rowheader" scope="row"&gt;&lt;SPAN style="font-family: andale mono,times;"&gt;2&lt;/SPAN&gt;&lt;/TH&gt;&lt;TD class="data"&gt;&lt;SPAN style="font-family: andale mono,times;"&gt;ENH&lt;/SPAN&gt;&lt;/TD&gt;&lt;TD class="data"&gt;&lt;SPAN style="font-family: andale mono,times;"&gt;N&lt;/SPAN&gt;&lt;/TD&gt;&lt;TD class="data"&gt;&lt;SPAN style="font-family: andale mono,times;"&gt;session-1&lt;/SPAN&gt;&lt;/TD&gt;&lt;TD class="data"&gt;&lt;SPAN style="font-family: andale mono,times;"&gt;part-2&lt;/SPAN&gt;&lt;/TD&gt;&lt;TD class="data"&gt;&lt;SPAN style="font-family: andale mono,times;"&gt;reader-1&lt;/SPAN&gt;&lt;/TD&gt;&lt;TD class="r data"&gt;&lt;SPAN style="font-family: andale mono,times;"&gt;2&lt;/SPAN&gt;&lt;/TD&gt;&lt;TD class="r data"&gt;&lt;SPAN style="font-family: andale mono,times;"&gt;220010102&lt;/SPAN&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TH class="r rowheader" scope="row"&gt;&lt;SPAN style="font-family: andale mono,times;"&gt;3&lt;/SPAN&gt;&lt;/TH&gt;&lt;TD class="data"&gt;&lt;SPAN style="font-family: andale mono,times;"&gt;UNE&lt;/SPAN&gt;&lt;/TD&gt;&lt;TD class="data"&gt;&lt;SPAN style="font-family: andale mono,times;"&gt;N&lt;/SPAN&gt;&lt;/TD&gt;&lt;TD class="data"&gt;&lt;SPAN style="font-family: andale mono,times;"&gt;session-2&lt;/SPAN&gt;&lt;/TD&gt;&lt;TD class="data"&gt;&lt;SPAN style="font-family: andale mono,times;"&gt;part-2&lt;/SPAN&gt;&lt;/TD&gt;&lt;TD class="data"&gt;&lt;SPAN style="font-family: andale mono,times;"&gt;reader-2&lt;/SPAN&gt;&lt;/TD&gt;&lt;TD class="r data"&gt;&lt;SPAN style="font-family: andale mono,times;"&gt;1&lt;/SPAN&gt;&lt;/TD&gt;&lt;TD class="r data"&gt;&lt;SPAN style="font-family: andale mono,times;"&gt;560010101&lt;/SPAN&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TH class="r rowheader" scope="row"&gt;&lt;SPAN style="font-family: andale mono,times;"&gt;4&lt;/SPAN&gt;&lt;/TH&gt;&lt;TD class="data"&gt;&lt;SPAN style="font-family: andale mono,times;"&gt;ENH&lt;/SPAN&gt;&lt;/TD&gt;&lt;TD class="data"&gt;&lt;SPAN style="font-family: andale mono,times;"&gt;N&lt;/SPAN&gt;&lt;/TD&gt;&lt;TD class="data"&gt;&lt;SPAN style="font-family: andale mono,times;"&gt;session-2&lt;/SPAN&gt;&lt;/TD&gt;&lt;TD class="data"&gt;&lt;SPAN style="font-family: andale mono,times;"&gt;part-2&lt;/SPAN&gt;&lt;/TD&gt;&lt;TD class="data"&gt;&lt;SPAN style="font-family: andale mono,times;"&gt;reader-2&lt;/SPAN&gt;&lt;/TD&gt;&lt;TD class="r data"&gt;&lt;SPAN style="font-family: andale mono,times;"&gt;2&lt;/SPAN&gt;&lt;/TD&gt;&lt;TD class="r data"&gt;&lt;SPAN style="font-family: andale mono,times;"&gt;220010102&lt;/SPAN&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Thu, 28 Aug 2014 18:10:02 GMT</pubDate>
    <dc:creator>jakarman</dc:creator>
    <dc:date>2014-08-28T18:10:02Z</dc:date>
    <item>
      <title>Append all csv file into one dataset</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/Append-all-csv-file-into-one-dataset/m-p/178365#M45553</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi,&lt;/P&gt;&lt;P&gt;I have folder with N number of CSV files with same structural format but with different names for the csv file.&lt;/P&gt;&lt;P&gt;I would like to append all csv files into one final dataset.&lt;/P&gt;&lt;P&gt;The folder is dynamic folder and new csv files arrive on day to day…So would like to put in a macro such that every time program runs it would append all the existing csv files in one dataset.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thanks&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 28 Aug 2014 13:47:49 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/Append-all-csv-file-into-one-dataset/m-p/178365#M45553</guid>
      <dc:creator>rakeshvvv</dc:creator>
      <dc:date>2014-08-28T13:47:49Z</dc:date>
    </item>
    <item>
      <title>Re: Append all csv file into one dataset</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/Append-all-csv-file-into-one-dataset/m-p/178366#M45554</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Ok, but what is your specific question?&lt;/P&gt;&lt;P&gt;You seems already be on the right path using macros. Give it a shot and get back when have some specific questions.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 28 Aug 2014 13:51:20 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/Append-all-csv-file-into-one-dataset/m-p/178366#M45554</guid>
      <dc:creator>LinusH</dc:creator>
      <dc:date>2014-08-28T13:51:20Z</dc:date>
    </item>
    <item>
      <title>Re: Append all csv file into one dataset</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/Append-all-csv-file-into-one-dataset/m-p/178367#M45555</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Does it have headings?&amp;nbsp; If not its straightforward:&lt;/P&gt;&lt;P&gt;x 'copy "s:\temp\rob\*.csv" "s:\temp\rob\total.csv"';&lt;/P&gt;&lt;P&gt;Then you program can import just one file (note I would put the above in a batch file and have a delete the total.csv before re-qriting it otherwise it will also get included).&lt;/P&gt;&lt;P&gt;So use the dos copy to create a complete file. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;If it does have headings then its the same thing, you just need to either do a bit of scripting in the batch file, or post-process in your dataset.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 28 Aug 2014 13:59:24 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/Append-all-csv-file-into-one-dataset/m-p/178367#M45555</guid>
      <dc:creator>RW9</dc:creator>
      <dc:date>2014-08-28T13:59:24Z</dc:date>
    </item>
    <item>
      <title>Re: Append all csv file into one dataset</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/Append-all-csv-file-into-one-dataset/m-p/178368#M45556</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi RW9!&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Can you give syntax how it work in sas....I coudnt do it in mine......&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;x 'copy "s:\temp\rob\*.csv" "s:\temp\rob\total.csv"';&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 28 Aug 2014 14:28:17 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/Append-all-csv-file-into-one-dataset/m-p/178368#M45556</guid>
      <dc:creator>rakeshvvv</dc:creator>
      <dc:date>2014-08-28T14:28:17Z</dc:date>
    </item>
    <item>
      <title>Re: Append all csv file into one dataset</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/Append-all-csv-file-into-one-dataset/m-p/178369#M45557</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;What couldn't you do?&amp;nbsp; The X syntax is base SAS.&amp;nbsp; It sends the command within quotes to the system for processing.&amp;nbsp; If you don't have admin rights to do that or X is locked out then just create a batch file outside of sas.&lt;/P&gt;&lt;P&gt;E.g.&lt;/P&gt;&lt;P&gt;In Windows explorer where your csv files are, right click create new text document.&amp;nbsp; Type in:&lt;/P&gt;&lt;P&gt;copy "s:\temp\rob\*.csv" "s:\temp\rob\total.csv"&lt;/P&gt;&lt;P&gt;Changing the paths obviously.&lt;/P&gt;&lt;P&gt;Now right click and rename it Job.bat.&amp;nbsp; Yes, extension of .bat.&lt;/P&gt;&lt;P&gt;When you double click on it a black screen will pop up - that is DOS - it will process each file and then close or wait to be closed.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 28 Aug 2014 14:39:09 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/Append-all-csv-file-into-one-dataset/m-p/178369#M45557</guid>
      <dc:creator>RW9</dc:creator>
      <dc:date>2014-08-28T14:39:09Z</dc:date>
    </item>
    <item>
      <title>Re: Append all csv file into one dataset</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/Append-all-csv-file-into-one-dataset/m-p/178370#M45558</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;No need for os commands sas is supporting wildcards&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;filename impdir '/folders/myfolders' ;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* define you input location */ *&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;data _null ;&lt;BR /&gt;&amp;nbsp; length filename filenmcr $250 ;&lt;BR /&gt;&amp;nbsp; retain _nfl 1 eovfl 1 ;&lt;BR /&gt;&amp;nbsp; infile impdir(*.csv) filename=filenmcr eov=eovfl eof=tailer end=endfl&amp;nbsp; ;&amp;nbsp;&amp;nbsp; /* read all csv files */ &lt;BR /&gt;&amp;nbsp; input&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /*&amp;nbsp; your input statments for the csv file(s)&amp;nbsp; */&lt;BR /&gt;&amp;nbsp;&amp;nbsp; ;&amp;nbsp;&amp;nbsp; &lt;BR /&gt;&amp;nbsp;&amp;nbsp; _nfl=_nfl+1;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; if ( eovfl ) then link header; eovfl=0; &lt;BR /&gt;return;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;header:&amp;nbsp; /* just some processing to show wich csv files have been processed */ &lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; filename=filenmcr;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; put "-- " filename " --"; _nfl=1 ;&lt;BR /&gt;return;&lt;BR /&gt;tailer:&amp;nbsp; &lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; put "total records" _nfl / ; &lt;BR /&gt;return;&amp;nbsp; &lt;BR /&gt;run;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 28 Aug 2014 14:47:44 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/Append-all-csv-file-into-one-dataset/m-p/178370#M45558</guid>
      <dc:creator>jakarman</dc:creator>
      <dc:date>2014-08-28T14:47:44Z</dc:date>
    </item>
    <item>
      <title>Re: Append all csv file into one dataset</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/Append-all-csv-file-into-one-dataset/m-p/178371#M45559</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt; I have CSV file with following name convention &lt;SPAN style="color: red; background: yellow;"&gt;12345_a_b_c_part_2_batch_1_session_1_reader_1_03aug12_dummy.csv&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt; x;y;z;q----first row in csv---should be made column name&lt;/P&gt;&lt;P&gt;1;560010101;UNE;N----records or values for the above x,y,z,q variables&lt;/P&gt;&lt;P&gt;2;220010102;ENH;N----- records or values for the above x,y,z,q variables&lt;/P&gt;&lt;P&gt;I have to create dataset from CSV FILE…..part&amp;nbsp; of the name of the csv file should go variables like&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: red; background: yellow;"&gt;batch_1&lt;/SPAN&gt;&lt;SPAN style="color: red;"&gt;= name of the dataset&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: red;"&gt;ord=1(coming from session in the name of csv)&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: red;"&gt;part=2(coming from part_2 in the name of csv)&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: red;"&gt;eval=1((coming from reader_1 in the name of csv)&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: red;"&gt;the dataset batch_ 1 should be like this&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: red;"&gt;x&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; y&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; z&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; q&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ord&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; part&amp;nbsp;&amp;nbsp;&amp;nbsp; eval&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;1&amp;nbsp;&amp;nbsp; 560010101&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; une&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; n&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 2&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 28 Aug 2014 14:54:17 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/Append-all-csv-file-into-one-dataset/m-p/178371#M45559</guid>
      <dc:creator>rakeshvvv</dc:creator>
      <dc:date>2014-08-28T14:54:17Z</dc:date>
    </item>
    <item>
      <title>Re: Append all csv file into one dataset</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/Append-all-csv-file-into-one-dataset/m-p/178372#M45560</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;I have written parial code and would like to know&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I would like to know how to run this macro for all the csv file files located in the folder. All csv file are of same structural format.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;libname x 'library location;&lt;/P&gt;&lt;P&gt;option spool;&lt;/P&gt;&lt;P&gt;%let x=/by/data/ad/14607_randlist_2nd_read_part_2_batch_1_session_1_reader_1_03aug12_dummy.csv;&lt;/P&gt;&lt;P&gt;(location of folder)&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;%macro test(a=);&lt;/P&gt;&lt;P&gt;PROC IMPORT OUT=x.&amp;amp;a&lt;/P&gt;&lt;P&gt; DATAFILE="&amp;amp;x"&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; DBMS=CSV REPLACE;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; delimiter = ";";&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; GETNAMES=YES;&lt;/P&gt;&lt;P&gt;RUN;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;data x.&amp;amp;a;&lt;/P&gt;&lt;P&gt;set x.&amp;amp;a;&lt;/P&gt;&lt;P&gt;a="&amp;amp;x";&lt;/P&gt;&lt;P&gt;part=substr(a,89,1);&lt;/P&gt;&lt;P&gt;order=substr(a,107,1);&lt;/P&gt;&lt;P&gt;eval=substr(a,116,1);&lt;/P&gt;&lt;P&gt;drop a;&lt;/P&gt;&lt;P&gt;run;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;%mend;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;%test(a=x);&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 28 Aug 2014 17:03:07 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/Append-all-csv-file-into-one-dataset/m-p/178372#M45560</guid>
      <dc:creator>rakeshvvv</dc:creator>
      <dc:date>2014-08-28T17:03:07Z</dc:date>
    </item>
    <item>
      <title>Re: Append all csv file into one dataset</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/Append-all-csv-file-into-one-dataset/m-p/178373#M45561</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;I don not like the proc import usage that way. lt is scanning first the data and than creating a datastep/input of data. &lt;BR /&gt;The result can be that with some creative input you are getting the sas-datasets in different structures.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;In you datasetnaming you have session_1 batch_1 etc and they are separated by a _&amp;nbsp;&amp;nbsp; Is the _ a variable separation or a level-naming separation.&lt;BR /&gt;As assuming it is replaced by real values I hope they will avoid the _ and the _ is being reliable as level indication.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;The following code, is tested with two csv files.&amp;nbsp; &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #0000ff;"&gt;filename impcsv ' /folders/myshortcuts/ikke';&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #0000ff;"&gt;data orderlst (keep= x y z q order part eval) ;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="color: #0000ff;"&gt;&amp;nbsp; length filename filenmcr $250 ;&amp;nbsp;&amp;nbsp;&amp;nbsp; retain _nfl -1 eovfl&amp;nbsp; ;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="color: #0000ff;"&gt;&amp;nbsp; length z $3 q $1 order part eval $16&amp;nbsp;&amp;nbsp; ; retain order part eval ; /* the targeted lays out */ &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="color: #0000ff;"&gt;&amp;nbsp; infile impcsv(12345*.csv) filename=filenmcr eov=eovfl eof=allfil end=endfl missover dsd dlm=";"&amp;nbsp; ;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="color: #0000ff;"&gt;&amp;nbsp; input @ ; &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="color: #0000ff;"&gt;&amp;nbsp;&amp;nbsp; if ( eovfl or _nfl &amp;lt;0 ) then link header; &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="color: #0000ff;"&gt;&amp;nbsp;&amp;nbsp; _nfl=_nfl+1;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="color: #0000ff;"&gt;&amp;nbsp;&amp;nbsp; input x y z q ;&amp;nbsp; &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="color: #0000ff;"&gt;&amp;nbsp;&amp;nbsp; output ;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="color: #0000ff;"&gt;&amp;nbsp;&amp;nbsp; if ( end ) then link tailer ; &lt;/SPAN&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &lt;BR /&gt;&lt;SPAN style="color: #0000ff;"&gt;return;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #0000ff;"&gt;header:&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="color: #0000ff;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; filename=filenmcr;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="color: #0000ff;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; put "-- " filename " --"; _nfl=1 ; eovfl=0; &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="color: #0000ff;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; input&amp;nbsp; ; /* advance one line, ignoring the header */ &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="color: #0000ff;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; part=scan(filename,-6,"_"); &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="color: #0000ff;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; order=scan(filename,-4,"_");&amp;nbsp; &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="color: #0000ff;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; eval=scan(filename,-3,"_");&amp;nbsp; &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="color: #0000ff;"&gt;return;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #0000ff;"&gt;tailer:&amp;nbsp; &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="color: #0000ff;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; put "total records" part _nfl / ; &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="color: #0000ff;"&gt;return;&amp;nbsp; &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="color: #0000ff;"&gt;allfil:&amp;nbsp; &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="color: #0000ff;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; put "processing done"l / ; &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="color: #0000ff;"&gt;return;&amp;nbsp; &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="color: #0000ff;"&gt;run;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #0000ff;"&gt;proc print;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="color: #0000ff;"&gt;run;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;NOTE: The infile library IMPCSV is:&lt;/P&gt;&lt;P class="sasNote"&gt;NOTE: The infile IMPCSV(12345*.csv) is:&lt;/P&gt;&lt;P class="sasNote"&gt;-- /folders/myshortcuts/ikke/12345_a_b_c_part-2_batch-1_session-1_reader-1_03aug12_dummy.csv&amp;nbsp; --&lt;/P&gt;&lt;P class="sasNote" id="sasLogNote4_1409249648186"&gt;&lt;/P&gt;&lt;P class="sasNote"&gt;NOTE: The infile IMPCSV(12345*.csv) is:&lt;/P&gt;&lt;P class="sasNote"&gt;-- /folders/myshortcuts/ikke/12345_a_b_c_part-2_batch-1_session-2_reader-2_03aug12_dummy.csv&amp;nbsp; --&lt;/P&gt;&lt;P class="sasSource"&gt;processing done&lt;/P&gt;&lt;P class="sasNote" id="sasLogNote5_1409249648186"&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; z&amp;nbsp;&amp;nbsp;&amp;nbsp; q&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; x&amp;nbsp;&amp;nbsp; y&lt;/P&gt;&lt;TABLE class="table"&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TH class="r rowheader" scope="row"&gt;&lt;SPAN style="font-family: andale mono,times;"&gt;1&lt;/SPAN&gt;&lt;/TH&gt;&lt;TD class="data"&gt;&lt;SPAN style="font-family: andale mono,times;"&gt;UNE&lt;/SPAN&gt;&lt;/TD&gt;&lt;TD class="data"&gt;&lt;SPAN style="font-family: andale mono,times;"&gt;N&lt;/SPAN&gt;&lt;/TD&gt;&lt;TD class="data"&gt;&lt;SPAN style="font-family: andale mono,times;"&gt;session-1&lt;/SPAN&gt;&lt;/TD&gt;&lt;TD class="data"&gt;&lt;SPAN style="font-family: andale mono,times;"&gt;part-2&lt;/SPAN&gt;&lt;/TD&gt;&lt;TD class="data"&gt;&lt;SPAN style="font-family: andale mono,times;"&gt;reader-1&lt;/SPAN&gt;&lt;/TD&gt;&lt;TD class="r data"&gt;&lt;SPAN style="font-family: andale mono,times;"&gt;1&lt;/SPAN&gt;&lt;/TD&gt;&lt;TD class="r data"&gt;&lt;SPAN style="font-family: andale mono,times;"&gt;560010101&lt;/SPAN&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TH class="r rowheader" scope="row"&gt;&lt;SPAN style="font-family: andale mono,times;"&gt;2&lt;/SPAN&gt;&lt;/TH&gt;&lt;TD class="data"&gt;&lt;SPAN style="font-family: andale mono,times;"&gt;ENH&lt;/SPAN&gt;&lt;/TD&gt;&lt;TD class="data"&gt;&lt;SPAN style="font-family: andale mono,times;"&gt;N&lt;/SPAN&gt;&lt;/TD&gt;&lt;TD class="data"&gt;&lt;SPAN style="font-family: andale mono,times;"&gt;session-1&lt;/SPAN&gt;&lt;/TD&gt;&lt;TD class="data"&gt;&lt;SPAN style="font-family: andale mono,times;"&gt;part-2&lt;/SPAN&gt;&lt;/TD&gt;&lt;TD class="data"&gt;&lt;SPAN style="font-family: andale mono,times;"&gt;reader-1&lt;/SPAN&gt;&lt;/TD&gt;&lt;TD class="r data"&gt;&lt;SPAN style="font-family: andale mono,times;"&gt;2&lt;/SPAN&gt;&lt;/TD&gt;&lt;TD class="r data"&gt;&lt;SPAN style="font-family: andale mono,times;"&gt;220010102&lt;/SPAN&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TH class="r rowheader" scope="row"&gt;&lt;SPAN style="font-family: andale mono,times;"&gt;3&lt;/SPAN&gt;&lt;/TH&gt;&lt;TD class="data"&gt;&lt;SPAN style="font-family: andale mono,times;"&gt;UNE&lt;/SPAN&gt;&lt;/TD&gt;&lt;TD class="data"&gt;&lt;SPAN style="font-family: andale mono,times;"&gt;N&lt;/SPAN&gt;&lt;/TD&gt;&lt;TD class="data"&gt;&lt;SPAN style="font-family: andale mono,times;"&gt;session-2&lt;/SPAN&gt;&lt;/TD&gt;&lt;TD class="data"&gt;&lt;SPAN style="font-family: andale mono,times;"&gt;part-2&lt;/SPAN&gt;&lt;/TD&gt;&lt;TD class="data"&gt;&lt;SPAN style="font-family: andale mono,times;"&gt;reader-2&lt;/SPAN&gt;&lt;/TD&gt;&lt;TD class="r data"&gt;&lt;SPAN style="font-family: andale mono,times;"&gt;1&lt;/SPAN&gt;&lt;/TD&gt;&lt;TD class="r data"&gt;&lt;SPAN style="font-family: andale mono,times;"&gt;560010101&lt;/SPAN&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TH class="r rowheader" scope="row"&gt;&lt;SPAN style="font-family: andale mono,times;"&gt;4&lt;/SPAN&gt;&lt;/TH&gt;&lt;TD class="data"&gt;&lt;SPAN style="font-family: andale mono,times;"&gt;ENH&lt;/SPAN&gt;&lt;/TD&gt;&lt;TD class="data"&gt;&lt;SPAN style="font-family: andale mono,times;"&gt;N&lt;/SPAN&gt;&lt;/TD&gt;&lt;TD class="data"&gt;&lt;SPAN style="font-family: andale mono,times;"&gt;session-2&lt;/SPAN&gt;&lt;/TD&gt;&lt;TD class="data"&gt;&lt;SPAN style="font-family: andale mono,times;"&gt;part-2&lt;/SPAN&gt;&lt;/TD&gt;&lt;TD class="data"&gt;&lt;SPAN style="font-family: andale mono,times;"&gt;reader-2&lt;/SPAN&gt;&lt;/TD&gt;&lt;TD class="r data"&gt;&lt;SPAN style="font-family: andale mono,times;"&gt;2&lt;/SPAN&gt;&lt;/TD&gt;&lt;TD class="r data"&gt;&lt;SPAN style="font-family: andale mono,times;"&gt;220010102&lt;/SPAN&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 28 Aug 2014 18:10:02 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/Append-all-csv-file-into-one-dataset/m-p/178373#M45561</guid>
      <dc:creator>jakarman</dc:creator>
      <dc:date>2014-08-28T18:10:02Z</dc:date>
    </item>
    <item>
      <title>Re: Append all csv file into one dataset</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/Append-all-csv-file-into-one-dataset/m-p/178374#M45562</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Perfect Sir...that worked perfect for me.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thanks&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Raghav&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 28 Aug 2014 19:19:52 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/Append-all-csv-file-into-one-dataset/m-p/178374#M45562</guid>
      <dc:creator>rakeshvvv</dc:creator>
      <dc:date>2014-08-28T19:19:52Z</dc:date>
    </item>
  </channel>
</rss>

