<?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: Splitting String into Variables without delimiter in SAS Programming</title>
    <link>https://communities.sas.com/t5/SAS-Programming/Splitting-String-into-Variables-without-delimiter/m-p/331460#M271912</link>
    <description>&lt;P&gt;Hi All,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Thanks Everyone for your help.My question feels silly.Hopefully one day will contribute answers to this community&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I appreciate it&lt;/P&gt;</description>
    <pubDate>Fri, 10 Feb 2017 11:22:41 GMT</pubDate>
    <dc:creator>JasonNC</dc:creator>
    <dc:date>2017-02-10T11:22:41Z</dc:date>
    <item>
      <title>Splitting String into Variables without delimiter</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Splitting-String-into-Variables-without-delimiter/m-p/331071#M271904</link>
      <description>&lt;P&gt;Hi All,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I want to split a string into 5 Variables.4 variables should have 2 charcters and the 5 variable should contain remaining value&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;For ex: PADINYRDFGHJ&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Var1 Var2 Var3 VAr4 Var5&lt;/P&gt;&lt;P&gt;PA &amp;nbsp; &amp;nbsp;DI &amp;nbsp; &amp;nbsp; &amp;nbsp;NY &amp;nbsp; RD &amp;nbsp; FGHJ&lt;/P&gt;</description>
      <pubDate>Thu, 09 Feb 2017 05:47:14 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Splitting-String-into-Variables-without-delimiter/m-p/331071#M271904</guid>
      <dc:creator>JasonNC</dc:creator>
      <dc:date>2017-02-09T05:47:14Z</dc:date>
    </item>
    <item>
      <title>Re: Splitting String into Variables without delimiter</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Splitting-String-into-Variables-without-delimiter/m-p/331075#M271905</link>
      <description>&lt;P&gt;Here you go:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data _null_;
longstring = "PADINYRDFGHJ";
length var1-var4 $ 2
       var5 $ 4;
array vars[*] var1-var5;
startpos = 1;
do i = 1 to dim(vars);
   length_var = vlength(vars[i]);
   vars[i] = substr(longstring, startpos, length_var);
   startpos + length_var;
   end;
put _all_;
run;&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;I've made the code quite dynamic. The&amp;nbsp;&lt;EM&gt;do&lt;/EM&gt;-loop is not dependent on the length of any of the variables - if any of them were to be longer or shorter, the code would still work. The&amp;nbsp;&lt;EM&gt;vlength&lt;/EM&gt; function returns the length of the variable - there are a few functions like this (&lt;EM&gt;vname&lt;/EM&gt;,&amp;nbsp;&lt;EM&gt;vlabel et al&lt;/EM&gt;).&lt;/P&gt;</description>
      <pubDate>Thu, 09 Feb 2017 06:38:22 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Splitting-String-into-Variables-without-delimiter/m-p/331075#M271905</guid>
      <dc:creator>LaurieF</dc:creator>
      <dc:date>2017-02-09T06:38:22Z</dc:date>
    </item>
    <item>
      <title>Re: Splitting String into Variables without delimiter</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Splitting-String-into-Variables-without-delimiter/m-p/331093#M271906</link>
      <description>&lt;P&gt;Hi.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Similar solution, with macro parameters.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;%let _SPLIT=2; * chars per var;&lt;BR /&gt;%let _VARS=5; * max vars;&lt;BR /&gt;data WANT;&lt;BR /&gt;     S = 'PADINYRDFGHJ';&lt;BR /&gt;     drop _:;&lt;BR /&gt;     length VAR1-VAR%eval(&amp;amp;_VARS-1) $&amp;amp;_SPLIT VAR&amp;amp;_VARS $200;&lt;BR /&gt;     array VARS[*] VAR1-VAR&amp;amp;_VARS;&lt;BR /&gt;     do _I = 1 to &amp;amp;_VARS;&lt;BR /&gt;        VARS(_I)=substr(S,(_I-1)*&amp;amp;_SPLIT+1);&lt;BR /&gt;     end;&lt;BR /&gt;run;&lt;/PRE&gt;
&lt;P&gt;SUBSTR function is used to split the string, and it's pretty much the&amp;nbsp;best way for that.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Hope it helps.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Daniel Santos&amp;nbsp;@ &lt;A href="http://www.cgd.pt" target="_blank"&gt;www.cgd.pt&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Fri, 10 Feb 2017 09:19:05 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Splitting-String-into-Variables-without-delimiter/m-p/331093#M271906</guid>
      <dc:creator>DanielSantos</dc:creator>
      <dc:date>2017-02-10T09:19:05Z</dc:date>
    </item>
    <item>
      <title>Re: Splitting String into Variables without delimiter</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Splitting-String-into-Variables-without-delimiter/m-p/331143#M271907</link>
      <description>&lt;P&gt;All good ideas, but I will go the opposite route. &amp;nbsp;Here's the least flexible (but simplest) approach:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;data want;&lt;/P&gt;
&lt;P&gt;longstring='PADINYRDFGHJ';&lt;/P&gt;
&lt;P&gt;length var1-var4 $ 2 var5 $ 4;&lt;/P&gt;
&lt;P&gt;array var {5};&lt;/P&gt;
&lt;P&gt;do i=1 to 5;&lt;/P&gt;
&lt;P&gt;&amp;nbsp; &amp;nbsp;var{i} = substr(longstring, 2*i - 1);&lt;/P&gt;
&lt;P&gt;end;&lt;/P&gt;
&lt;P&gt;run;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;I don't think I read the previous reply closely enough. &amp;nbsp;There is really nothing new here, except removing the macro language. &amp;nbsp;However, if you are going to use the macro language approach, there is one tiny change that should be made. &amp;nbsp;The existing line:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;        VARS(_I)=substr(S,(_I-1)*2+1);&lt;/PRE&gt;
&lt;P&gt;Instead, it should read:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;        VARS(_I)=substr(S,(_I-1)*&amp;amp;_SPLIT+1);&lt;/PRE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Thu, 09 Feb 2017 13:04:09 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Splitting-String-into-Variables-without-delimiter/m-p/331143#M271907</guid>
      <dc:creator>Astounding</dc:creator>
      <dc:date>2017-02-09T13:04:09Z</dc:date>
    </item>
    <item>
      <title>Re: Splitting String into Variables without delimiter</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Splitting-String-into-Variables-without-delimiter/m-p/331221#M271908</link>
      <description>&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data want;
s='PADINYRDFGHJ';
length v1-v4 $ 2 v5 $4;
array v[5];
call pokelong(s,addrlong(v[1]),lengthn(s));
run;&lt;/CODE&gt;&lt;/PRE&gt;</description>
      <pubDate>Thu, 09 Feb 2017 16:24:10 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Splitting-String-into-Variables-without-delimiter/m-p/331221#M271908</guid>
      <dc:creator>FriedEgg</dc:creator>
      <dc:date>2017-02-09T16:24:10Z</dc:date>
    </item>
    <item>
      <title>Re: Splitting String into Variables without delimiter</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Splitting-String-into-Variables-without-delimiter/m-p/331304#M271909</link>
      <description>Poking? Ow!</description>
      <pubDate>Thu, 09 Feb 2017 19:51:35 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Splitting-String-into-Variables-without-delimiter/m-p/331304#M271909</guid>
      <dc:creator>LaurieF</dc:creator>
      <dc:date>2017-02-09T19:51:35Z</dc:date>
    </item>
    <item>
      <title>Re: Splitting String into Variables without delimiter</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Splitting-String-into-Variables-without-delimiter/m-p/331427#M271911</link>
      <description>&lt;P&gt;&lt;a href="https://communities.sas.com/t5/user/viewprofilepage/user-id/4954"&gt;@Astounding&lt;/a&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;You are right!... Missed it, will edit the post... Thanks.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;As for the the rest, I did say:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;EM&gt;"&lt;U&gt;Similar&lt;/U&gt; solution, with &lt;U&gt;macro parameters&lt;/U&gt;."&lt;/EM&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;EM&gt;"SUBSTR function is used to split the string, and &lt;U&gt;it's pretty much the&amp;nbsp;best way for that&lt;/U&gt;."&lt;/EM&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;So yes, nothing new unless the flexibility of the macro parameters.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;And&amp;nbsp;by removing&amp;nbsp;that flexibility, I think you'll get pretty much&amp;nbsp;what you are proposing...&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;So maybe, there's not much new for both... kind of funny &lt;span class="lia-unicode-emoji" title=":slightly_smiling_face:"&gt;🙂&lt;/span&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Daniel Santos&amp;nbsp;@ &lt;A href="http://www.cgd.pt" target="_blank"&gt;www.cgd.pt&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Fri, 10 Feb 2017 09:18:02 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Splitting-String-into-Variables-without-delimiter/m-p/331427#M271911</guid>
      <dc:creator>DanielSantos</dc:creator>
      <dc:date>2017-02-10T09:18:02Z</dc:date>
    </item>
    <item>
      <title>Re: Splitting String into Variables without delimiter</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Splitting-String-into-Variables-without-delimiter/m-p/331460#M271912</link>
      <description>&lt;P&gt;Hi All,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Thanks Everyone for your help.My question feels silly.Hopefully one day will contribute answers to this community&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I appreciate it&lt;/P&gt;</description>
      <pubDate>Fri, 10 Feb 2017 11:22:41 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Splitting-String-into-Variables-without-delimiter/m-p/331460#M271912</guid>
      <dc:creator>JasonNC</dc:creator>
      <dc:date>2017-02-10T11:22:41Z</dc:date>
    </item>
    <item>
      <title>Re: Splitting String into Variables without delimiter</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Splitting-String-into-Variables-without-delimiter/m-p/331787#M271913</link>
      <description>&lt;P&gt;Nah, it was quite a good question. And if you start experimenting with what SAS can do (and it's pretty good at playing around with strings), you'll be answering problems in no time!&lt;/P&gt;</description>
      <pubDate>Sat, 11 Feb 2017 08:48:21 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Splitting-String-into-Variables-without-delimiter/m-p/331787#M271913</guid>
      <dc:creator>LaurieF</dc:creator>
      <dc:date>2017-02-11T08:48:21Z</dc:date>
    </item>
    <item>
      <title>Re: Splitting String into Variables without delimiter</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Splitting-String-into-Variables-without-delimiter/m-p/331888#M271914</link>
      <description>I think the easiest code to parse into 5 vars would be an input statement&lt;BR /&gt; Input @1 ( var1-var4 var5)( 4*$2. $10.) @@ ;&lt;BR /&gt;Of course your source string is not external. However that is no obstacle to using INPUT&lt;BR /&gt;Just load the _INFILE_ with your source value .&lt;BR /&gt;This is not new..&lt;BR /&gt;There is a paper on the idea ... the title &lt;BR /&gt;SUGI 28: More _Infile_ Magic&lt;BR /&gt;www2.sas.com/proceedings/sugi28/086-28.pdf&lt;BR /&gt;&lt;BR /&gt;</description>
      <pubDate>Sat, 11 Feb 2017 23:35:50 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Splitting-String-into-Variables-without-delimiter/m-p/331888#M271914</guid>
      <dc:creator>Peter_C</dc:creator>
      <dc:date>2017-02-11T23:35:50Z</dc:date>
    </item>
  </channel>
</rss>

