<?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: Reading Embedded Spaces in Data in SAS Programming</title>
    <link>https://communities.sas.com/t5/SAS-Programming/Reading-Embedded-Spaces-in-Data/m-p/110633#M22953</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Divya,&lt;/P&gt;&lt;P&gt;I don't have time now. It may helpful to look at this discussion:&lt;/P&gt;&lt;P&gt;&lt;A _jive_internal="true" href="https://communities.sas.com/message/112959#112959"&gt;https://communities.sas.com/message/112959#112959&lt;/A&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Thu, 10 May 2012 16:55:36 GMT</pubDate>
    <dc:creator>Linlin</dc:creator>
    <dc:date>2012-05-10T16:55:36Z</dc:date>
    <item>
      <title>Reading Embedded Spaces in Data</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Reading-Embedded-Spaces-in-Data/m-p/110630#M22950</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&gt;Looking for the most efficient method to read this data:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;John Matthew 40 $90,000&lt;/P&gt;&lt;P&gt;George Wilson 28 $50,000&lt;/P&gt;&lt;P&gt;Robert Nicolas 30 $60,000&lt;/P&gt;&lt;P&gt;Leo Thomas 35 $70,000&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;This unaligned data represents name, age and salary variables. The data values are separated by a single space and the variable "name" contains an embedded blank.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thanks,&lt;/P&gt;&lt;P&gt;Divya&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 10 May 2012 16:30:50 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Reading-Embedded-Spaces-in-Data/m-p/110630#M22950</guid>
      <dc:creator>Divya</dc:creator>
      <dc:date>2012-05-10T16:30:50Z</dc:date>
    </item>
    <item>
      <title>Re: Reading Embedded Spaces in Data</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Reading-Embedded-Spaces-in-Data/m-p/110631#M22951</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&gt;Try this..&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;data one;&lt;/P&gt;&lt;P&gt;infile cards dlm='';&lt;/P&gt;&lt;P&gt;input name $ 1-15 age 16-18 sal :dollar.;&lt;/P&gt;&lt;P&gt;format sal dollar7.;&lt;/P&gt;&lt;P&gt;cards; &lt;/P&gt;&lt;P&gt;John Matthew&amp;nbsp;&amp;nbsp; 40 $90,000&lt;/P&gt;&lt;P&gt;George Wilson&amp;nbsp; 28 $50,000&lt;/P&gt;&lt;P&gt;Robert Nicolas 30 $60,000&lt;/P&gt;&lt;P&gt;Leo Thomas&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 35 $70,000&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;Thanks,&lt;/P&gt;&lt;P&gt;Shiva&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 10 May 2012 16:40:27 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Reading-Embedded-Spaces-in-Data/m-p/110631#M22951</guid>
      <dc:creator>shivas</dc:creator>
      <dc:date>2012-05-10T16:40:27Z</dc:date>
    </item>
    <item>
      <title>Re: Reading Embedded Spaces in Data</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Reading-Embedded-Spaces-in-Data/m-p/110632#M22952</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi shiva,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thanks for the response. But the problem I am facing here is name and age data values are separated by a single space and its a long text file so I cannot manually insert spaces between the two and make age values start from the 16th column.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;If that was the case, I would have used ampersand format modifier to read it, but here I cannot.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Is there any other way of doing it?&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Divya&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 10 May 2012 16:49:28 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Reading-Embedded-Spaces-in-Data/m-p/110632#M22952</guid>
      <dc:creator>Divya</dc:creator>
      <dc:date>2012-05-10T16:49:28Z</dc:date>
    </item>
    <item>
      <title>Re: Reading Embedded Spaces in Data</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Reading-Embedded-Spaces-in-Data/m-p/110633#M22953</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Divya,&lt;/P&gt;&lt;P&gt;I don't have time now. It may helpful to look at this discussion:&lt;/P&gt;&lt;P&gt;&lt;A _jive_internal="true" href="https://communities.sas.com/message/112959#112959"&gt;https://communities.sas.com/message/112959#112959&lt;/A&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 10 May 2012 16:55:36 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Reading-Embedded-Spaces-in-Data/m-p/110633#M22953</guid>
      <dc:creator>Linlin</dc:creator>
      <dc:date>2012-05-10T16:55:36Z</dc:date>
    </item>
    <item>
      <title>Re: Reading Embedded Spaces in Data</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Reading-Embedded-Spaces-in-Data/m-p/110634#M22954</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;This work for your data as is, you can modify it to fit more complex situations hopefully:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;data one (drop=_:);&lt;/P&gt;&lt;P&gt;infile cards dlm='';&lt;/P&gt;&lt;P&gt;input @;&lt;/P&gt;&lt;P&gt;name=catx(' ',scan(_infile_,1), scan(_infile_,2));;&lt;/P&gt;&lt;P&gt;input _1 _2 age sal:dollar11.;&lt;/P&gt;&lt;P&gt;format sal dollar7.;&lt;/P&gt;&lt;P&gt;cards; &lt;/P&gt;&lt;P&gt;John Matthew 40 $90,000&lt;/P&gt;&lt;P&gt;George Wilson 28 $50,000&lt;/P&gt;&lt;P&gt;Robert Nicolas 30 $60,000&lt;/P&gt;&lt;P&gt;Leo Thomas 35 $70,000&lt;/P&gt;&lt;P&gt;;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;proc print;run;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Regards,&lt;/P&gt;&lt;P&gt;Haikuo &lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 10 May 2012 17:00:21 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Reading-Embedded-Spaces-in-Data/m-p/110634#M22954</guid>
      <dc:creator>Haikuo</dc:creator>
      <dc:date>2012-05-10T17:00:21Z</dc:date>
    </item>
    <item>
      <title>Re: Reading Embedded Spaces in Data</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Reading-Embedded-Spaces-in-Data/m-p/110635#M22955</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;another approach:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;data one(drop=p1 p2) ;&lt;/P&gt;&lt;P&gt;length name $ 20;&lt;BR /&gt;infile cards;&lt;BR /&gt;input;&lt;BR /&gt;p1=findc(_infile_,'0123456789');&lt;BR /&gt;p2=find(_infile_,'$');&lt;BR /&gt;name=substr(_infile_,1,p1-1);&lt;BR /&gt;age=input(substr(_infile_,p1,p2-1),3.);&lt;BR /&gt;salary=input(substr(_infile_,p2+1),dollar11.);&lt;BR /&gt;format salary dollar11.;&lt;BR /&gt;cards; &lt;BR /&gt;John Matthew 40 $90,000&lt;BR /&gt;George Wilson 28 $50,000&lt;BR /&gt;Robert Nicolas 30 $60,000&lt;BR /&gt;Leo Thomas 35 $70,000&lt;BR /&gt;;&lt;BR /&gt;proc print;run;&lt;BR /&gt;&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; Obs&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; name&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; age&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; salary&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;&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; 1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; John Matthew&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 40&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $90,000&lt;BR /&gt;&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; 2&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; George Wilson&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 28&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $50,000&lt;BR /&gt;&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; 3&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Robert Nicolas&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 30&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $60,000&lt;BR /&gt;&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; 4&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Leo Thomas&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 35&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $70,000&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 10 May 2012 18:44:38 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Reading-Embedded-Spaces-in-Data/m-p/110635#M22955</guid>
      <dc:creator>Linlin</dc:creator>
      <dc:date>2012-05-10T18:44:38Z</dc:date>
    </item>
    <item>
      <title>Re: Reading Embedded Spaces in Data</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Reading-Embedded-Spaces-in-Data/m-p/110636#M22956</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;If the name always consists of first name and last name then read them directly&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;and concatenate like this:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;data one (drop=_:);&lt;/P&gt;&lt;P&gt;infile cards dlm='';&lt;/P&gt;&lt;P&gt;input _fname :$8. _lname :$15. age sal :dollar11.;&lt;/P&gt;&lt;P&gt;name=catx(' ', _fname, _lname);&lt;/P&gt;&lt;P&gt;format sal dollar7.;&lt;/P&gt;&lt;P&gt;cards; &lt;/P&gt;&lt;P&gt;John Matthew 40 $90,000&lt;/P&gt;&lt;P&gt;George Wilson 28 $50,000&lt;/P&gt;&lt;P&gt;Robert Nicolas 30 $60,000&lt;/P&gt;&lt;P&gt;Leo Thomas 35 $70,000&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;But if the name varies because of middle names and initials, then something like this will work:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;data one (drop=_:);&lt;/P&gt;&lt;P&gt;infile cards dlm='';&lt;/P&gt;&lt;P&gt;length _partial_nm $15 name $45;&lt;/P&gt;&lt;P&gt;do while ( 1 );&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; input _partial_nm :$15. @;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; if anydigit( _partial_nm ) &amp;gt; 0 then leave; * found age;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; name = catx( ' ', name, _partial_nm );&lt;/P&gt;&lt;P&gt;end;&lt;/P&gt;&lt;P&gt;age = input( _partial_nm, 15. );&lt;/P&gt;&lt;P&gt;input sal :dollar11.;&lt;/P&gt;&lt;P&gt;format sal dollar7.;&lt;/P&gt;&lt;P&gt;cards; &lt;/P&gt;&lt;P&gt;John J. Matthew 40 $90,000&lt;/P&gt;&lt;P&gt;George Wilson 28 $50,000&lt;/P&gt;&lt;P&gt;Robert David Nicolas 30 $60,000&lt;/P&gt;&lt;P&gt;Leo Thomas 35 $70,000&lt;/P&gt;&lt;P&gt;;&lt;/P&gt;&lt;P&gt;run;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 10 May 2012 19:00:01 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Reading-Embedded-Spaces-in-Data/m-p/110636#M22956</guid>
      <dc:creator>FloydNevseta</dc:creator>
      <dc:date>2012-05-10T19:00:01Z</dc:date>
    </item>
    <item>
      <title>Re: Reading Embedded Spaces in Data</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Reading-Embedded-Spaces-in-Data/m-p/110637#M22957</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;or, a modification of Linlin's approach:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;data one;&lt;/P&gt;&lt;P&gt;&amp;nbsp; length name $ 20;&lt;/P&gt;&lt;P&gt;&amp;nbsp; infile cards;&lt;/P&gt;&lt;P&gt;&amp;nbsp; input @;&lt;/P&gt;&lt;P&gt;&amp;nbsp; _infile_=catx("&amp;nbsp; ",substr(_infile_,1,anydigit(_infile_)-1),&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; substr(_infile_,anydigit(_infile_)));&lt;/P&gt;&lt;P&gt;&amp;nbsp; input name &amp;amp; age salary;&lt;/P&gt;&lt;P&gt;&amp;nbsp; informat salary dollar11.;&lt;/P&gt;&lt;P&gt;cards; &lt;/P&gt;&lt;P&gt;John Matthew 40 $90,000&lt;/P&gt;&lt;P&gt;George Wilson 28 $50,000&lt;/P&gt;&lt;P&gt;Robert Nicolas 30 $60,000&lt;/P&gt;&lt;P&gt;Leo Thomas 35 $70,000&lt;/P&gt;&lt;P&gt;;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 10 May 2012 19:08:48 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Reading-Embedded-Spaces-in-Data/m-p/110637#M22957</guid>
      <dc:creator>art297</dc:creator>
      <dc:date>2012-05-10T19:08:48Z</dc:date>
    </item>
    <item>
      <title>Re: Reading Embedded Spaces in Data</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Reading-Embedded-Spaces-in-Data/m-p/110638#M22958</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;hi ... the more the merrier ...&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: 'courier new', courier;"&gt;&lt;STRONG&gt;data x;&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: 'courier new', courier;"&gt;&lt;STRONG&gt;infile datalines dsd dlm='/';&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: 'courier new', courier;"&gt;&lt;STRONG&gt;input @;&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: 'courier new', courier;"&gt;&lt;STRONG&gt;&lt;BR /&gt;&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: 'courier new', courier;"&gt;&lt;STRONG&gt;_infile_ = translate(_infile_,'/',' ');&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: 'courier new', courier;"&gt;&lt;STRONG&gt;substr(_infile_ , find(_infile_,'/') , 1) = ' ';&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: 'courier new', courier;"&gt;&lt;STRONG&gt;&lt;BR /&gt;&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: 'courier new', courier;"&gt;&lt;STRONG&gt;input name : $30. age salary : comma.;&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: 'courier new', courier;"&gt;&lt;STRONG&gt;format salary dollar10.;&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: 'courier new', courier;"&gt;&lt;STRONG&gt;datalines;&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: 'courier new', courier;"&gt;&lt;STRONG&gt;John Matthew 40 $90,000&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: 'courier new', courier;"&gt;&lt;STRONG&gt;George Wilson 28 $50,000&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: 'courier new', courier;"&gt;&lt;STRONG&gt;Robert Nicolas 30 $60,000&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: 'courier new', courier;"&gt;&lt;STRONG&gt;Leo Thomas 35 $70,000&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: 'courier new', courier;"&gt;&lt;STRONG&gt;;&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 10 May 2012 20:08:31 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Reading-Embedded-Spaces-in-Data/m-p/110638#M22958</guid>
      <dc:creator>MikeZdeb</dc:creator>
      <dc:date>2012-05-10T20:08:31Z</dc:date>
    </item>
    <item>
      <title>Re: Reading Embedded Spaces in Data</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Reading-Embedded-Spaces-in-Data/m-p/110639#M22959</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;data a;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; input (fname lname ) ($) age salary :dollar.;&lt;/P&gt;&lt;P&gt;datalines;&lt;/P&gt;&lt;P&gt;John Matthew 40 $90,000&lt;/P&gt;&lt;P&gt;George Wilson 28 $50,000&lt;/P&gt;&lt;P&gt;Robert Nicolas 30 $60,000&lt;/P&gt;&lt;P&gt;Leo Thomas 35 $70,000&lt;/P&gt;&lt;P&gt;;&lt;/P&gt;&lt;P&gt;data a;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; set a;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; FullName=trim(fname)||' '||trim(lname);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; drop fname lname;&lt;/P&gt;&lt;P&gt;run;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 10 May 2012 20:34:36 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Reading-Embedded-Spaces-in-Data/m-p/110639#M22959</guid>
      <dc:creator>Anne</dc:creator>
      <dc:date>2012-05-10T20:34:36Z</dc:date>
    </item>
    <item>
      <title>Re: Reading Embedded Spaces in Data</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Reading-Embedded-Spaces-in-Data/m-p/110640#M22960</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Same idea as Mike's (aka "the _infile_ magic"), but a bit more robust against possible middle names and extra blanks as such. I am pretty sure this is &lt;EM&gt;not&lt;/EM&gt; most "efficient." &lt;span class="lia-unicode-emoji" title=":slightly_smiling_face:"&gt;🙂&lt;/span&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P style="font-family: 'Consolas'; font-size: 90%; line-height: 1.1; padding-left: 30px;"&gt;&lt;SPAN&gt;%&lt;/SPAN&gt;&lt;SPAN style="color: #008000;"&gt;*-- sub last two occurances of blanks into bars(|) --*;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="color: #0000ff;"&gt;%let&lt;/SPAN&gt;&lt;SPAN&gt; b = \s+;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; %&lt;/SPAN&gt;&lt;SPAN style="color: #008000;"&gt;*-- blanks&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; --*;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="color: #0000ff;"&gt;%let&lt;/SPAN&gt;&lt;SPAN&gt; d = \d+;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; %&lt;/SPAN&gt;&lt;SPAN style="color: #008000;"&gt;*-- digits&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; --*;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="color: #0000ff;"&gt;%let&lt;/SPAN&gt;&lt;SPAN&gt; nb = [^\s]+;&amp;nbsp; %&lt;/SPAN&gt;&lt;SPAN style="color: #008000;"&gt;*-- non-blanks --*;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="color: #0000ff;"&gt;%let&lt;/SPAN&gt;&lt;SPAN&gt; nd = [^\d]+;&amp;nbsp; %&lt;/SPAN&gt;&lt;SPAN style="color: #008000;"&gt;*-- non-digits --*;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="color: #0000ff;"&gt;%let&lt;/SPAN&gt;&lt;SPAN&gt; prx = s/^(&amp;amp;nd)(&amp;amp;b)(&amp;amp;d)(&amp;amp;b)(&amp;amp;nb)\s*$/$1|$3|$5/;&lt;/SPAN&gt;&lt;BR /&gt; &lt;BR /&gt;&lt;SPAN style="color: #000080;"&gt;&lt;STRONG&gt;data&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;SPAN&gt; one; &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="color: #0000ff;"&gt;infile&lt;/SPAN&gt;&lt;SPAN&gt; &lt;/SPAN&gt;&lt;SPAN style="color: #0000ff;"&gt;cards&lt;/SPAN&gt;&lt;SPAN&gt; &lt;/SPAN&gt;&lt;SPAN style="color: #0000ff;"&gt;dlm&lt;/SPAN&gt;&lt;SPAN&gt;=&lt;/SPAN&gt;&lt;SPAN style="color: #800080;"&gt;"|"&lt;/SPAN&gt;&lt;SPAN&gt;;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="color: #0000ff;"&gt;input&lt;/SPAN&gt;&lt;SPAN&gt; @;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp; _infile_ = prxchange(&lt;/SPAN&gt;&lt;SPAN style="color: #800080;"&gt;"&amp;amp;prx"&lt;/SPAN&gt;&lt;SPAN&gt;, &lt;/SPAN&gt;&lt;SPAN style="color: #008080;"&gt;&lt;STRONG&gt;1&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;SPAN&gt;, _infile_);&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="color: #0000ff;"&gt;input&lt;/SPAN&gt;&lt;SPAN&gt; name :&lt;/SPAN&gt;&lt;SPAN style="color: #008080;"&gt;$30.&lt;/SPAN&gt;&lt;SPAN&gt; age inc :&lt;/SPAN&gt;&lt;SPAN style="color: #008080;"&gt;comma9.&lt;/SPAN&gt;&lt;SPAN&gt;;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="color: #0000ff;"&gt;cards&lt;/SPAN&gt;&lt;SPAN&gt;;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;John Q. Matthew 40 $90,000&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;George Wilson 28&amp;nbsp;&amp;nbsp;&amp;nbsp; $50,000&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Robert Nicolas 30 $60,000&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Leo Thomas 35 $70,000&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="color: #000080;"&gt;&lt;STRONG&gt;run&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;SPAN&gt;;&lt;/SPAN&gt;&lt;BR /&gt; &lt;BR /&gt;&lt;SPAN style="color: #008000;"&gt;/* check */&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="color: #000080;"&gt;&lt;STRONG&gt;proc&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;SPAN&gt; &lt;/SPAN&gt;&lt;SPAN style="color: #000080;"&gt;&lt;STRONG&gt;print&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;SPAN&gt; &lt;/SPAN&gt;&lt;SPAN style="color: #0000ff;"&gt;data&lt;/SPAN&gt;&lt;SPAN&gt;=one;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="color: #0000ff;"&gt;format&lt;/SPAN&gt;&lt;SPAN&gt; inc &lt;/SPAN&gt;&lt;SPAN style="color: #008080;"&gt;dollar9.&lt;/SPAN&gt;&lt;SPAN&gt;;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="color: #000080;"&gt;&lt;STRONG&gt;run&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;SPAN&gt;;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="color: #008000;"&gt;/* on lst&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="color: #008000;"&gt;Obs&amp;nbsp;&amp;nbsp;&amp;nbsp; name&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; age&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; inc&lt;/SPAN&gt;&lt;BR /&gt; &lt;BR /&gt;&lt;SPAN style="color: #008000;"&gt; 1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; John Q. Matthew&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 40&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $90,000&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="color: #008000;"&gt; 2&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; George Wilson&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 28&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $50,000&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="color: #008000;"&gt; 3&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Robert Nicolas&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 30&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $60,000&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="color: #008000;"&gt; 4&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Leo Thomas&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 35&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $70,000&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="color: #008000;"&gt;*/&lt;/SPAN&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 10 May 2012 22:14:20 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Reading-Embedded-Spaces-in-Data/m-p/110640#M22960</guid>
      <dc:creator>chang_y_chung_hotmail_com</dc:creator>
      <dc:date>2012-05-10T22:14:20Z</dc:date>
    </item>
    <item>
      <title>Re: Reading Embedded Spaces in Data</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Reading-Embedded-Spaces-in-Data/m-p/110641#M22961</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;If you know there are always 2 non blank fields that follow you can count backward to find the length of the field and use $VARYING. Using Chang's data.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: navy; background: white; font-size: 10pt; font-family: 'Courier New';"&gt;&lt;STRONG&gt;data&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;SPAN style="font-size: 10pt; background: white; color: black; font-family: 'Courier New';"&gt; one; &lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; &lt;SPAN style="font-size: 10pt; background: white; color: blue; font-family: 'Courier New';"&gt;infile&lt;/SPAN&gt;&lt;SPAN style="font-size: 10pt; background: white; color: black; font-family: 'Courier New';"&gt; cards;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; &lt;SPAN style="font-size: 10pt; background: white; color: blue; font-family: 'Courier New';"&gt;input&lt;/SPAN&gt;&lt;SPAN style="font-size: 10pt; background: white; color: black; font-family: 'Courier New';"&gt; @;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; &lt;SPAN style="font-size: 10pt; background: white; color: blue; font-family: 'Courier New';"&gt;call&lt;/SPAN&gt;&lt;SPAN style="font-size: 10pt; background: white; color: black; font-family: 'Courier New';"&gt; scan(_infile_,-&lt;/SPAN&gt;&lt;SPAN style="color: teal; background: white; font-size: 10pt; font-family: 'Courier New';"&gt;&lt;STRONG&gt;2&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;SPAN style="font-size: 10pt; background: white; color: black; font-family: 'Courier New';"&gt;,p,l,&lt;/SPAN&gt;&lt;SPAN style="font-size: 10pt; background: white; color: purple; font-family: 'Courier New';"&gt;' '&lt;/SPAN&gt;&lt;SPAN style="font-size: 10pt; background: white; color: black; font-family: 'Courier New';"&gt;);&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 10pt; background: white; color: black; font-family: 'Courier New';"&gt;&amp;nbsp; l=p-&lt;/SPAN&gt;&lt;SPAN style="color: teal; background: white; font-size: 10pt; font-family: 'Courier New';"&gt;&lt;STRONG&gt;2&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;SPAN style="font-size: 10pt; background: white; color: black; font-family: 'Courier New';"&gt;;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; &lt;SPAN style="font-size: 10pt; background: white; color: blue; font-family: 'Courier New';"&gt;input&lt;/SPAN&gt;&lt;SPAN style="font-size: 10pt; background: white; color: black; font-family: 'Courier New';"&gt; name &lt;/SPAN&gt;&lt;SPAN style="font-size: 10pt; background: white; color: teal; font-family: 'Courier New';"&gt;$varying30.&lt;/SPAN&gt;&lt;SPAN style="font-size: 10pt; background: white; color: black; font-family: 'Courier New';"&gt; l age inc :&lt;/SPAN&gt;&lt;SPAN style="font-size: 10pt; background: white; color: teal; font-family: 'Courier New';"&gt;comma9.&lt;/SPAN&gt;&lt;SPAN style="font-size: 10pt; background: white; color: black; font-family: 'Courier New';"&gt;;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 10pt; background: white; color: blue; font-family: 'Courier New';"&gt;cards&lt;/SPAN&gt;&lt;SPAN style="font-size: 10pt; background: white; color: black; font-family: 'Courier New';"&gt;;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 10pt; background: #ffffc0; color: black; font-family: 'Courier New';"&gt;John Q. Matthew 40 $90,000&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 10pt; background: #ffffc0; color: black; font-family: 'Courier New';"&gt;George Wilson 28&amp;nbsp;&amp;nbsp;&amp;nbsp; $50,000&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 10pt; background: #ffffc0; color: black; font-family: 'Courier New';"&gt;Robert Nicolas 30 $60,000&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 10pt; background: #ffffc0; color: black; font-family: 'Courier New';"&gt;Leo Thomas 35 $70,000&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 10pt; background: #ffffc0; color: black; font-family: 'Courier New';"&gt;Hello&amp;nbsp;&amp;nbsp;&amp;nbsp; Kitty . .&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 10pt; background: white; color: black; font-family: 'Courier New';"&gt;;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; &lt;SPAN style="color: navy; background: white; font-size: 10pt; font-family: 'Courier New';"&gt;&lt;STRONG&gt;run&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;SPAN style="font-size: 10pt; background: white; color: black; font-family: 'Courier New';"&gt;;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: navy; background: white; font-size: 10pt; font-family: 'Courier New';"&gt;&lt;STRONG&gt;proc&lt;/STRONG&gt;&lt;/SPAN&gt; &lt;SPAN style="color: navy; background: white; font-size: 10pt; font-family: 'Courier New';"&gt;&lt;STRONG&gt;print&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;SPAN style="font-size: 10pt; background: white; color: black; font-family: 'Courier New';"&gt;;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; &lt;SPAN style="color: navy; background: white; font-size: 10pt; font-family: 'Courier New';"&gt;&lt;STRONG&gt;run&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;SPAN style="font-size: 10pt; background: white; color: black; font-family: 'Courier New';"&gt;;&lt;/SPAN&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 10 May 2012 22:48:05 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Reading-Embedded-Spaces-in-Data/m-p/110641#M22961</guid>
      <dc:creator>data_null__</dc:creator>
      <dc:date>2012-05-10T22:48:05Z</dc:date>
    </item>
    <item>
      <title>Re: Reading Embedded Spaces in Data</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Reading-Embedded-Spaces-in-Data/m-p/110642#M22962</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;How about:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;PRE&gt;data x (drop=x:);
infile cards truncover ;
length name $ 40;
input (x1-x3) (:$20.) @;
if anydigit(x3) then do;
&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; input +(-1*(length(x3)+1)) age sal : dollar12.;
&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; call missing(x3);
&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; end;
 else input age sal : dollar12.;
name=catx(' ',of x1-x3);
cards;
John J. Matthew 40 $90,000
George Wilson 28 $50,000
Robert David Nicolas 30 $60,000
Leo Thomas 35 $70,000
Xia Ke Shan 45 $43,432
Hello&amp;nbsp;&amp;nbsp;&amp;nbsp; Kitty . .
;
run;

&lt;/PRE&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;P&gt;&lt;/P&gt;&lt;P&gt;Message was edited by: xia keshan&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 11 May 2012 03:30:03 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Reading-Embedded-Spaces-in-Data/m-p/110642#M22962</guid>
      <dc:creator>Ksharp</dc:creator>
      <dc:date>2012-05-11T03:30:03Z</dc:date>
    </item>
    <item>
      <title>Re: Reading Embedded Spaces in Data</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Reading-Embedded-Spaces-in-Data/m-p/110643#M22963</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Adding one more reply to the mix...&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;data one;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; length line $100;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; infile cards dlm="|";&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; input line;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; cards;&lt;/P&gt;&lt;P&gt;John Q. Matthew 40 $90,000&lt;/P&gt;&lt;P&gt;George&amp;nbsp; Wilson&amp;nbsp;&amp;nbsp; 28&amp;nbsp;&amp;nbsp;&amp;nbsp; $50,000&lt;/P&gt;&lt;P&gt;Robert&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Nicolas&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 30 $60,000&lt;/P&gt;&lt;P&gt;Leo Thomas&amp;nbsp; 35&amp;nbsp;&amp;nbsp;&amp;nbsp; $70,000&lt;/P&gt;&lt;P&gt;Thurston Howell The 3rd&amp;nbsp; 65 $1,000,000&lt;/P&gt;&lt;P&gt;Thurston Howell The 3 rd&amp;nbsp; 65 $1,000,000&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;data two;&lt;/P&gt;&lt;P&gt;&amp;nbsp; length name age inc $40;&lt;/P&gt;&lt;P&gt;&amp;nbsp; set one;&lt;/P&gt;&lt;P&gt;&amp;nbsp; rx=prxparse("/^(.*?)(\d+)\s+(.*)$/");&lt;/P&gt;&lt;P&gt;&amp;nbsp; if prxmatch(rx,line) then do;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; name=prxposn(rx,1,line);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; * age=input(prxposn(rx,2,line),best.);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; age=prxposn(rx,2,line);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; * inc=input(prxposn(rx,3,line),dollar18.);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; inc=prxposn(rx,3,line);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; inc2=input(inc,dollar18.);&lt;/P&gt;&lt;P&gt;&amp;nbsp; end;&lt;/P&gt;&lt;P&gt;&amp;nbsp; format inc2 dollar18.;&lt;/P&gt;&lt;P&gt;run;&lt;/P&gt;&lt;P&gt;The regular expression in prxparse is:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;1) Lazy capture all characters anchored at the start of the line until you encounter one or more digits separated by one or more spaces.&amp;nbsp; That's why the first "Thurston Howell" line worked but the second one didn't.&lt;/P&gt;&lt;P&gt;2) Capture the first encounter of one or more digits followed by one or more spaces.&amp;nbsp; The lazy capture (.*&lt;SPAN style="color: #ff0000;"&gt;&lt;STRONG&gt;?&lt;/STRONG&gt;&lt;/SPAN&gt;) ensures you stop at the first encounter of the digits.&amp;nbsp; Since dot (.) matches ANY character, a greedy capture would capture until the last encounter of digit + a space.&amp;nbsp; Probably not an issue with this data, but still, I think a lazy capture is best here.&lt;/P&gt;&lt;P&gt;3) Greedy capture all characters after the digit plus one or more spaces until the end of the line.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I left name, age, and inc as character values for debugging.&amp;nbsp; Once you're happy with the parsing, you can change the data type and nest the prxposn calls inside the input calls.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;HTH,&lt;/P&gt;&lt;P&gt;Scott&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;P.S.:&amp;nbsp; Can someone explain how you embed the SAS &lt;SPAN style="text-decoration: underline;"&gt;formatted&lt;/SPAN&gt; code (color, etc.) into these messages?&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 11 May 2012 06:49:13 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Reading-Embedded-Spaces-in-Data/m-p/110643#M22963</guid>
      <dc:creator>ScottBass</dc:creator>
      <dc:date>2012-05-11T06:49:13Z</dc:date>
    </item>
    <item>
      <title>Re: Reading Embedded Spaces in Data</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Reading-Embedded-Spaces-in-Data/m-p/110644#M22964</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P style="margin-bottom: 0.0001pt;"&gt;&lt;STRONG&gt;&lt;SPAN lang="EN-US" style="font-size: 9pt; font-family: 'Courier New'; color: navy; background: none repeat scroll 0% 0% white;"&gt;Scott &lt;/SPAN&gt;&lt;/STRONG&gt;&lt;/P&gt;&lt;P style="margin-bottom: 0.0001pt;"&gt;&lt;STRONG&gt;&lt;SPAN lang="EN-US" style="font-size: 9pt; font-family: 'Courier New'; color: navy; background: none repeat scroll 0% 0% white;"&gt;copying from the enhanced editor to Word (2010 for me)&lt;/SPAN&gt;&lt;/STRONG&gt;&lt;/P&gt;&lt;P style="margin-bottom: 0.0001pt;"&gt;&lt;STRONG&gt;&lt;SPAN lang="EN-US" style="font-size: 9pt; font-family: 'Courier New'; color: navy; background: none repeat scroll 0% 0% white;"&gt;and then copy from word to the answer screen&amp;nbsp; as it is.&lt;/SPAN&gt;&lt;/STRONG&gt;&lt;/P&gt;&lt;P style="margin-bottom: 0.0001pt;"&gt;&lt;STRONG&gt;&lt;SPAN lang="EN-US" style="font-size: 9pt; font-family: 'Courier New'; color: navy; background: none repeat scroll 0% 0% white;"&gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;/STRONG&gt;&lt;/P&gt;&lt;P style="margin-bottom: 0.0001pt;"&gt;&lt;STRONG&gt;&lt;SPAN lang="EN-US" style="font-size: 9pt; font-family: 'Courier New'; color: navy; background: none repeat scroll 0% 0% white;"&gt;I think it is working&lt;BR /&gt;&lt;/SPAN&gt;&lt;/STRONG&gt;&lt;/P&gt;&lt;P style="margin-bottom: 0.0001pt;"&gt;&lt;STRONG&gt;&lt;SPAN lang="EN-US" style="font-size: 9pt; font-family: 'Courier New'; color: navy; background: none repeat scroll 0% 0% white;"&gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;/STRONG&gt;&lt;/P&gt;&lt;P style="margin-bottom: 0.0001pt;"&gt;&lt;STRONG&gt;&lt;SPAN lang="EN-US" style="font-size: 9pt; font-family: 'Courier New'; color: navy; background: none repeat scroll 0% 0% white;"&gt;data&lt;/SPAN&gt;&lt;/STRONG&gt;&lt;SPAN lang="EN-US" style="font-size: 9pt; font-family: 'Courier New'; color: black; background: none repeat scroll 0% 0% white;"&gt; two;&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="margin-bottom: 0.0001pt;"&gt;&amp;nbsp; &lt;SPAN lang="EN-US" style="font-size: 9pt; font-family: 'Courier New'; color: blue; background: none repeat scroll 0% 0% white;"&gt;length&lt;/SPAN&gt;&lt;SPAN lang="EN-US" style="font-size: 9pt; font-family: 'Courier New'; color: black; background: none repeat scroll 0% 0% white;"&gt; name age inc $&lt;/SPAN&gt;&lt;STRONG&gt;&lt;SPAN lang="EN-US" style="font-size: 9pt; font-family: 'Courier New'; color: teal; background: none repeat scroll 0% 0% white;"&gt;40&lt;/SPAN&gt;&lt;/STRONG&gt;&lt;SPAN lang="EN-US" style="font-size: 9pt; font-family: 'Courier New'; color: black; background: none repeat scroll 0% 0% white;"&gt;;&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="margin-bottom: 0.0001pt;"&gt;&amp;nbsp; &lt;SPAN lang="EN-US" style="font-size: 9pt; font-family: 'Courier New'; color: blue; background: none repeat scroll 0% 0% white;"&gt;set&lt;/SPAN&gt;&lt;SPAN lang="EN-US" style="font-size: 9pt; font-family: 'Courier New'; color: black; background: none repeat scroll 0% 0% white;"&gt; one;&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="margin-bottom: 0.0001pt;"&gt;&lt;SPAN lang="EN-US" style="font-size: 9pt; font-family: 'Courier New'; color: black; background: none repeat scroll 0% 0% white;"&gt;&amp;nbsp; rx=prxparse(&lt;/SPAN&gt;&lt;SPAN lang="EN-US" style="font-size: 9pt; font-family: 'Courier New'; color: purple; background: none repeat scroll 0% 0% white;"&gt;"/^(.*?)(\d+)\s+(.*)$/"&lt;/SPAN&gt;&lt;SPAN lang="EN-US" style="font-size: 9pt; font-family: 'Courier New'; color: black; background: none repeat scroll 0% 0% white;"&gt;);&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="margin-bottom: 0.0001pt;"&gt;&amp;nbsp; &lt;SPAN lang="EN-US" style="font-size: 9pt; font-family: 'Courier New'; color: blue; background: none repeat scroll 0% 0% white;"&gt;if&lt;/SPAN&gt;&lt;SPAN lang="EN-US" style="font-size: 9pt; font-family: 'Courier New'; color: black; background: none repeat scroll 0% 0% white;"&gt; prxmatch(rx,line) &lt;/SPAN&gt;&lt;SPAN lang="EN-US" style="font-size: 9pt; font-family: 'Courier New'; color: blue; background: none repeat scroll 0% 0% white;"&gt;then&lt;/SPAN&gt; &lt;SPAN lang="EN-US" style="font-size: 9pt; font-family: 'Courier New'; color: blue; background: none repeat scroll 0% 0% white;"&gt;do&lt;/SPAN&gt;&lt;SPAN lang="EN-US" style="font-size: 9pt; font-family: 'Courier New'; color: black; background: none repeat scroll 0% 0% white;"&gt;;&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="margin-bottom: 0.0001pt;"&gt;&lt;SPAN lang="EN-US" style="font-size: 9pt; font-family: 'Courier New'; color: black; background: none repeat scroll 0% 0% white;"&gt; name=prxposn(rx,&lt;/SPAN&gt;&lt;STRONG&gt;&lt;SPAN lang="EN-US" style="font-size: 9pt; font-family: 'Courier New'; color: teal; background: none repeat scroll 0% 0% white;"&gt;1&lt;/SPAN&gt;&lt;/STRONG&gt;&lt;SPAN lang="EN-US" style="font-size: 9pt; font-family: 'Courier New'; color: black; background: none repeat scroll 0% 0% white;"&gt;,line);&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="margin-bottom: 0.0001pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN lang="EN-US" style="font-size: 9pt; font-family: 'Courier New'; color: green; background: none repeat scroll 0% 0% white;"&gt;* age=input(prxposn(rx,2,line),best.);&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="margin-bottom: 0.0001pt;"&gt;&lt;SPAN lang="EN-US" style="font-size: 9pt; font-family: 'Courier New'; color: black; background: none repeat scroll 0% 0% white;"&gt; age=prxposn(rx,&lt;/SPAN&gt;&lt;STRONG&gt;&lt;SPAN lang="EN-US" style="font-size: 9pt; font-family: 'Courier New'; color: teal; background: none repeat scroll 0% 0% white;"&gt;2&lt;/SPAN&gt;&lt;/STRONG&gt;&lt;SPAN lang="EN-US" style="font-size: 9pt; font-family: 'Courier New'; color: black; background: none repeat scroll 0% 0% white;"&gt;,line);&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="margin-bottom: 0.0001pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN lang="EN-US" style="font-size: 9pt; font-family: 'Courier New'; color: green; background: none repeat scroll 0% 0% white;"&gt;* inc=input(prxposn(rx,3,line),dollar18.);&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="margin-bottom: 0.0001pt;"&gt;&lt;SPAN lang="EN-US" style="font-size: 9pt; font-family: 'Courier New'; color: black; background: none repeat scroll 0% 0% white;"&gt; inc=prxposn(rx,&lt;/SPAN&gt;&lt;STRONG&gt;&lt;SPAN lang="EN-US" style="font-size: 9pt; font-family: 'Courier New'; color: teal; background: none repeat scroll 0% 0% white;"&gt;3&lt;/SPAN&gt;&lt;/STRONG&gt;&lt;SPAN lang="EN-US" style="font-size: 9pt; font-family: 'Courier New'; color: black; background: none repeat scroll 0% 0% white;"&gt;,line);&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="margin-bottom: 0.0001pt;"&gt;&lt;SPAN lang="EN-US" style="font-size: 9pt; font-family: 'Courier New'; color: black; background: none repeat scroll 0% 0% white;"&gt; inc2=input(inc,&lt;/SPAN&gt;&lt;SPAN lang="EN-US" style="font-size: 9pt; font-family: 'Courier New'; color: teal; background: none repeat scroll 0% 0% white;"&gt;dollar18.&lt;/SPAN&gt;&lt;SPAN lang="EN-US" style="font-size: 9pt; font-family: 'Courier New'; color: black; background: none repeat scroll 0% 0% white;"&gt;);&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="margin-bottom: 0.0001pt;"&gt;&amp;nbsp; &lt;SPAN style="font-size: 9pt; font-family: 'Courier New'; color: blue; background: none repeat scroll 0% 0% white;"&gt;end&lt;/SPAN&gt;&lt;SPAN style="font-size: 9pt; font-family: 'Courier New'; color: black; background: none repeat scroll 0% 0% white;"&gt;;&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="margin-bottom: 0.0001pt;"&gt;&amp;nbsp; &lt;SPAN style="font-size: 9pt; font-family: 'Courier New'; color: blue; background: none repeat scroll 0% 0% white;"&gt;format&lt;/SPAN&gt;&lt;SPAN style="font-size: 9pt; font-family: 'Courier New'; color: black; background: none repeat scroll 0% 0% white;"&gt; inc2 &lt;/SPAN&gt;&lt;SPAN style="font-size: 9pt; font-family: 'Courier New'; color: teal; background: none repeat scroll 0% 0% white;"&gt;dollar18.&lt;/SPAN&gt;&lt;SPAN style="font-size: 9pt; font-family: 'Courier New'; color: black; background: none repeat scroll 0% 0% white;"&gt;;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: navy; background: none repeat scroll 0% 0% white; font-size: 9pt; font-family: 'Courier New';"&gt;&lt;STRONG&gt;run&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;SPAN style="font-size: 9pt; font-family: 'Courier New'; color: black; background: none repeat scroll 0% 0% white;"&gt;;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 9pt; font-family: 'Courier New'; color: black; background: none repeat scroll 0% 0% white;"&gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 9pt; font-family: 'Courier New'; color: black; background: none repeat scroll 0% 0% white;"&gt;HTH&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 9pt; font-family: 'Courier New'; color: black; background: none repeat scroll 0% 0% white;"&gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 9pt; font-family: 'Courier New'; color: black; background: none repeat scroll 0% 0% white;"&gt;Andre&lt;BR /&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 11 May 2012 08:15:06 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Reading-Embedded-Spaces-in-Data/m-p/110644#M22964</guid>
      <dc:creator>Andre</dc:creator>
      <dc:date>2012-05-11T08:15:06Z</dc:date>
    </item>
  </channel>
</rss>

