<?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: Limiting the lines of code needed to call macro in SAS Programming</title>
    <link>https://communities.sas.com/t5/SAS-Programming/Limiting-the-lines-of-code-needed-to-call-macro/m-p/80355#M17291</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;%MACRO BIGfile (form, Version);&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;data _null_;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; set List;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; file "&amp;amp;winsteps.\Project_V&amp;amp;version._&amp;amp;form..big" Lrecl=50000;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if _n_ = 1 then do;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; put '&amp;amp;INST';&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; put "TITLE=Project Anchor Run Calibration: Version &amp;amp;version. Form &amp;amp;form.";&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; put "ITEM1=1";&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; put "LCONV=0.000001";&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; put "RCONV=0.001";&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; put "DATA=Project_V&amp;amp;version._&amp;amp;form..dat";&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; put "NI=38";&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; put "XWIDE = 1";&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; put "CODES = 0123456789";&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; put "GROUPS=0";&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; put 'MUCON=50';&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; put 'STKEEP=Y';&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; put "IFILE=Project_V&amp;amp;version._&amp;amp;form..itm";&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; put "SFILE=Project_V&amp;amp;version._&amp;amp;form..san";&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; put "DISFILE=Project_V&amp;amp;version._&amp;amp;form..dis";&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; put "IAFILE=Project.iaf";&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; put "SAFILE=Project.saf";&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; put 'TFILE=*';&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; put '0';&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; put '3';&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; put '12';&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; put '14';&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; put '20';&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; put '*';&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; put 'BATCH=Y';&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; put '&amp;amp;END';&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; end;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; put&amp;nbsp;&amp;nbsp;&amp;nbsp; @1 Name;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if _n_ = 38 then put "END NAMES";&lt;/P&gt;&lt;P&gt;run;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;data BatchFile;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; format ANC_Batch $120.;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ANC_Batch = "c:\winsteps374\winsteps.exe Project_V&amp;amp;version._&amp;amp;form..big Project_V&amp;amp;version._&amp;amp;form..out";&lt;/P&gt;&lt;P&gt;run;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Proc Append Base = BatchFile2 new = BatchFile;&lt;/P&gt;&lt;P&gt;run;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;data _null_;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; set BatchFile2;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; file "&amp;amp;winsteps.\Anchor Run.bat" Lrecl=50000;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; put&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; @1 ANC_Batch;&lt;/P&gt;&lt;P&gt;run;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;%MEND BIGFILE;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;%Do i=1 %to 4;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; %Do j=1 %to 50;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;%BIGFile (&amp;amp;j, &amp;amp;i);&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; %end;&lt;/P&gt;&lt;P&gt;%end;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;There is my code &amp;lt;for the most part&amp;gt;.&amp;nbsp; I am attempting to create 200 different files and then create a .bat file to run them for me.&amp;nbsp; I have everything running fine, I just figured there had to be a way I could do it differently and more efficiently.&amp;nbsp; The error I get concerns the %end statements.&amp;nbsp; It says the %end statement is not valid in open code.&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Mon, 26 Nov 2012 18:07:09 GMT</pubDate>
    <dc:creator>Milo08</dc:creator>
    <dc:date>2012-11-26T18:07:09Z</dc:date>
    <item>
      <title>Limiting the lines of code needed to call macro</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Limiting-the-lines-of-code-needed-to-call-macro/m-p/80352#M17288</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;I want to make my code more parsimonious.&amp;nbsp; My Macro uses two variables: Y and Z and they ranges as follows: &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Y = {1-4}&lt;/P&gt;&lt;P&gt;Z = {1-50}&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;When calling the MACRO I am currently doing it like this:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;%MACRO One (Y, Z);&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Code code code&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;%One (1,1);&lt;/P&gt;&lt;P&gt;%One (1,2);&lt;/P&gt;&lt;P&gt;%One (1,3);&lt;/P&gt;&lt;P&gt;....&lt;/P&gt;&lt;P&gt;%One (4,50);&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;It takes up 200 lines of code to call the macro.&amp;nbsp; There has to be a better way.&amp;nbsp; I tried using %do i = 1 %to 4 and %do j=1 %to 50 between where I mend the macro and where I call it; but it did not work.&amp;nbsp; Any ideas?&amp;nbsp; Thanks as always SAS experts!!!&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 26 Nov 2012 17:32:10 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Limiting-the-lines-of-code-needed-to-call-macro/m-p/80352#M17288</guid>
      <dc:creator>Milo08</dc:creator>
      <dc:date>2012-11-26T17:32:10Z</dc:date>
    </item>
    <item>
      <title>Re: Limiting the lines of code needed to call macro</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Limiting-the-lines-of-code-needed-to-call-macro/m-p/80353#M17289</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Create another macro to loop through it.&lt;/P&gt;&lt;P&gt;But ideally you should change your original macro to handle it.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;%macro one(ymin=1, ymax=4, zmin=1, zmax=50);&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;%do i=&amp;amp;ymin %to &amp;amp;ymax;&lt;/P&gt;&lt;P&gt;% do j=&amp;amp;zmin %to &amp;amp;zmax;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;%one(&amp;amp;i, &amp;amp;j);&lt;/P&gt;&lt;P&gt;*OR Original&amp;nbsp; macro code goes here;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;%end;&lt;/P&gt;&lt;P&gt;%end;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;%mend;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 26 Nov 2012 17:37:04 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Limiting-the-lines-of-code-needed-to-call-macro/m-p/80353#M17289</guid>
      <dc:creator>Reeza</dc:creator>
      <dc:date>2012-11-26T17:37:04Z</dc:date>
    </item>
    <item>
      <title>Re: Limiting the lines of code needed to call macro</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Limiting-the-lines-of-code-needed-to-call-macro/m-p/80354#M17290</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;The question, I think, is why you couldn't get it to work using a %do loop.&amp;nbsp; What kind of error(s) did you get?&amp;nbsp; I think the problem is probably within the macro that you wrote.&amp;nbsp; It would help if you posted it and some example data you are addressing.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 26 Nov 2012 17:57:40 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Limiting-the-lines-of-code-needed-to-call-macro/m-p/80354#M17290</guid>
      <dc:creator>art297</dc:creator>
      <dc:date>2012-11-26T17:57:40Z</dc:date>
    </item>
    <item>
      <title>Re: Limiting the lines of code needed to call macro</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Limiting-the-lines-of-code-needed-to-call-macro/m-p/80355#M17291</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;%MACRO BIGfile (form, Version);&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;data _null_;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; set List;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; file "&amp;amp;winsteps.\Project_V&amp;amp;version._&amp;amp;form..big" Lrecl=50000;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if _n_ = 1 then do;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; put '&amp;amp;INST';&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; put "TITLE=Project Anchor Run Calibration: Version &amp;amp;version. Form &amp;amp;form.";&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; put "ITEM1=1";&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; put "LCONV=0.000001";&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; put "RCONV=0.001";&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; put "DATA=Project_V&amp;amp;version._&amp;amp;form..dat";&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; put "NI=38";&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; put "XWIDE = 1";&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; put "CODES = 0123456789";&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; put "GROUPS=0";&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; put 'MUCON=50';&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; put 'STKEEP=Y';&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; put "IFILE=Project_V&amp;amp;version._&amp;amp;form..itm";&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; put "SFILE=Project_V&amp;amp;version._&amp;amp;form..san";&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; put "DISFILE=Project_V&amp;amp;version._&amp;amp;form..dis";&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; put "IAFILE=Project.iaf";&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; put "SAFILE=Project.saf";&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; put 'TFILE=*';&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; put '0';&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; put '3';&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; put '12';&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; put '14';&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; put '20';&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; put '*';&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; put 'BATCH=Y';&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; put '&amp;amp;END';&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; end;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; put&amp;nbsp;&amp;nbsp;&amp;nbsp; @1 Name;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if _n_ = 38 then put "END NAMES";&lt;/P&gt;&lt;P&gt;run;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;data BatchFile;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; format ANC_Batch $120.;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ANC_Batch = "c:\winsteps374\winsteps.exe Project_V&amp;amp;version._&amp;amp;form..big Project_V&amp;amp;version._&amp;amp;form..out";&lt;/P&gt;&lt;P&gt;run;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Proc Append Base = BatchFile2 new = BatchFile;&lt;/P&gt;&lt;P&gt;run;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;data _null_;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; set BatchFile2;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; file "&amp;amp;winsteps.\Anchor Run.bat" Lrecl=50000;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; put&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; @1 ANC_Batch;&lt;/P&gt;&lt;P&gt;run;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;%MEND BIGFILE;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;%Do i=1 %to 4;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; %Do j=1 %to 50;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;%BIGFile (&amp;amp;j, &amp;amp;i);&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; %end;&lt;/P&gt;&lt;P&gt;%end;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;There is my code &amp;lt;for the most part&amp;gt;.&amp;nbsp; I am attempting to create 200 different files and then create a .bat file to run them for me.&amp;nbsp; I have everything running fine, I just figured there had to be a way I could do it differently and more efficiently.&amp;nbsp; The error I get concerns the %end statements.&amp;nbsp; It says the %end statement is not valid in open code.&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 26 Nov 2012 18:07:09 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Limiting-the-lines-of-code-needed-to-call-macro/m-p/80355#M17291</guid>
      <dc:creator>Milo08</dc:creator>
      <dc:date>2012-11-26T18:07:09Z</dc:date>
    </item>
    <item>
      <title>Re: Limiting the lines of code needed to call macro</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Limiting-the-lines-of-code-needed-to-call-macro/m-p/80356#M17292</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;You can probably eliminate the macro code completely. You can use the FILEVAR option of the FILE statement to have a single DATA step create multiple files.&amp;nbsp; &lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 26 Nov 2012 18:15:10 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Limiting-the-lines-of-code-needed-to-call-macro/m-p/80356#M17292</guid>
      <dc:creator>Tom</dc:creator>
      <dc:date>2012-11-26T18:15:10Z</dc:date>
    </item>
    <item>
      <title>Re: Limiting the lines of code needed to call macro</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Limiting-the-lines-of-code-needed-to-call-macro/m-p/80357#M17293</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;My apologies Tom.&amp;nbsp; I have never used a filevar option before, thus I am unfamiliar with it.&amp;nbsp; Would it be possible for you to show me an example using my example code above?&amp;nbsp; Thank you as always for all your help!!!&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 26 Nov 2012 18:36:36 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Limiting-the-lines-of-code-needed-to-call-macro/m-p/80357#M17293</guid>
      <dc:creator>Milo08</dc:creator>
      <dc:date>2012-11-26T18:36:36Z</dc:date>
    </item>
    <item>
      <title>Re: Limiting the lines of code needed to call macro</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Limiting-the-lines-of-code-needed-to-call-macro/m-p/80358#M17294</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;I think it would be easier for Tom, or any of us, to answer the question about using the filevar option if you posted a small example file and what you were trying to do with it.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;As for the errors, I'm surprised they were the only errors, as your macro also includes a couple of global macro variables that would have had to have been created before the macro could run.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Like Fareeza had suggested, you would just have to put the two %do loops at the start of your macro, and the two %end statements at the bottom of your macro.&amp;nbsp; %do can only be used within a SAS macro.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 26 Nov 2012 18:57:18 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Limiting-the-lines-of-code-needed-to-call-macro/m-p/80358#M17294</guid>
      <dc:creator>art297</dc:creator>
      <dc:date>2012-11-26T18:57:18Z</dc:date>
    </item>
    <item>
      <title>Re: Limiting the lines of code needed to call macro</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Limiting-the-lines-of-code-needed-to-call-macro/m-p/80359#M17295</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;I went with your solution once I figured it out...&amp;nbsp; Thank you!!!&amp;nbsp; As always this forum is a great resource for relative SAS novices like myself.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 26 Nov 2012 19:11:16 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Limiting-the-lines-of-code-needed-to-call-macro/m-p/80359#M17295</guid>
      <dc:creator>Milo08</dc:creator>
      <dc:date>2012-11-26T19:11:16Z</dc:date>
    </item>
    <item>
      <title>Re: Limiting the lines of code needed to call macro</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Limiting-the-lines-of-code-needed-to-call-macro/m-p/80360#M17296</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Not sure if creating the dataset with the list of the lines written to the .BAT file is important.&amp;nbsp; If not then just use data _NULL_ instead.&lt;/P&gt;&lt;P&gt;One advantage of using DATA step to generate the files is that you have more flexibility with the DO statement than the %DO statement.&lt;/P&gt;&lt;P&gt;You can combine iterated lists with just lists of values. For example: DO form=1 to 5,10,20,100;&lt;/P&gt;&lt;P&gt;I also added code to use the NOBS option on the SET statement for the input dataset LIST so that it will output all of the names in the dataset into each of the generated BIG files and the number of records in LIST does not always have to be exactly 38.&amp;nbsp; I had it replace the 38 in the value of NI= with the number of obs from the LIST dataset.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: 'courier new', courier;"&gt;data batchfile ;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: 'courier new', courier;"&gt;&amp;nbsp; length filename bigfilename $200 ;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: 'courier new', courier;"&gt;&amp;nbsp; do form=1 to 4;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: 'courier new', courier;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; do version=1 to 50 ;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: 'courier new', courier;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; filename = cats("Project_V",version,'_',form);&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: 'courier new', courier;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; bigfilename = cats("&amp;amp;winsteps\",filename,'.big');&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: 'courier new', courier;"&gt;* Write BIG file ;&lt;BR /&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: 'courier new', courier;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; file big filevar=bigfilename lrecl=50000;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: 'courier new', courier;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; put&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: 'courier new', courier;"&gt;&amp;nbsp; '&amp;amp;INST'&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: 'courier new', courier;"&gt;/ 'TITLE=Project Anchor Run Calibration: Version ' version 'Form' form'&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: 'courier new', courier;"&gt;/ 'ITEM1=1'&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: 'courier new', courier;"&gt;/ 'LCONV=0.000001'&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: 'courier new', courier;"&gt;/ 'RCONV=0.001'&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: 'courier new', courier;"&gt;/ 'DATA=' filename +(-1) '.dat'&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: 'courier new', courier;"&gt;/ 'NI=' nobs&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: 'courier new', courier;"&gt;/ 'XWIDE = 1'&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: 'courier new', courier;"&gt;/ 'CODES = 0123456789'&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: 'courier new', courier;"&gt;/ 'GROUPS=0'&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: 'courier new', courier;"&gt;/ 'MUCON=50'&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: 'courier new', courier;"&gt;/ 'STKEEP=Y'&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: 'courier new', courier;"&gt;/ 'IFILE=' filename +(-1) '.itm'&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: 'courier new', courier;"&gt;/ 'SFILE=' filename +(-1) '.san'&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: 'courier new', courier;"&gt;/ 'DISFILE=' filename +(-1) '.dis'&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: 'courier new', courier;"&gt;/ 'IAFILE=Project.iaf'&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: 'courier new', courier;"&gt;/ 'SAFILE=Project.saf'&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: 'courier new', courier;"&gt;/ 'TFILE=*'&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: 'courier new', courier;"&gt;/ '0'&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: 'courier new', courier;"&gt;/ '3'&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: 'courier new', courier;"&gt;/ '12'&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: 'courier new', courier;"&gt;/ '14'&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: 'courier new', courier;"&gt;/ '20'&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: 'courier new', courier;"&gt;/ '*'&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: 'courier new', courier;"&gt;/ 'BATCH=Y'&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: 'courier new', courier;"&gt;/ '&amp;amp;END'&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: 'courier new', courier;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: 'courier new', courier;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; do p=1 to nobs;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: 'courier new', courier;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; set List point=p nobs=nobs;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: 'courier new', courier;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; put @1 Name;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: 'courier new', courier;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; end;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: 'courier new', courier;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; put "END NAMES";&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: 'courier new', courier;"&gt;* Write line to batch file. ;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: 'courier new', courier;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; file "&amp;amp;winsteps.\Anchor Run.bat" Lrecl=50000;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: 'courier new', courier;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; put "c:\winsteps374\winsteps.exe " bigfilename filename +(-1) '.out';&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: 'courier new', courier;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; end;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: 'courier new', courier;"&gt;&amp;nbsp; end;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: 'courier new', courier;"&gt;&amp;nbsp;&amp;nbsp; stop;&lt;BR /&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: 'courier new', courier;"&gt;run;&lt;/SPAN&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 27 Nov 2012 00:57:15 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Limiting-the-lines-of-code-needed-to-call-macro/m-p/80360#M17296</guid>
      <dc:creator>Tom</dc:creator>
      <dc:date>2012-11-27T00:57:15Z</dc:date>
    </item>
  </channel>
</rss>

