<?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 Connection to url via filename failed: ERROR: Host name www.google.com not found. in SAS Programming</title>
    <link>https://communities.sas.com/t5/SAS-Programming/Connection-to-url-via-filename-failed-ERROR-Host-name-www-google/m-p/247988#M46539</link>
    <description>&lt;P&gt;Hi at all guys&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I get the following errors running the code below which is posted here&amp;nbsp;&lt;A href="http://www.sascommunity.org/wiki/Driving_Distances_and_Drive_Times_using_SAS_and_Google_Maps" target="_blank"&gt;http://www.sascommunity.org/wiki/Driving_Distances_and_Drive_Times_using_SAS_and_Google_Maps&lt;/A&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;ERROR: Host name &lt;A href="http://www.google.com" target="_blank"&gt;www.google.com&lt;/A&gt; not found.&lt;BR /&gt;&lt;BR /&gt;ERROR 24-2: Invalid value for the LRECL option.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;The cod eis below. It seems that I get problem in connecting to Google. Any idea about how to fix it? Bests&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;PRE class="de1"&gt;&lt;SPAN class="coMULTI"&gt; data set with IDs and ADDRESSES;&lt;/SPAN&gt;
&lt;SPAN class="kw6"&gt;data&lt;/SPAN&gt; addresses;
&lt;SPAN class="kw3"&gt;length&lt;/SPAN&gt; addr1 addr2 $50;
&lt;SPAN class="kw3"&gt;input&lt;/SPAN&gt; 
@01 id     $5.
@10 addr1  $30.
@40 addr2  $30.
;
zip = &lt;SPAN class="kw3"&gt;input&lt;/SPAN&gt;&lt;SPAN class="br0"&gt;(&lt;/SPAN&gt;&lt;SPAN class="kw3"&gt;scan&lt;/SPAN&gt;&lt;SPAN class="br0"&gt;(&lt;/SPAN&gt;addr1,-&lt;SPAN class="nu0"&gt;1&lt;/SPAN&gt;&lt;SPAN class="br0"&gt;)&lt;/SPAN&gt;,&lt;SPAN class="nu0"&gt;5&lt;/SPAN&gt;.&lt;SPAN class="br0"&gt;)&lt;/SPAN&gt;;
&lt;SPAN class="kw4"&gt;set&lt;/SPAN&gt; sashelp.zipcode &lt;SPAN class="br0"&gt;(&lt;/SPAN&gt;&lt;SPAN class="kw4"&gt;keep&lt;/SPAN&gt;=zip poname statecode&lt;SPAN class="br0"&gt;)&lt;/SPAN&gt; &lt;SPAN class="kw4"&gt;key&lt;/SPAN&gt;=zip / &lt;SPAN class="kw4"&gt;unique&lt;/SPAN&gt;;
addr1 = catx&lt;SPAN class="br0"&gt;(&lt;/SPAN&gt;&lt;SPAN class="st0"&gt;' '&lt;/SPAN&gt;,catx&lt;SPAN class="br0"&gt;(&lt;/SPAN&gt;&lt;SPAN class="st0"&gt;',+'&lt;/SPAN&gt;,&lt;SPAN class="kw3"&gt;scan&lt;/SPAN&gt;&lt;SPAN class="br0"&gt;(&lt;/SPAN&gt;addr1,&lt;SPAN class="nu0"&gt;1&lt;/SPAN&gt;,&lt;SPAN class="st0"&gt;','&lt;/SPAN&gt;&lt;SPAN class="br0"&gt;)&lt;/SPAN&gt;,poname,statecode&lt;SPAN class="br0"&gt;)&lt;/SPAN&gt;,zip&lt;SPAN class="br0"&gt;)&lt;/SPAN&gt;;
zip = &lt;SPAN class="kw3"&gt;input&lt;/SPAN&gt;&lt;SPAN class="br0"&gt;(&lt;/SPAN&gt;&lt;SPAN class="kw3"&gt;scan&lt;/SPAN&gt;&lt;SPAN class="br0"&gt;(&lt;/SPAN&gt;addr2,-&lt;SPAN class="nu0"&gt;1&lt;/SPAN&gt;&lt;SPAN class="br0"&gt;)&lt;/SPAN&gt;,&lt;SPAN class="nu0"&gt;5&lt;/SPAN&gt;.&lt;SPAN class="br0"&gt;)&lt;/SPAN&gt;;
&lt;SPAN class="kw4"&gt;set&lt;/SPAN&gt; sashelp.zipcode &lt;SPAN class="br0"&gt;(&lt;/SPAN&gt;&lt;SPAN class="kw4"&gt;keep&lt;/SPAN&gt;=zip poname statecode&lt;SPAN class="br0"&gt;)&lt;/SPAN&gt; &lt;SPAN class="kw4"&gt;key&lt;/SPAN&gt;=zip / &lt;SPAN class="kw4"&gt;unique&lt;/SPAN&gt;;
addr2 = catx&lt;SPAN class="br0"&gt;(&lt;/SPAN&gt;&lt;SPAN class="st0"&gt;' '&lt;/SPAN&gt;,catx&lt;SPAN class="br0"&gt;(&lt;/SPAN&gt;&lt;SPAN class="st0"&gt;',+'&lt;/SPAN&gt;,&lt;SPAN class="kw3"&gt;scan&lt;/SPAN&gt;&lt;SPAN class="br0"&gt;(&lt;/SPAN&gt;addr2,&lt;SPAN class="nu0"&gt;1&lt;/SPAN&gt;,&lt;SPAN class="st0"&gt;','&lt;/SPAN&gt;&lt;SPAN class="br0"&gt;)&lt;/SPAN&gt;,poname,statecode&lt;SPAN class="br0"&gt;)&lt;/SPAN&gt;,zip&lt;SPAN class="br0"&gt;)&lt;/SPAN&gt;;
&lt;SPAN class="kw4"&gt;keep&lt;/SPAN&gt; id &lt;SPAN class="kw3"&gt;addr&lt;/SPAN&gt;:&amp;nbsp;;
datalines;
&lt;SPAN class="nu0"&gt;12345&lt;/SPAN&gt;    &lt;SPAN class="nu0"&gt;59&lt;/SPAN&gt; LENOX AVE, &lt;SPAN class="nu0"&gt;12203&lt;/SPAN&gt;            &lt;SPAN class="nu0"&gt;1&lt;/SPAN&gt; UNIVERSITY PL, &lt;SPAN class="nu0"&gt;12144&lt;/SPAN&gt;
&lt;SPAN class="nu0"&gt;98989&lt;/SPAN&gt;    &lt;SPAN class="nu0"&gt;616&lt;/SPAN&gt; COSBY ROAD, &lt;SPAN class="nu0"&gt;13502&lt;/SPAN&gt;          &lt;SPAN class="nu0"&gt;59&lt;/SPAN&gt; LENOX AVE, &lt;SPAN class="nu0"&gt;12203&lt;/SPAN&gt;
&lt;SPAN class="nu0"&gt;99999&lt;/SPAN&gt;    &lt;SPAN class="nu0"&gt;59&lt;/SPAN&gt; Lenox Ave, &lt;SPAN class="nu0"&gt;12203&lt;/SPAN&gt;            SAS Campus Drive, &lt;SPAN class="nu0"&gt;27513&lt;/SPAN&gt;
&lt;SPAN class="nu0"&gt;87878&lt;/SPAN&gt;    &lt;SPAN class="nu0"&gt;370&lt;/SPAN&gt; Frederick St, &lt;SPAN class="nu0"&gt;94117&lt;/SPAN&gt;        &lt;SPAN class="nu0"&gt;2129&lt;/SPAN&gt; &lt;SPAN class="kw3"&gt;N&lt;/SPAN&gt; St NW, &lt;SPAN class="nu0"&gt;20037&lt;/SPAN&gt;
;
&amp;nbsp;
&lt;SPAN class="coMULTI"&gt;* place number of addresses in a macro variable;&lt;/SPAN&gt;
&lt;SPAN class="kw6"&gt;data&lt;/SPAN&gt; &lt;SPAN class="kw1"&gt;_null_&lt;/SPAN&gt;;
&lt;SPAN class="kw4"&gt;call&lt;/SPAN&gt; symputx&lt;SPAN class="br0"&gt;(&lt;/SPAN&gt;&lt;SPAN class="st0"&gt;'naddr'&lt;/SPAN&gt;,obs&lt;SPAN class="br0"&gt;)&lt;/SPAN&gt;;
&lt;SPAN class="kw4"&gt;stop&lt;/SPAN&gt;;
&lt;SPAN class="kw4"&gt;set&lt;/SPAN&gt; addresses nobs=obs;
&lt;SPAN class="kw6"&gt;run&lt;/SPAN&gt;;
&amp;nbsp;
&lt;SPAN class="coMULTI"&gt;* delete any data set named DISTANCE_TIME that might exist in the WORK library;&lt;/SPAN&gt;
&lt;SPAN class="re1"&gt;proc datasets&lt;/SPAN&gt; lib=work nolist;
&lt;SPAN class="kw4"&gt;delete&lt;/SPAN&gt; distance_time;
&lt;SPAN class="kw6"&gt;quit&lt;/SPAN&gt;;
&amp;nbsp;
&lt;SPAN class="coMULTI"&gt;* use a loop within a macro to access Google Maps multiple time;&lt;/SPAN&gt;
&lt;SPAN class="kw2"&gt;%macro&lt;/SPAN&gt; distance_time;
&lt;SPAN class="kw2"&gt;%do&lt;/SPAN&gt; j=&lt;SPAN class="nu0"&gt;1&lt;/SPAN&gt; &lt;SPAN class="kw2"&gt;%to&lt;/SPAN&gt; &lt;SPAN class="re0"&gt;&amp;amp;naddr&lt;/SPAN&gt;;
&lt;SPAN class="kw6"&gt;data&lt;/SPAN&gt; &lt;SPAN class="kw1"&gt;_null_&lt;/SPAN&gt;;
nrec = &lt;SPAN class="re0"&gt;&amp;amp;j&lt;/SPAN&gt;;
&lt;SPAN class="kw4"&gt;set&lt;/SPAN&gt; addresses &lt;SPAN class="kw3"&gt;point&lt;/SPAN&gt;=nrec;
&lt;SPAN class="kw4"&gt;call&lt;/SPAN&gt; symputx&lt;SPAN class="br0"&gt;(&lt;/SPAN&gt;&lt;SPAN class="st0"&gt;'id'&lt;/SPAN&gt;,id&lt;SPAN class="br0"&gt;)&lt;/SPAN&gt;;
&lt;SPAN class="kw4"&gt;call&lt;/SPAN&gt; symputx&lt;SPAN class="br0"&gt;(&lt;/SPAN&gt;&lt;SPAN class="st0"&gt;'a1'&lt;/SPAN&gt;,&lt;SPAN class="kw3"&gt;translate&lt;/SPAN&gt;&lt;SPAN class="br0"&gt;(&lt;/SPAN&gt;&lt;SPAN class="kw3"&gt;trim&lt;/SPAN&gt;&lt;SPAN class="br0"&gt;(&lt;/SPAN&gt;addr1&lt;SPAN class="br0"&gt;)&lt;/SPAN&gt;,&lt;SPAN class="st0"&gt;'+'&lt;/SPAN&gt;,&lt;SPAN class="st0"&gt;' '&lt;/SPAN&gt;&lt;SPAN class="br0"&gt;)&lt;/SPAN&gt;&lt;SPAN class="br0"&gt;)&lt;/SPAN&gt;;
&lt;SPAN class="kw4"&gt;call&lt;/SPAN&gt; symputx&lt;SPAN class="br0"&gt;(&lt;/SPAN&gt;&lt;SPAN class="st0"&gt;'a2'&lt;/SPAN&gt;,&lt;SPAN class="kw3"&gt;translate&lt;/SPAN&gt;&lt;SPAN class="br0"&gt;(&lt;/SPAN&gt;&lt;SPAN class="kw3"&gt;trim&lt;/SPAN&gt;&lt;SPAN class="br0"&gt;(&lt;/SPAN&gt;addr2&lt;SPAN class="br0"&gt;)&lt;/SPAN&gt;,&lt;SPAN class="st0"&gt;'+'&lt;/SPAN&gt;,&lt;SPAN class="st0"&gt;' '&lt;/SPAN&gt;&lt;SPAN class="br0"&gt;)&lt;/SPAN&gt;&lt;SPAN class="br0"&gt;)&lt;/SPAN&gt;;
&lt;SPAN class="kw4"&gt;stop&lt;/SPAN&gt;;
&lt;SPAN class="kw4"&gt;stop&lt;/SPAN&gt;;
&lt;SPAN class="kw6"&gt;run&lt;/SPAN&gt;;
&amp;nbsp;
&lt;SPAN class="kw3"&gt;filename&lt;/SPAN&gt; &lt;SPAN class="kw4"&gt;x&lt;/SPAN&gt; url &lt;SPAN class="st0"&gt;"https://www.google.com/maps/dir/&amp;amp;a1/&amp;amp;a2/?force=lite"&lt;/SPAN&gt;;
&lt;SPAN class="kw3"&gt;filename&lt;/SPAN&gt; z temp;
&amp;nbsp;
&lt;SPAN class="kw6"&gt;data&lt;/SPAN&gt; &lt;SPAN class="kw1"&gt;_null_&lt;/SPAN&gt;; 
&lt;SPAN class="kw4"&gt;infile&lt;/SPAN&gt; &lt;SPAN class="kw4"&gt;x&lt;/SPAN&gt; recfm=f lrecl=&lt;SPAN class="nu0"&gt;1&lt;/SPAN&gt; &lt;SPAN class="kw5"&gt;end&lt;/SPAN&gt;=eof; 
&lt;SPAN class="kw4"&gt;file&lt;/SPAN&gt; z recfm=f lrecl=&lt;SPAN class="nu0"&gt;1&lt;/SPAN&gt;;
&lt;SPAN class="kw3"&gt;input&lt;/SPAN&gt; @1 &lt;SPAN class="kw4"&gt;x&lt;/SPAN&gt; $char1.; 
&lt;SPAN class="kw3"&gt;put&lt;/SPAN&gt; @1 &lt;SPAN class="kw4"&gt;x&lt;/SPAN&gt; $char1.;
&lt;SPAN class="kw5"&gt;if&lt;/SPAN&gt; eof;
&lt;SPAN class="kw4"&gt;call&lt;/SPAN&gt; symputx&lt;SPAN class="br0"&gt;(&lt;/SPAN&gt;&lt;SPAN class="st0"&gt;'filesize'&lt;/SPAN&gt;,&lt;SPAN class="kw1"&gt;_n_&lt;/SPAN&gt;&lt;SPAN class="br0"&gt;)&lt;/SPAN&gt;;
&lt;SPAN class="kw6"&gt;run&lt;/SPAN&gt;;
&amp;nbsp;
&lt;SPAN class="kw6"&gt;data&lt;/SPAN&gt; temp;
&lt;SPAN class="kw3"&gt;length&lt;/SPAN&gt; addr1 addr2 $50;
id = &lt;SPAN class="st0"&gt;"&amp;amp;id"&lt;/SPAN&gt;;
addr1 = &lt;SPAN class="kw3"&gt;upcase&lt;/SPAN&gt;&lt;SPAN class="br0"&gt;(&lt;/SPAN&gt;&lt;SPAN class="kw3"&gt;translate&lt;/SPAN&gt;&lt;SPAN class="br0"&gt;(&lt;/SPAN&gt;&lt;SPAN class="st0"&gt;"&amp;amp;a1"&lt;/SPAN&gt;,&lt;SPAN class="st0"&gt;' '&lt;/SPAN&gt;,&lt;SPAN class="st0"&gt;'+'&lt;/SPAN&gt;&lt;SPAN class="br0"&gt;)&lt;/SPAN&gt;&lt;SPAN class="br0"&gt;)&lt;/SPAN&gt;;
addr2 = &lt;SPAN class="kw3"&gt;upcase&lt;/SPAN&gt;&lt;SPAN class="br0"&gt;(&lt;/SPAN&gt;&lt;SPAN class="kw3"&gt;translate&lt;/SPAN&gt;&lt;SPAN class="br0"&gt;(&lt;/SPAN&gt;&lt;SPAN class="st0"&gt;"&amp;amp;a2"&lt;/SPAN&gt;,&lt;SPAN class="st0"&gt;' '&lt;/SPAN&gt;,&lt;SPAN class="st0"&gt;'+'&lt;/SPAN&gt;&lt;SPAN class="br0"&gt;)&lt;/SPAN&gt;&lt;SPAN class="br0"&gt;)&lt;/SPAN&gt;;
&amp;nbsp;
&lt;SPAN class="kw4"&gt;infile&lt;/SPAN&gt; z recfm=f lrecl=&lt;SPAN class="re0"&gt;&amp;amp;filesize&lt;/SPAN&gt;. eof=done;
&lt;SPAN class="kw3"&gt;input&lt;/SPAN&gt; @ &lt;SPAN class="st0"&gt;'miles'&lt;/SPAN&gt; +&lt;SPAN class="br0"&gt;(&lt;/SPAN&gt;-&lt;SPAN class="nu0"&gt;15&lt;/SPAN&gt;&lt;SPAN class="br0"&gt;)&lt;/SPAN&gt; @ &lt;SPAN class="st0"&gt;'"'&lt;/SPAN&gt; distance&amp;nbsp;:comma12. text $30.;
units    = &lt;SPAN class="kw3"&gt;scan&lt;/SPAN&gt;&lt;SPAN class="br0"&gt;(&lt;/SPAN&gt;text,&lt;SPAN class="nu0"&gt;1&lt;/SPAN&gt;,&lt;SPAN class="st0"&gt;'"'&lt;/SPAN&gt;&lt;SPAN class="br0"&gt;)&lt;/SPAN&gt;;
text     = &lt;SPAN class="kw3"&gt;scan&lt;/SPAN&gt;&lt;SPAN class="br0"&gt;(&lt;/SPAN&gt;text,&lt;SPAN class="nu0"&gt;3&lt;/SPAN&gt;,&lt;SPAN class="st0"&gt;'"'&lt;/SPAN&gt;&lt;SPAN class="br0"&gt;)&lt;/SPAN&gt;;
&amp;nbsp;
&lt;SPAN class="coMULTI"&gt;* convert times to seconds;&lt;/SPAN&gt;
  &lt;SPAN class="kw4"&gt;select&lt;/SPAN&gt;;
&lt;SPAN class="coMULTI"&gt;* combine days and hours;&lt;/SPAN&gt;
   when &lt;SPAN class="br0"&gt;(&lt;/SPAN&gt;find&lt;SPAN class="br0"&gt;(&lt;/SPAN&gt;text,&lt;SPAN class="st0"&gt;'d'&lt;/SPAN&gt;&lt;SPAN class="br0"&gt;)&lt;/SPAN&gt; ne &lt;SPAN class="nu0"&gt;0&lt;/SPAN&gt;&lt;SPAN class="br0"&gt;)&lt;/SPAN&gt; &lt;SPAN class="kw3"&gt;time&lt;/SPAN&gt; = &lt;SPAN class="kw3"&gt;sum&lt;/SPAN&gt;&lt;SPAN class="br0"&gt;(&lt;/SPAN&gt;&lt;SPAN class="nu0"&gt;86400&lt;/SPAN&gt;&lt;SPAN class="coMULTI"&gt;*input(scan(text,1,' '),best.), 
                                        3600*input(scan(text,3,' '),best.));&lt;/SPAN&gt;
&lt;SPAN class="coMULTI"&gt;* combine hours and minutes;&lt;/SPAN&gt;
   when &lt;SPAN class="br0"&gt;(&lt;/SPAN&gt;find&lt;SPAN class="br0"&gt;(&lt;/SPAN&gt;text,&lt;SPAN class="st0"&gt;'h'&lt;/SPAN&gt;&lt;SPAN class="br0"&gt;)&lt;/SPAN&gt; ne &lt;SPAN class="nu0"&gt;0&lt;/SPAN&gt;&lt;SPAN class="br0"&gt;)&lt;/SPAN&gt; &lt;SPAN class="kw3"&gt;time&lt;/SPAN&gt; = &lt;SPAN class="kw3"&gt;sum&lt;/SPAN&gt;&lt;SPAN class="br0"&gt;(&lt;/SPAN&gt;&lt;SPAN class="nu0"&gt;3600&lt;/SPAN&gt;&lt;SPAN class="coMULTI"&gt;*input(scan(text,1,' '),best.), 
                                        60*input(scan(text,3,' '),best.));&lt;/SPAN&gt;
&lt;SPAN class="coMULTI"&gt;* just minutes;&lt;/SPAN&gt;
   otherwise                  &lt;SPAN class="kw3"&gt;time&lt;/SPAN&gt; = &lt;SPAN class="nu0"&gt;60&lt;/SPAN&gt;&lt;SPAN class="coMULTI"&gt;*input(scan(text,1,' '),best.);&lt;/SPAN&gt;
  &lt;SPAN class="kw5"&gt;end&lt;/SPAN&gt;;
&lt;SPAN class="kw4"&gt;output&lt;/SPAN&gt;;
&lt;SPAN class="kw4"&gt;keep&lt;/SPAN&gt; id addr1 addr2 distance units &lt;SPAN class="kw3"&gt;time&lt;/SPAN&gt;;
&lt;SPAN class="kw4"&gt;label&lt;/SPAN&gt;
addr1 = &lt;SPAN class="st0"&gt;'ADDRESS #1'&lt;/SPAN&gt;
addr2 = &lt;SPAN class="st0"&gt;'ADDRESS #2'&lt;/SPAN&gt;
id    = &lt;SPAN class="st0"&gt;'ID #'&lt;/SPAN&gt;
distance = &lt;SPAN class="st0"&gt;'DISTANCE (MILES)'&lt;/SPAN&gt;
&lt;SPAN class="kw3"&gt;time&lt;/SPAN&gt;     = &lt;SPAN class="st0"&gt;'TIME (HR:MIN)'&lt;/SPAN&gt;
;
&lt;SPAN class="kw4"&gt;stop&lt;/SPAN&gt;;
done:
&lt;SPAN class="kw4"&gt;output&lt;/SPAN&gt;;
&lt;SPAN class="kw6"&gt;run&lt;/SPAN&gt;;
&amp;nbsp;
&lt;SPAN class="kw3"&gt;filename&lt;/SPAN&gt; &lt;SPAN class="kw4"&gt;x&lt;/SPAN&gt; clear;
&lt;SPAN class="kw3"&gt;filename&lt;/SPAN&gt; z clear;
&amp;nbsp;
&lt;SPAN class="re1"&gt;proc append&lt;/SPAN&gt; base=distance_time &lt;SPAN class="kw6"&gt;data&lt;/SPAN&gt;=temp;
&lt;SPAN class="kw6"&gt;run&lt;/SPAN&gt;;
&lt;SPAN class="kw2"&gt;%end&lt;/SPAN&gt;;
&lt;SPAN class="kw2"&gt;%mend&lt;/SPAN&gt;;
&amp;nbsp;
&lt;SPAN class="coMULTI"&gt;* use the macro;&lt;/SPAN&gt;
%distance_time;
&amp;nbsp;
&lt;SPAN class="coMULTI"&gt;* 
add the distance between ZIP centroids 
(should be "in same ballpark" as driving distance)
;&lt;/SPAN&gt;
&lt;SPAN class="kw6"&gt;data&lt;/SPAN&gt; distance_time;
&lt;SPAN class="kw4"&gt;set&lt;/SPAN&gt; distance_time;
&lt;SPAN class="coMULTI"&gt;* ZIP should be LAST entry in the addresses;&lt;/SPAN&gt;
zip_city = zipcitydistance&lt;SPAN class="br0"&gt;(&lt;/SPAN&gt;&lt;SPAN class="kw3"&gt;scan&lt;/SPAN&gt;&lt;SPAN class="br0"&gt;(&lt;/SPAN&gt;addr1,-&lt;SPAN class="nu0"&gt;1&lt;/SPAN&gt;&lt;SPAN class="br0"&gt;)&lt;/SPAN&gt;,&lt;SPAN class="kw3"&gt;scan&lt;/SPAN&gt;&lt;SPAN class="br0"&gt;(&lt;/SPAN&gt;addr2,-&lt;SPAN class="nu0"&gt;1&lt;/SPAN&gt;&lt;SPAN class="br0"&gt;)&lt;/SPAN&gt;&lt;SPAN class="br0"&gt;)&lt;/SPAN&gt;;
&lt;SPAN class="kw4"&gt;label&lt;/SPAN&gt; zip_city = &lt;SPAN class="st0"&gt;'ZIPCITYDISTANCE FUNCTION'&lt;/SPAN&gt;;
&lt;SPAN class="kw6"&gt;run&lt;/SPAN&gt;;
&amp;nbsp;
&lt;SPAN class="kw4"&gt;title&lt;/SPAN&gt; &lt;SPAN class="st0"&gt;"DRIVING DISTANCE AND TIMES"&lt;/SPAN&gt;;
&lt;SPAN class="re1"&gt;proc print&lt;/SPAN&gt; &lt;SPAN class="kw6"&gt;data&lt;/SPAN&gt;=distance_time &lt;SPAN class="kw4"&gt;label&lt;/SPAN&gt; noobs;
&lt;SPAN class="kw3"&gt;var&lt;/SPAN&gt; id addr1 addr2 distance &lt;SPAN class="kw3"&gt;time&lt;/SPAN&gt; zip_city;
&lt;SPAN class="kw4"&gt;format&lt;/SPAN&gt; &lt;SPAN class="kw3"&gt;time&lt;/SPAN&gt; time6.;
&lt;SPAN class="kw6"&gt;run&lt;/SPAN&gt;;&lt;/PRE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
    <pubDate>Thu, 04 Feb 2016 14:55:03 GMT</pubDate>
    <dc:creator>dcortell</dc:creator>
    <dc:date>2016-02-04T14:55:03Z</dc:date>
    <item>
      <title>Connection to url via filename failed: ERROR: Host name www.google.com not found.</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Connection-to-url-via-filename-failed-ERROR-Host-name-www-google/m-p/247988#M46539</link>
      <description>&lt;P&gt;Hi at all guys&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I get the following errors running the code below which is posted here&amp;nbsp;&lt;A href="http://www.sascommunity.org/wiki/Driving_Distances_and_Drive_Times_using_SAS_and_Google_Maps" target="_blank"&gt;http://www.sascommunity.org/wiki/Driving_Distances_and_Drive_Times_using_SAS_and_Google_Maps&lt;/A&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;ERROR: Host name &lt;A href="http://www.google.com" target="_blank"&gt;www.google.com&lt;/A&gt; not found.&lt;BR /&gt;&lt;BR /&gt;ERROR 24-2: Invalid value for the LRECL option.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;The cod eis below. It seems that I get problem in connecting to Google. Any idea about how to fix it? Bests&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;PRE class="de1"&gt;&lt;SPAN class="coMULTI"&gt; data set with IDs and ADDRESSES;&lt;/SPAN&gt;
&lt;SPAN class="kw6"&gt;data&lt;/SPAN&gt; addresses;
&lt;SPAN class="kw3"&gt;length&lt;/SPAN&gt; addr1 addr2 $50;
&lt;SPAN class="kw3"&gt;input&lt;/SPAN&gt; 
@01 id     $5.
@10 addr1  $30.
@40 addr2  $30.
;
zip = &lt;SPAN class="kw3"&gt;input&lt;/SPAN&gt;&lt;SPAN class="br0"&gt;(&lt;/SPAN&gt;&lt;SPAN class="kw3"&gt;scan&lt;/SPAN&gt;&lt;SPAN class="br0"&gt;(&lt;/SPAN&gt;addr1,-&lt;SPAN class="nu0"&gt;1&lt;/SPAN&gt;&lt;SPAN class="br0"&gt;)&lt;/SPAN&gt;,&lt;SPAN class="nu0"&gt;5&lt;/SPAN&gt;.&lt;SPAN class="br0"&gt;)&lt;/SPAN&gt;;
&lt;SPAN class="kw4"&gt;set&lt;/SPAN&gt; sashelp.zipcode &lt;SPAN class="br0"&gt;(&lt;/SPAN&gt;&lt;SPAN class="kw4"&gt;keep&lt;/SPAN&gt;=zip poname statecode&lt;SPAN class="br0"&gt;)&lt;/SPAN&gt; &lt;SPAN class="kw4"&gt;key&lt;/SPAN&gt;=zip / &lt;SPAN class="kw4"&gt;unique&lt;/SPAN&gt;;
addr1 = catx&lt;SPAN class="br0"&gt;(&lt;/SPAN&gt;&lt;SPAN class="st0"&gt;' '&lt;/SPAN&gt;,catx&lt;SPAN class="br0"&gt;(&lt;/SPAN&gt;&lt;SPAN class="st0"&gt;',+'&lt;/SPAN&gt;,&lt;SPAN class="kw3"&gt;scan&lt;/SPAN&gt;&lt;SPAN class="br0"&gt;(&lt;/SPAN&gt;addr1,&lt;SPAN class="nu0"&gt;1&lt;/SPAN&gt;,&lt;SPAN class="st0"&gt;','&lt;/SPAN&gt;&lt;SPAN class="br0"&gt;)&lt;/SPAN&gt;,poname,statecode&lt;SPAN class="br0"&gt;)&lt;/SPAN&gt;,zip&lt;SPAN class="br0"&gt;)&lt;/SPAN&gt;;
zip = &lt;SPAN class="kw3"&gt;input&lt;/SPAN&gt;&lt;SPAN class="br0"&gt;(&lt;/SPAN&gt;&lt;SPAN class="kw3"&gt;scan&lt;/SPAN&gt;&lt;SPAN class="br0"&gt;(&lt;/SPAN&gt;addr2,-&lt;SPAN class="nu0"&gt;1&lt;/SPAN&gt;&lt;SPAN class="br0"&gt;)&lt;/SPAN&gt;,&lt;SPAN class="nu0"&gt;5&lt;/SPAN&gt;.&lt;SPAN class="br0"&gt;)&lt;/SPAN&gt;;
&lt;SPAN class="kw4"&gt;set&lt;/SPAN&gt; sashelp.zipcode &lt;SPAN class="br0"&gt;(&lt;/SPAN&gt;&lt;SPAN class="kw4"&gt;keep&lt;/SPAN&gt;=zip poname statecode&lt;SPAN class="br0"&gt;)&lt;/SPAN&gt; &lt;SPAN class="kw4"&gt;key&lt;/SPAN&gt;=zip / &lt;SPAN class="kw4"&gt;unique&lt;/SPAN&gt;;
addr2 = catx&lt;SPAN class="br0"&gt;(&lt;/SPAN&gt;&lt;SPAN class="st0"&gt;' '&lt;/SPAN&gt;,catx&lt;SPAN class="br0"&gt;(&lt;/SPAN&gt;&lt;SPAN class="st0"&gt;',+'&lt;/SPAN&gt;,&lt;SPAN class="kw3"&gt;scan&lt;/SPAN&gt;&lt;SPAN class="br0"&gt;(&lt;/SPAN&gt;addr2,&lt;SPAN class="nu0"&gt;1&lt;/SPAN&gt;,&lt;SPAN class="st0"&gt;','&lt;/SPAN&gt;&lt;SPAN class="br0"&gt;)&lt;/SPAN&gt;,poname,statecode&lt;SPAN class="br0"&gt;)&lt;/SPAN&gt;,zip&lt;SPAN class="br0"&gt;)&lt;/SPAN&gt;;
&lt;SPAN class="kw4"&gt;keep&lt;/SPAN&gt; id &lt;SPAN class="kw3"&gt;addr&lt;/SPAN&gt;:&amp;nbsp;;
datalines;
&lt;SPAN class="nu0"&gt;12345&lt;/SPAN&gt;    &lt;SPAN class="nu0"&gt;59&lt;/SPAN&gt; LENOX AVE, &lt;SPAN class="nu0"&gt;12203&lt;/SPAN&gt;            &lt;SPAN class="nu0"&gt;1&lt;/SPAN&gt; UNIVERSITY PL, &lt;SPAN class="nu0"&gt;12144&lt;/SPAN&gt;
&lt;SPAN class="nu0"&gt;98989&lt;/SPAN&gt;    &lt;SPAN class="nu0"&gt;616&lt;/SPAN&gt; COSBY ROAD, &lt;SPAN class="nu0"&gt;13502&lt;/SPAN&gt;          &lt;SPAN class="nu0"&gt;59&lt;/SPAN&gt; LENOX AVE, &lt;SPAN class="nu0"&gt;12203&lt;/SPAN&gt;
&lt;SPAN class="nu0"&gt;99999&lt;/SPAN&gt;    &lt;SPAN class="nu0"&gt;59&lt;/SPAN&gt; Lenox Ave, &lt;SPAN class="nu0"&gt;12203&lt;/SPAN&gt;            SAS Campus Drive, &lt;SPAN class="nu0"&gt;27513&lt;/SPAN&gt;
&lt;SPAN class="nu0"&gt;87878&lt;/SPAN&gt;    &lt;SPAN class="nu0"&gt;370&lt;/SPAN&gt; Frederick St, &lt;SPAN class="nu0"&gt;94117&lt;/SPAN&gt;        &lt;SPAN class="nu0"&gt;2129&lt;/SPAN&gt; &lt;SPAN class="kw3"&gt;N&lt;/SPAN&gt; St NW, &lt;SPAN class="nu0"&gt;20037&lt;/SPAN&gt;
;
&amp;nbsp;
&lt;SPAN class="coMULTI"&gt;* place number of addresses in a macro variable;&lt;/SPAN&gt;
&lt;SPAN class="kw6"&gt;data&lt;/SPAN&gt; &lt;SPAN class="kw1"&gt;_null_&lt;/SPAN&gt;;
&lt;SPAN class="kw4"&gt;call&lt;/SPAN&gt; symputx&lt;SPAN class="br0"&gt;(&lt;/SPAN&gt;&lt;SPAN class="st0"&gt;'naddr'&lt;/SPAN&gt;,obs&lt;SPAN class="br0"&gt;)&lt;/SPAN&gt;;
&lt;SPAN class="kw4"&gt;stop&lt;/SPAN&gt;;
&lt;SPAN class="kw4"&gt;set&lt;/SPAN&gt; addresses nobs=obs;
&lt;SPAN class="kw6"&gt;run&lt;/SPAN&gt;;
&amp;nbsp;
&lt;SPAN class="coMULTI"&gt;* delete any data set named DISTANCE_TIME that might exist in the WORK library;&lt;/SPAN&gt;
&lt;SPAN class="re1"&gt;proc datasets&lt;/SPAN&gt; lib=work nolist;
&lt;SPAN class="kw4"&gt;delete&lt;/SPAN&gt; distance_time;
&lt;SPAN class="kw6"&gt;quit&lt;/SPAN&gt;;
&amp;nbsp;
&lt;SPAN class="coMULTI"&gt;* use a loop within a macro to access Google Maps multiple time;&lt;/SPAN&gt;
&lt;SPAN class="kw2"&gt;%macro&lt;/SPAN&gt; distance_time;
&lt;SPAN class="kw2"&gt;%do&lt;/SPAN&gt; j=&lt;SPAN class="nu0"&gt;1&lt;/SPAN&gt; &lt;SPAN class="kw2"&gt;%to&lt;/SPAN&gt; &lt;SPAN class="re0"&gt;&amp;amp;naddr&lt;/SPAN&gt;;
&lt;SPAN class="kw6"&gt;data&lt;/SPAN&gt; &lt;SPAN class="kw1"&gt;_null_&lt;/SPAN&gt;;
nrec = &lt;SPAN class="re0"&gt;&amp;amp;j&lt;/SPAN&gt;;
&lt;SPAN class="kw4"&gt;set&lt;/SPAN&gt; addresses &lt;SPAN class="kw3"&gt;point&lt;/SPAN&gt;=nrec;
&lt;SPAN class="kw4"&gt;call&lt;/SPAN&gt; symputx&lt;SPAN class="br0"&gt;(&lt;/SPAN&gt;&lt;SPAN class="st0"&gt;'id'&lt;/SPAN&gt;,id&lt;SPAN class="br0"&gt;)&lt;/SPAN&gt;;
&lt;SPAN class="kw4"&gt;call&lt;/SPAN&gt; symputx&lt;SPAN class="br0"&gt;(&lt;/SPAN&gt;&lt;SPAN class="st0"&gt;'a1'&lt;/SPAN&gt;,&lt;SPAN class="kw3"&gt;translate&lt;/SPAN&gt;&lt;SPAN class="br0"&gt;(&lt;/SPAN&gt;&lt;SPAN class="kw3"&gt;trim&lt;/SPAN&gt;&lt;SPAN class="br0"&gt;(&lt;/SPAN&gt;addr1&lt;SPAN class="br0"&gt;)&lt;/SPAN&gt;,&lt;SPAN class="st0"&gt;'+'&lt;/SPAN&gt;,&lt;SPAN class="st0"&gt;' '&lt;/SPAN&gt;&lt;SPAN class="br0"&gt;)&lt;/SPAN&gt;&lt;SPAN class="br0"&gt;)&lt;/SPAN&gt;;
&lt;SPAN class="kw4"&gt;call&lt;/SPAN&gt; symputx&lt;SPAN class="br0"&gt;(&lt;/SPAN&gt;&lt;SPAN class="st0"&gt;'a2'&lt;/SPAN&gt;,&lt;SPAN class="kw3"&gt;translate&lt;/SPAN&gt;&lt;SPAN class="br0"&gt;(&lt;/SPAN&gt;&lt;SPAN class="kw3"&gt;trim&lt;/SPAN&gt;&lt;SPAN class="br0"&gt;(&lt;/SPAN&gt;addr2&lt;SPAN class="br0"&gt;)&lt;/SPAN&gt;,&lt;SPAN class="st0"&gt;'+'&lt;/SPAN&gt;,&lt;SPAN class="st0"&gt;' '&lt;/SPAN&gt;&lt;SPAN class="br0"&gt;)&lt;/SPAN&gt;&lt;SPAN class="br0"&gt;)&lt;/SPAN&gt;;
&lt;SPAN class="kw4"&gt;stop&lt;/SPAN&gt;;
&lt;SPAN class="kw4"&gt;stop&lt;/SPAN&gt;;
&lt;SPAN class="kw6"&gt;run&lt;/SPAN&gt;;
&amp;nbsp;
&lt;SPAN class="kw3"&gt;filename&lt;/SPAN&gt; &lt;SPAN class="kw4"&gt;x&lt;/SPAN&gt; url &lt;SPAN class="st0"&gt;"https://www.google.com/maps/dir/&amp;amp;a1/&amp;amp;a2/?force=lite"&lt;/SPAN&gt;;
&lt;SPAN class="kw3"&gt;filename&lt;/SPAN&gt; z temp;
&amp;nbsp;
&lt;SPAN class="kw6"&gt;data&lt;/SPAN&gt; &lt;SPAN class="kw1"&gt;_null_&lt;/SPAN&gt;; 
&lt;SPAN class="kw4"&gt;infile&lt;/SPAN&gt; &lt;SPAN class="kw4"&gt;x&lt;/SPAN&gt; recfm=f lrecl=&lt;SPAN class="nu0"&gt;1&lt;/SPAN&gt; &lt;SPAN class="kw5"&gt;end&lt;/SPAN&gt;=eof; 
&lt;SPAN class="kw4"&gt;file&lt;/SPAN&gt; z recfm=f lrecl=&lt;SPAN class="nu0"&gt;1&lt;/SPAN&gt;;
&lt;SPAN class="kw3"&gt;input&lt;/SPAN&gt; @1 &lt;SPAN class="kw4"&gt;x&lt;/SPAN&gt; $char1.; 
&lt;SPAN class="kw3"&gt;put&lt;/SPAN&gt; @1 &lt;SPAN class="kw4"&gt;x&lt;/SPAN&gt; $char1.;
&lt;SPAN class="kw5"&gt;if&lt;/SPAN&gt; eof;
&lt;SPAN class="kw4"&gt;call&lt;/SPAN&gt; symputx&lt;SPAN class="br0"&gt;(&lt;/SPAN&gt;&lt;SPAN class="st0"&gt;'filesize'&lt;/SPAN&gt;,&lt;SPAN class="kw1"&gt;_n_&lt;/SPAN&gt;&lt;SPAN class="br0"&gt;)&lt;/SPAN&gt;;
&lt;SPAN class="kw6"&gt;run&lt;/SPAN&gt;;
&amp;nbsp;
&lt;SPAN class="kw6"&gt;data&lt;/SPAN&gt; temp;
&lt;SPAN class="kw3"&gt;length&lt;/SPAN&gt; addr1 addr2 $50;
id = &lt;SPAN class="st0"&gt;"&amp;amp;id"&lt;/SPAN&gt;;
addr1 = &lt;SPAN class="kw3"&gt;upcase&lt;/SPAN&gt;&lt;SPAN class="br0"&gt;(&lt;/SPAN&gt;&lt;SPAN class="kw3"&gt;translate&lt;/SPAN&gt;&lt;SPAN class="br0"&gt;(&lt;/SPAN&gt;&lt;SPAN class="st0"&gt;"&amp;amp;a1"&lt;/SPAN&gt;,&lt;SPAN class="st0"&gt;' '&lt;/SPAN&gt;,&lt;SPAN class="st0"&gt;'+'&lt;/SPAN&gt;&lt;SPAN class="br0"&gt;)&lt;/SPAN&gt;&lt;SPAN class="br0"&gt;)&lt;/SPAN&gt;;
addr2 = &lt;SPAN class="kw3"&gt;upcase&lt;/SPAN&gt;&lt;SPAN class="br0"&gt;(&lt;/SPAN&gt;&lt;SPAN class="kw3"&gt;translate&lt;/SPAN&gt;&lt;SPAN class="br0"&gt;(&lt;/SPAN&gt;&lt;SPAN class="st0"&gt;"&amp;amp;a2"&lt;/SPAN&gt;,&lt;SPAN class="st0"&gt;' '&lt;/SPAN&gt;,&lt;SPAN class="st0"&gt;'+'&lt;/SPAN&gt;&lt;SPAN class="br0"&gt;)&lt;/SPAN&gt;&lt;SPAN class="br0"&gt;)&lt;/SPAN&gt;;
&amp;nbsp;
&lt;SPAN class="kw4"&gt;infile&lt;/SPAN&gt; z recfm=f lrecl=&lt;SPAN class="re0"&gt;&amp;amp;filesize&lt;/SPAN&gt;. eof=done;
&lt;SPAN class="kw3"&gt;input&lt;/SPAN&gt; @ &lt;SPAN class="st0"&gt;'miles'&lt;/SPAN&gt; +&lt;SPAN class="br0"&gt;(&lt;/SPAN&gt;-&lt;SPAN class="nu0"&gt;15&lt;/SPAN&gt;&lt;SPAN class="br0"&gt;)&lt;/SPAN&gt; @ &lt;SPAN class="st0"&gt;'"'&lt;/SPAN&gt; distance&amp;nbsp;:comma12. text $30.;
units    = &lt;SPAN class="kw3"&gt;scan&lt;/SPAN&gt;&lt;SPAN class="br0"&gt;(&lt;/SPAN&gt;text,&lt;SPAN class="nu0"&gt;1&lt;/SPAN&gt;,&lt;SPAN class="st0"&gt;'"'&lt;/SPAN&gt;&lt;SPAN class="br0"&gt;)&lt;/SPAN&gt;;
text     = &lt;SPAN class="kw3"&gt;scan&lt;/SPAN&gt;&lt;SPAN class="br0"&gt;(&lt;/SPAN&gt;text,&lt;SPAN class="nu0"&gt;3&lt;/SPAN&gt;,&lt;SPAN class="st0"&gt;'"'&lt;/SPAN&gt;&lt;SPAN class="br0"&gt;)&lt;/SPAN&gt;;
&amp;nbsp;
&lt;SPAN class="coMULTI"&gt;* convert times to seconds;&lt;/SPAN&gt;
  &lt;SPAN class="kw4"&gt;select&lt;/SPAN&gt;;
&lt;SPAN class="coMULTI"&gt;* combine days and hours;&lt;/SPAN&gt;
   when &lt;SPAN class="br0"&gt;(&lt;/SPAN&gt;find&lt;SPAN class="br0"&gt;(&lt;/SPAN&gt;text,&lt;SPAN class="st0"&gt;'d'&lt;/SPAN&gt;&lt;SPAN class="br0"&gt;)&lt;/SPAN&gt; ne &lt;SPAN class="nu0"&gt;0&lt;/SPAN&gt;&lt;SPAN class="br0"&gt;)&lt;/SPAN&gt; &lt;SPAN class="kw3"&gt;time&lt;/SPAN&gt; = &lt;SPAN class="kw3"&gt;sum&lt;/SPAN&gt;&lt;SPAN class="br0"&gt;(&lt;/SPAN&gt;&lt;SPAN class="nu0"&gt;86400&lt;/SPAN&gt;&lt;SPAN class="coMULTI"&gt;*input(scan(text,1,' '),best.), 
                                        3600*input(scan(text,3,' '),best.));&lt;/SPAN&gt;
&lt;SPAN class="coMULTI"&gt;* combine hours and minutes;&lt;/SPAN&gt;
   when &lt;SPAN class="br0"&gt;(&lt;/SPAN&gt;find&lt;SPAN class="br0"&gt;(&lt;/SPAN&gt;text,&lt;SPAN class="st0"&gt;'h'&lt;/SPAN&gt;&lt;SPAN class="br0"&gt;)&lt;/SPAN&gt; ne &lt;SPAN class="nu0"&gt;0&lt;/SPAN&gt;&lt;SPAN class="br0"&gt;)&lt;/SPAN&gt; &lt;SPAN class="kw3"&gt;time&lt;/SPAN&gt; = &lt;SPAN class="kw3"&gt;sum&lt;/SPAN&gt;&lt;SPAN class="br0"&gt;(&lt;/SPAN&gt;&lt;SPAN class="nu0"&gt;3600&lt;/SPAN&gt;&lt;SPAN class="coMULTI"&gt;*input(scan(text,1,' '),best.), 
                                        60*input(scan(text,3,' '),best.));&lt;/SPAN&gt;
&lt;SPAN class="coMULTI"&gt;* just minutes;&lt;/SPAN&gt;
   otherwise                  &lt;SPAN class="kw3"&gt;time&lt;/SPAN&gt; = &lt;SPAN class="nu0"&gt;60&lt;/SPAN&gt;&lt;SPAN class="coMULTI"&gt;*input(scan(text,1,' '),best.);&lt;/SPAN&gt;
  &lt;SPAN class="kw5"&gt;end&lt;/SPAN&gt;;
&lt;SPAN class="kw4"&gt;output&lt;/SPAN&gt;;
&lt;SPAN class="kw4"&gt;keep&lt;/SPAN&gt; id addr1 addr2 distance units &lt;SPAN class="kw3"&gt;time&lt;/SPAN&gt;;
&lt;SPAN class="kw4"&gt;label&lt;/SPAN&gt;
addr1 = &lt;SPAN class="st0"&gt;'ADDRESS #1'&lt;/SPAN&gt;
addr2 = &lt;SPAN class="st0"&gt;'ADDRESS #2'&lt;/SPAN&gt;
id    = &lt;SPAN class="st0"&gt;'ID #'&lt;/SPAN&gt;
distance = &lt;SPAN class="st0"&gt;'DISTANCE (MILES)'&lt;/SPAN&gt;
&lt;SPAN class="kw3"&gt;time&lt;/SPAN&gt;     = &lt;SPAN class="st0"&gt;'TIME (HR:MIN)'&lt;/SPAN&gt;
;
&lt;SPAN class="kw4"&gt;stop&lt;/SPAN&gt;;
done:
&lt;SPAN class="kw4"&gt;output&lt;/SPAN&gt;;
&lt;SPAN class="kw6"&gt;run&lt;/SPAN&gt;;
&amp;nbsp;
&lt;SPAN class="kw3"&gt;filename&lt;/SPAN&gt; &lt;SPAN class="kw4"&gt;x&lt;/SPAN&gt; clear;
&lt;SPAN class="kw3"&gt;filename&lt;/SPAN&gt; z clear;
&amp;nbsp;
&lt;SPAN class="re1"&gt;proc append&lt;/SPAN&gt; base=distance_time &lt;SPAN class="kw6"&gt;data&lt;/SPAN&gt;=temp;
&lt;SPAN class="kw6"&gt;run&lt;/SPAN&gt;;
&lt;SPAN class="kw2"&gt;%end&lt;/SPAN&gt;;
&lt;SPAN class="kw2"&gt;%mend&lt;/SPAN&gt;;
&amp;nbsp;
&lt;SPAN class="coMULTI"&gt;* use the macro;&lt;/SPAN&gt;
%distance_time;
&amp;nbsp;
&lt;SPAN class="coMULTI"&gt;* 
add the distance between ZIP centroids 
(should be "in same ballpark" as driving distance)
;&lt;/SPAN&gt;
&lt;SPAN class="kw6"&gt;data&lt;/SPAN&gt; distance_time;
&lt;SPAN class="kw4"&gt;set&lt;/SPAN&gt; distance_time;
&lt;SPAN class="coMULTI"&gt;* ZIP should be LAST entry in the addresses;&lt;/SPAN&gt;
zip_city = zipcitydistance&lt;SPAN class="br0"&gt;(&lt;/SPAN&gt;&lt;SPAN class="kw3"&gt;scan&lt;/SPAN&gt;&lt;SPAN class="br0"&gt;(&lt;/SPAN&gt;addr1,-&lt;SPAN class="nu0"&gt;1&lt;/SPAN&gt;&lt;SPAN class="br0"&gt;)&lt;/SPAN&gt;,&lt;SPAN class="kw3"&gt;scan&lt;/SPAN&gt;&lt;SPAN class="br0"&gt;(&lt;/SPAN&gt;addr2,-&lt;SPAN class="nu0"&gt;1&lt;/SPAN&gt;&lt;SPAN class="br0"&gt;)&lt;/SPAN&gt;&lt;SPAN class="br0"&gt;)&lt;/SPAN&gt;;
&lt;SPAN class="kw4"&gt;label&lt;/SPAN&gt; zip_city = &lt;SPAN class="st0"&gt;'ZIPCITYDISTANCE FUNCTION'&lt;/SPAN&gt;;
&lt;SPAN class="kw6"&gt;run&lt;/SPAN&gt;;
&amp;nbsp;
&lt;SPAN class="kw4"&gt;title&lt;/SPAN&gt; &lt;SPAN class="st0"&gt;"DRIVING DISTANCE AND TIMES"&lt;/SPAN&gt;;
&lt;SPAN class="re1"&gt;proc print&lt;/SPAN&gt; &lt;SPAN class="kw6"&gt;data&lt;/SPAN&gt;=distance_time &lt;SPAN class="kw4"&gt;label&lt;/SPAN&gt; noobs;
&lt;SPAN class="kw3"&gt;var&lt;/SPAN&gt; id addr1 addr2 distance &lt;SPAN class="kw3"&gt;time&lt;/SPAN&gt; zip_city;
&lt;SPAN class="kw4"&gt;format&lt;/SPAN&gt; &lt;SPAN class="kw3"&gt;time&lt;/SPAN&gt; time6.;
&lt;SPAN class="kw6"&gt;run&lt;/SPAN&gt;;&lt;/PRE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Thu, 04 Feb 2016 14:55:03 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Connection-to-url-via-filename-failed-ERROR-Host-name-www-google/m-p/247988#M46539</guid>
      <dc:creator>dcortell</dc:creator>
      <dc:date>2016-02-04T14:55:03Z</dc:date>
    </item>
    <item>
      <title>Re: Connection to url via filename failed: ERROR: Host name www.google.com not found.</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Connection-to-url-via-filename-failed-ERROR-Host-name-www-google/m-p/248009#M46551</link>
      <description>&lt;P&gt;Run your code with OPTIONS MPRINT ;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;The error messages will then appear near the code causing them. At the end of a macro with loops it is very hard to tell when the error occurs.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Thu, 04 Feb 2016 15:40:15 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Connection-to-url-via-filename-failed-ERROR-Host-name-www-google/m-p/248009#M46551</guid>
      <dc:creator>ballardw</dc:creator>
      <dc:date>2016-02-04T15:40:15Z</dc:date>
    </item>
    <item>
      <title>Re: Connection to url via filename failed: ERROR: Host name www.google.com not found.</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Connection-to-url-via-filename-failed-ERROR-Host-name-www-google/m-p/248023#M46557</link>
      <description>&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Just done, it seems there is not more in terms of error explanation&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;1 The SAS System 03:29 Thursday, February 4, 2016&lt;/P&gt;&lt;P&gt;1 ;*';*";*/;quit;run;&lt;BR /&gt;2 OPTIONS PAGENO=MIN;&lt;BR /&gt;3 %LET _CLIENTTASKLABEL='Program';&lt;BR /&gt;4 %LET _CLIENTPROJECTPATH='';&lt;BR /&gt;5 %LET _CLIENTPROJECTNAME='';&lt;BR /&gt;6 %LET _SASPROGRAMFILE=;&lt;BR /&gt;7&lt;BR /&gt;8 ODS _ALL_ CLOSE;&lt;BR /&gt;9 OPTIONS DEV=ACTIVEX;&lt;BR /&gt;10 GOPTIONS XPIXELS=0 YPIXELS=0;&lt;BR /&gt;11 FILENAME EGSR TEMP;&lt;BR /&gt;12 ODS tagsets.sasreport13(ID=EGSR) FILE=EGSR&lt;BR /&gt;13 STYLE=HtmlBlue&lt;BR /&gt;14 STYLESHEET=(URL="file:///C:/Program%20Files/SASHome2/SASEnterpriseGuide/6.1/Styles/HtmlBlue.css")&lt;BR /&gt;15 NOGTITLE&lt;BR /&gt;16 NOGFOOTNOTE&lt;BR /&gt;17 GPATH=&amp;amp;sasworklocation&lt;BR /&gt;18 ENCODING=UTF8&lt;BR /&gt;19 options(rolap="on")&lt;BR /&gt;20 ;&lt;BR /&gt;NOTE: Writing TAGSETS.SASREPORT13(EGSR) Body file: EGSR&lt;BR /&gt;21&lt;BR /&gt;22 GOPTIONS ACCESSIBLE;&lt;BR /&gt;23 * data set with IDs and ADDRESSES;&lt;BR /&gt;24 data addresses;&lt;BR /&gt;25 length addr1 addr2 $50;&lt;BR /&gt;26 input&lt;BR /&gt;27 &lt;a href="https://communities.sas.com/t5/user/viewprofilepage/user-id/46433"&gt;@01&lt;/a&gt; id $5.&lt;BR /&gt;28 @10 addr1 $30.&lt;BR /&gt;29 @40 addr2 $30.&lt;BR /&gt;30 ;&lt;BR /&gt;31 zip = input(scan(addr1,-1),5.);&lt;BR /&gt;32 set sashelp.zipcode (keep=zip poname statecode) key=zip / unique;&lt;BR /&gt;33 addr1 = catx(' ',catx(',+',scan(addr1,1,','),poname,statecode),zip);&lt;BR /&gt;34 zip = input(scan(addr2,-1),5.);&lt;BR /&gt;35 set sashelp.zipcode (keep=zip poname statecode) key=zip / unique;&lt;BR /&gt;36 addr2 = catx(' ',catx(',+',scan(addr2,1,','),poname,statecode),zip);&lt;BR /&gt;37 keep id addr: ;&lt;BR /&gt;38 datalines;&lt;/P&gt;&lt;P&gt;NOTE: The data set WORK.ADDRESSES has 4 observations and 3 variables.&lt;BR /&gt;NOTE: DATA statement used (Total process time):&lt;BR /&gt;real time 0.01 seconds&lt;BR /&gt;cpu time 0.01 seconds&lt;BR /&gt;&lt;BR /&gt;43 ;&lt;/P&gt;&lt;P&gt;44&lt;BR /&gt;45 * place number of addresses in a macro variable;&lt;BR /&gt;46 data _null_;&lt;BR /&gt;47 call symputx('naddr',obs);&lt;BR /&gt;48 stop;&lt;BR /&gt;49 set addresses nobs=obs;&lt;BR /&gt;50 run;&lt;/P&gt;&lt;P&gt;NOTE: DATA statement used (Total process time):&lt;BR /&gt;real time 0.00 seconds&lt;BR /&gt;cpu time 0.00 seconds&lt;BR /&gt;2 The SAS System 03:29 Thursday, February 4, 2016&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;51&lt;BR /&gt;52 * delete any data set named DISTANCE_TIME that might exist in the WORK library;&lt;BR /&gt;53 proc datasets lib=work nolist;&lt;BR /&gt;54 delete distance_time;&lt;BR /&gt;55 quit;&lt;/P&gt;&lt;P&gt;NOTE: Deleting WORK.DISTANCE_TIME (memtype=DATA).&lt;BR /&gt;NOTE: PROCEDURE DATASETS used (Total process time):&lt;BR /&gt;real time 0.00 seconds&lt;BR /&gt;cpu time 0.00 seconds&lt;/P&gt;&lt;P&gt;56&lt;BR /&gt;57 * use a loop within a macro to access Google Maps multiple time*^;&lt;BR /&gt;58 %macro distance_time;&lt;BR /&gt;59 %do j=1 %to &amp;amp;naddr;&lt;BR /&gt;60 data _null_;&lt;BR /&gt;61 nrec = &amp;amp;j;&lt;BR /&gt;62 set addresses point=nrec;&lt;BR /&gt;63 call symputx('id',id);&lt;BR /&gt;64 call symputx('a1',translate(trim(addr1),'+',' '));&lt;BR /&gt;65 call symputx('a2',translate(trim(addr2),'+',' '));&lt;BR /&gt;66 stop;&lt;BR /&gt;67 stop;&lt;BR /&gt;68 run;&lt;BR /&gt;69&lt;BR /&gt;70 filename x url '&lt;A href="https://www.google.com/maps/dir/&amp;amp;a1/&amp;amp;a2/?force=lite'" target="_blank"&gt;https://www.google.com/maps/dir/&amp;amp;a1/&amp;amp;a2/?force=lite'&lt;/A&gt;&lt;BR /&gt;71 debug&lt;BR /&gt;72 prompt debug;&lt;BR /&gt;73 filename z temp;&lt;BR /&gt;74&lt;BR /&gt;75 data _null_;&lt;BR /&gt;76 infile x recfm=f lrecl=1 end=eof;&lt;BR /&gt;77 file z recfm=f lrecl=1;&lt;BR /&gt;78 input @1 x $char1.;&lt;BR /&gt;79 put @1 x $char1.;&lt;BR /&gt;80 if eof;&lt;BR /&gt;81 call symputx('filesize',_n_);&lt;BR /&gt;82 run;&lt;BR /&gt;83&lt;BR /&gt;84 data temp;&lt;BR /&gt;85 length addr1 addr2 $50;&lt;BR /&gt;86 id = "&amp;amp;id";&lt;BR /&gt;87 addr1 = upcase(translate("&amp;amp;a1",' ','+'));&lt;BR /&gt;88 addr2 = upcase(translate("&amp;amp;a2",' ','+'));&lt;BR /&gt;89&lt;BR /&gt;90 infile z recfm=f lrecl=&amp;amp;filesize. eof=done;&lt;BR /&gt;91 input @ 'miles' +(-15) @ '"' distance :comma12. text $30.;&lt;BR /&gt;92 units = scan(text,1,'"');&lt;BR /&gt;93 text = scan(text,3,'"');&lt;BR /&gt;94&lt;BR /&gt;95 * convert times to seconds;&lt;BR /&gt;96 select;&lt;BR /&gt;97 * combine days and hours;&lt;BR /&gt;98 when (find(text,'d') ne 0) time = sum(86400*input(scan(text,1,' '),best.),&lt;BR /&gt;99 3600*input(scan(text,3,' '),best.));&lt;BR /&gt;3 The SAS System 03:29 Thursday, February 4, 2016&lt;/P&gt;&lt;P&gt;100 * combine hours and minutes;&lt;BR /&gt;101 when (find(text,'h') ne 0) time = sum(3600*input(scan(text,1,' '),best.),&lt;BR /&gt;102 60*input(scan(text,3,' '),best.));&lt;BR /&gt;103 * just minutes;&lt;BR /&gt;104 otherwise time = 60*input(scan(text,1,' '),best.);&lt;BR /&gt;105 end;&lt;BR /&gt;106 output;&lt;BR /&gt;107 keep id addr1 addr2 distance units time;&lt;BR /&gt;108 label&lt;BR /&gt;109 addr1 = 'ADDRESS #1'&lt;BR /&gt;110 addr2 = 'ADDRESS #2'&lt;BR /&gt;111 id = 'ID #'&lt;BR /&gt;112 distance = 'DISTANCE (MILES)'&lt;BR /&gt;113 time = 'TIME (HR:MIN)'&lt;BR /&gt;114 ;&lt;BR /&gt;115 stop;&lt;BR /&gt;116 done:&lt;BR /&gt;117 output;&lt;BR /&gt;118 run;&lt;BR /&gt;119&lt;BR /&gt;120 filename x clear;&lt;BR /&gt;121 filename z clear;&lt;BR /&gt;122&lt;BR /&gt;123 proc append base=distance_time data=temp;&lt;BR /&gt;124 run;&lt;BR /&gt;125 %end;&lt;BR /&gt;126 %mend;&lt;BR /&gt;127 options mprint;&lt;BR /&gt;128 * use the macro;&lt;BR /&gt;129 %distance_time;&lt;BR /&gt;MPRINT(DISTANCE_TIME): data _null_;&lt;BR /&gt;MPRINT(DISTANCE_TIME): nrec = 1;&lt;BR /&gt;MPRINT(DISTANCE_TIME): set addresses point=nrec;&lt;BR /&gt;MPRINT(DISTANCE_TIME): call symputx('id',id);&lt;BR /&gt;MPRINT(DISTANCE_TIME): call symputx('a1',translate(trim(addr1),'+',' '));&lt;BR /&gt;MPRINT(DISTANCE_TIME): call symputx('a2',translate(trim(addr2),'+',' '));&lt;BR /&gt;MPRINT(DISTANCE_TIME): stop;&lt;BR /&gt;MPRINT(DISTANCE_TIME): stop;&lt;BR /&gt;MPRINT(DISTANCE_TIME): run;&lt;/P&gt;&lt;P&gt;NOTE: DATA statement used (Total process time):&lt;BR /&gt;real time 0.00 seconds&lt;BR /&gt;cpu time 0.00 seconds&lt;/P&gt;&lt;P&gt;MPRINT(DISTANCE_TIME): filename x url '&lt;A href="https://www.google.com/maps/dir/&amp;amp;a1/&amp;amp;a2/?force=lite'" target="_blank"&gt;https://www.google.com/maps/dir/&amp;amp;a1/&amp;amp;a2/?force=lite'&lt;/A&gt; debug prompt debug;&lt;BR /&gt;MPRINT(DISTANCE_TIME): filename z temp;&lt;BR /&gt;MPRINT(DISTANCE_TIME): data _null_;&lt;BR /&gt;MPRINT(DISTANCE_TIME): infile x recfm=f lrecl=1 end=eof;&lt;BR /&gt;MPRINT(DISTANCE_TIME): file z recfm=f lrecl=1;&lt;BR /&gt;MPRINT(DISTANCE_TIME): input @1 x $char1.;&lt;BR /&gt;MPRINT(DISTANCE_TIME): put @1 x $char1.;&lt;BR /&gt;MPRINT(DISTANCE_TIME): if eof;&lt;BR /&gt;MPRINT(DISTANCE_TIME): call symputx('filesize',_n_);&lt;BR /&gt;MPRINT(DISTANCE_TIME): run;&lt;/P&gt;&lt;P&gt;NOTE: Unable to connect to host &lt;A href="http://www.google.com." target="_blank"&gt;www.google.com.&lt;/A&gt; Check validity of host name.&lt;BR /&gt;ERROR: Host name &lt;A href="http://www.google.com" target="_blank"&gt;www.google.com&lt;/A&gt; not found.&lt;BR /&gt;4 The SAS System 03:29 Thursday, February 4, 2016&lt;/P&gt;&lt;P&gt;NOTE: The file Z is:&lt;BR /&gt;Filename=/saswork/SAS_work41D5000062F8_lppma874.phx.aexp.com/#LN00099,&lt;BR /&gt;Owner Name=dcortell,Group Name=bis,&lt;BR /&gt;Access Permission=-rw-r--r--,&lt;BR /&gt;Last Modified=04Feb2016:09:03:06&lt;/P&gt;&lt;P&gt;NOTE: 0 records were written to the file Z.&lt;BR /&gt;NOTE: The SAS System stopped processing this step because of errors.&lt;BR /&gt;NOTE: DATA statement used (Total process time):&lt;BR /&gt;real time 0.02 seconds&lt;BR /&gt;cpu time 0.01 seconds&lt;/P&gt;&lt;P&gt;MPRINT(DISTANCE_TIME): data temp;&lt;BR /&gt;MPRINT(DISTANCE_TIME): length addr1 addr2 $50;&lt;BR /&gt;MPRINT(DISTANCE_TIME): id = "12345";&lt;BR /&gt;MPRINT(DISTANCE_TIME): addr1 = upcase(translate("59+LENOX+AVE,+Albany,+NY+12203",' ','+'));&lt;BR /&gt;MPRINT(DISTANCE_TIME): addr2 = upcase(translate("1+UNIVERSITY+PL,+Rensselaer,+NY+12144",' ','+'));&lt;BR /&gt;NOTE 137-205: Line generated by the invoked macro "DISTANCE_TIME".&lt;BR /&gt;129 data temp; length addr1 addr2 $50; id = "&amp;amp;id"; addr1 = upcase(translate("&amp;amp;a1",' ','+')); addr2 =&lt;BR /&gt;129 ! upcase(translate("&amp;amp;a2",' ','+')); infile z recfm=f lrecl=&amp;amp;filesize. eof=done; input @ 'miles' +(-15) @ '"' distance&lt;BR /&gt;_&lt;BR /&gt;24&lt;BR /&gt;129 ! :comma12. text $30.; units = scan&lt;BR /&gt;ERROR 24-2: Invalid value for the LRECL option.&lt;/P&gt;&lt;P&gt;WARNING: Apparent symbolic reference FILESIZE not resolved.&lt;BR /&gt;MPRINT(DISTANCE_TIME): infile z recfm=f lrecl=&amp;amp;filesize. eof=done;&lt;BR /&gt;MPRINT(DISTANCE_TIME): input @ 'miles' +(-15) @ '"' distance :comma12. text $30.;&lt;BR /&gt;MPRINT(DISTANCE_TIME): units = scan(text,1,'"');&lt;BR /&gt;MPRINT(DISTANCE_TIME): text = scan(text,3,'"');&lt;BR /&gt;MPRINT(DISTANCE_TIME): * convert times to seconds;&lt;BR /&gt;MPRINT(DISTANCE_TIME): select;&lt;BR /&gt;MPRINT(DISTANCE_TIME): * combine days and hours;&lt;BR /&gt;MPRINT(DISTANCE_TIME): when (find(text,'d') ne 0) time = sum(86400*input(scan(text,1,' '),best.), 3600*input(scan(text,3,'&lt;BR /&gt;'),best.));&lt;BR /&gt;MPRINT(DISTANCE_TIME): * combine hours and minutes;&lt;BR /&gt;MPRINT(DISTANCE_TIME): when (find(text,'h') ne 0) time = sum(3600*input(scan(text,1,' '),best.), 60*input(scan(text,3,'&lt;BR /&gt;'),best.));&lt;BR /&gt;MPRINT(DISTANCE_TIME): * just minutes;&lt;BR /&gt;MPRINT(DISTANCE_TIME): otherwise time = 60*input(scan(text,1,' '),best.);&lt;BR /&gt;MPRINT(DISTANCE_TIME): end;&lt;BR /&gt;MPRINT(DISTANCE_TIME): output;&lt;BR /&gt;MPRINT(DISTANCE_TIME): keep id addr1 addr2 distance units time;&lt;BR /&gt;MPRINT(DISTANCE_TIME): label addr1 = 'ADDRESS #1' addr2 = 'ADDRESS #2' id = 'ID #' distance = 'DISTANCE (MILES)' time = 'TIME&lt;BR /&gt;(HR:MIN)' ;&lt;BR /&gt;MPRINT(DISTANCE_TIME): stop;&lt;BR /&gt;MPRINT(DISTANCE_TIME): done: output;&lt;BR /&gt;MPRINT(DISTANCE_TIME): run;&lt;/P&gt;&lt;P&gt;NOTE: The SAS System stopped processing this step because of errors.&lt;BR /&gt;WARNING: The data set WORK.TEMP may be incomplete. When this step was stopped there were 0 observations and 6 variables.&lt;BR /&gt;WARNING: Data set WORK.TEMP was not replaced because this step was stopped.&lt;BR /&gt;NOTE: DATA statement used (Total process time):&lt;BR /&gt;real time 0.03 seconds&lt;BR /&gt;cpu time 0.01 seconds&lt;/P&gt;&lt;P&gt;5 The SAS System 03:29 Thursday, February 4, 2016&lt;/P&gt;&lt;P&gt;MPRINT(DISTANCE_TIME): filename x clear;&lt;BR /&gt;NOTE: Fileref X has been deassigned.&lt;BR /&gt;MPRINT(DISTANCE_TIME): filename z clear;&lt;BR /&gt;NOTE: Fileref Z has been deassigned.&lt;BR /&gt;MPRINT(DISTANCE_TIME): proc append base=distance_time data=temp;&lt;BR /&gt;MPRINT(DISTANCE_TIME): run;&lt;/P&gt;&lt;P&gt;NOTE: Appending WORK.TEMP to WORK.DISTANCE_TIME.&lt;BR /&gt;NOTE: BASE data set does not exist. DATA file is being copied to BASE file.&lt;BR /&gt;NOTE: There were 0 observations read from the data set WORK.TEMP.&lt;BR /&gt;NOTE: The data set WORK.DISTANCE_TIME has 0 observations and 6 variables.&lt;BR /&gt;NOTE: PROCEDURE APPEND used (Total process time):&lt;BR /&gt;real time 0.00 seconds&lt;BR /&gt;cpu time 0.00 seconds&lt;/P&gt;&lt;P&gt;MPRINT(DISTANCE_TIME): data _null_;&lt;BR /&gt;MPRINT(DISTANCE_TIME): nrec = 2;&lt;BR /&gt;MPRINT(DISTANCE_TIME): set addresses point=nrec;&lt;BR /&gt;MPRINT(DISTANCE_TIME): call symputx('id',id);&lt;BR /&gt;MPRINT(DISTANCE_TIME): call symputx('a1',translate(trim(addr1),'+',' '));&lt;BR /&gt;MPRINT(DISTANCE_TIME): call symputx('a2',translate(trim(addr2),'+',' '));&lt;BR /&gt;MPRINT(DISTANCE_TIME): stop;&lt;BR /&gt;MPRINT(DISTANCE_TIME): stop;&lt;BR /&gt;MPRINT(DISTANCE_TIME): run;&lt;/P&gt;&lt;P&gt;NOTE: DATA statement used (Total process time):&lt;BR /&gt;real time 0.00 seconds&lt;BR /&gt;cpu time 0.01 seconds&lt;/P&gt;&lt;P&gt;MPRINT(DISTANCE_TIME): filename x url '&lt;A href="https://www.google.com/maps/dir/&amp;amp;a1/&amp;amp;a2/?force=lite'" target="_blank"&gt;https://www.google.com/maps/dir/&amp;amp;a1/&amp;amp;a2/?force=lite'&lt;/A&gt; debug prompt debug;&lt;BR /&gt;MPRINT(DISTANCE_TIME): filename z temp;&lt;BR /&gt;MPRINT(DISTANCE_TIME): data _null_;&lt;BR /&gt;MPRINT(DISTANCE_TIME): infile x recfm=f lrecl=1 end=eof;&lt;BR /&gt;MPRINT(DISTANCE_TIME): file z recfm=f lrecl=1;&lt;BR /&gt;MPRINT(DISTANCE_TIME): input @1 x $char1.;&lt;BR /&gt;MPRINT(DISTANCE_TIME): put @1 x $char1.;&lt;BR /&gt;MPRINT(DISTANCE_TIME): if eof;&lt;BR /&gt;MPRINT(DISTANCE_TIME): call symputx('filesize',_n_);&lt;BR /&gt;MPRINT(DISTANCE_TIME): run;&lt;/P&gt;&lt;P&gt;NOTE: Unable to connect to host &lt;A href="http://www.google.com." target="_blank"&gt;www.google.com.&lt;/A&gt; Check validity of host name.&lt;BR /&gt;ERROR: Host name &lt;A href="http://www.google.com" target="_blank"&gt;www.google.com&lt;/A&gt; not found.&lt;BR /&gt;NOTE: The file Z is:&lt;BR /&gt;Filename=/saswork/SAS_work41D5000062F8_lppma874.phx.aexp.com/#LN00100,&lt;BR /&gt;Owner Name=dcortell,Group Name=bis,&lt;BR /&gt;Access Permission=-rw-r--r--,&lt;BR /&gt;Last Modified=04Feb2016:09:03:07&lt;/P&gt;&lt;P&gt;NOTE: 0 records were written to the file Z.&lt;BR /&gt;NOTE: The SAS System stopped processing this step because of errors.&lt;BR /&gt;NOTE: DATA statement used (Total process time):&lt;BR /&gt;real time 0.01 seconds&lt;BR /&gt;cpu time 0.01 seconds&lt;/P&gt;&lt;P&gt;MPRINT(DISTANCE_TIME): data temp;&lt;BR /&gt;6 The SAS System 03:29 Thursday, February 4, 2016&lt;/P&gt;&lt;P&gt;MPRINT(DISTANCE_TIME): length addr1 addr2 $50;&lt;BR /&gt;MPRINT(DISTANCE_TIME): id = "98989";&lt;BR /&gt;MPRINT(DISTANCE_TIME): addr1 = upcase(translate("616+COSBY+ROAD,+Utica,+NY+13502",' ','+'));&lt;BR /&gt;MPRINT(DISTANCE_TIME): addr2 = upcase(translate("59+LENOX+AVE,+Albany,+NY+12203",' ','+'));&lt;BR /&gt;NOTE 137-205: Line generated by the invoked macro "DISTANCE_TIME".&lt;BR /&gt;129 data temp; length addr1 addr2 $50; id = "&amp;amp;id"; addr1 = upcase(translate("&amp;amp;a1",' ','+')); addr2 =&lt;BR /&gt;129 ! upcase(translate("&amp;amp;a2",' ','+')); infile z recfm=f lrecl=&amp;amp;filesize. eof=done; input @ 'miles' +(-15) @ '"' distance&lt;BR /&gt;_&lt;BR /&gt;24&lt;BR /&gt;129 ! :comma12. text $30.; units = scan&lt;BR /&gt;ERROR 24-2: Invalid value for the LRECL option.&lt;/P&gt;&lt;P&gt;WARNING: Apparent symbolic reference FILESIZE not resolved.&lt;BR /&gt;MPRINT(DISTANCE_TIME): infile z recfm=f lrecl=&amp;amp;filesize. eof=done;&lt;BR /&gt;MPRINT(DISTANCE_TIME): input @ 'miles' +(-15) @ '"' distance :comma12. text $30.;&lt;BR /&gt;MPRINT(DISTANCE_TIME): units = scan(text,1,'"');&lt;BR /&gt;MPRINT(DISTANCE_TIME): text = scan(text,3,'"');&lt;BR /&gt;MPRINT(DISTANCE_TIME): * convert times to seconds;&lt;BR /&gt;MPRINT(DISTANCE_TIME): select;&lt;BR /&gt;MPRINT(DISTANCE_TIME): * combine days and hours;&lt;BR /&gt;MPRINT(DISTANCE_TIME): when (find(text,'d') ne 0) time = sum(86400*input(scan(text,1,' '),best.), 3600*input(scan(text,3,'&lt;BR /&gt;'),best.));&lt;BR /&gt;MPRINT(DISTANCE_TIME): * combine hours and minutes;&lt;BR /&gt;MPRINT(DISTANCE_TIME): when (find(text,'h') ne 0) time = sum(3600*input(scan(text,1,' '),best.), 60*input(scan(text,3,'&lt;BR /&gt;'),best.));&lt;BR /&gt;MPRINT(DISTANCE_TIME): * just minutes;&lt;BR /&gt;MPRINT(DISTANCE_TIME): otherwise time = 60*input(scan(text,1,' '),best.);&lt;BR /&gt;MPRINT(DISTANCE_TIME): end;&lt;BR /&gt;MPRINT(DISTANCE_TIME): output;&lt;BR /&gt;MPRINT(DISTANCE_TIME): keep id addr1 addr2 distance units time;&lt;BR /&gt;MPRINT(DISTANCE_TIME): label addr1 = 'ADDRESS #1' addr2 = 'ADDRESS #2' id = 'ID #' distance = 'DISTANCE (MILES)' time = 'TIME&lt;BR /&gt;(HR:MIN)' ;&lt;BR /&gt;MPRINT(DISTANCE_TIME): stop;&lt;BR /&gt;MPRINT(DISTANCE_TIME): done: output;&lt;BR /&gt;MPRINT(DISTANCE_TIME): run;&lt;/P&gt;&lt;P&gt;NOTE: The SAS System stopped processing this step because of errors.&lt;BR /&gt;WARNING: The data set WORK.TEMP may be incomplete. When this step was stopped there were 0 observations and 6 variables.&lt;BR /&gt;WARNING: Data set WORK.TEMP was not replaced because this step was stopped.&lt;BR /&gt;NOTE: DATA statement used (Total process time):&lt;BR /&gt;real time 0.03 seconds&lt;BR /&gt;cpu time 0.01 seconds&lt;/P&gt;&lt;P&gt;MPRINT(DISTANCE_TIME): filename x clear;&lt;BR /&gt;NOTE: Fileref X has been deassigned.&lt;BR /&gt;MPRINT(DISTANCE_TIME): filename z clear;&lt;BR /&gt;NOTE: Fileref Z has been deassigned.&lt;BR /&gt;MPRINT(DISTANCE_TIME): proc append base=distance_time data=temp;&lt;BR /&gt;MPRINT(DISTANCE_TIME): run;&lt;/P&gt;&lt;P&gt;NOTE: Appending WORK.TEMP to WORK.DISTANCE_TIME.&lt;BR /&gt;NOTE: There were 0 observations read from the data set WORK.TEMP.&lt;BR /&gt;NOTE: 0 observations added.&lt;BR /&gt;NOTE: The data set WORK.DISTANCE_TIME has 0 observations and 6 variables.&lt;BR /&gt;NOTE: PROCEDURE APPEND used (Total process time):&lt;BR /&gt;real time 0.00 seconds&lt;BR /&gt;cpu time 0.00 seconds&lt;BR /&gt;7 The SAS System 03:29 Thursday, February 4, 2016&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;MPRINT(DISTANCE_TIME): data _null_;&lt;BR /&gt;MPRINT(DISTANCE_TIME): nrec = 3;&lt;BR /&gt;MPRINT(DISTANCE_TIME): set addresses point=nrec;&lt;BR /&gt;MPRINT(DISTANCE_TIME): call symputx('id',id);&lt;BR /&gt;MPRINT(DISTANCE_TIME): call symputx('a1',translate(trim(addr1),'+',' '));&lt;BR /&gt;MPRINT(DISTANCE_TIME): call symputx('a2',translate(trim(addr2),'+',' '));&lt;BR /&gt;MPRINT(DISTANCE_TIME): stop;&lt;BR /&gt;MPRINT(DISTANCE_TIME): stop;&lt;BR /&gt;MPRINT(DISTANCE_TIME): run;&lt;/P&gt;&lt;P&gt;NOTE: DATA statement used (Total process time):&lt;BR /&gt;real time 0.00 seconds&lt;BR /&gt;cpu time 0.00 seconds&lt;/P&gt;&lt;P&gt;MPRINT(DISTANCE_TIME): filename x url '&lt;A href="https://www.google.com/maps/dir/&amp;amp;a1/&amp;amp;a2/?force=lite'" target="_blank"&gt;https://www.google.com/maps/dir/&amp;amp;a1/&amp;amp;a2/?force=lite'&lt;/A&gt; debug prompt debug;&lt;BR /&gt;MPRINT(DISTANCE_TIME): filename z temp;&lt;BR /&gt;MPRINT(DISTANCE_TIME): data _null_;&lt;BR /&gt;MPRINT(DISTANCE_TIME): infile x recfm=f lrecl=1 end=eof;&lt;BR /&gt;MPRINT(DISTANCE_TIME): file z recfm=f lrecl=1;&lt;BR /&gt;MPRINT(DISTANCE_TIME): input @1 x $char1.;&lt;BR /&gt;MPRINT(DISTANCE_TIME): put @1 x $char1.;&lt;BR /&gt;MPRINT(DISTANCE_TIME): if eof;&lt;BR /&gt;MPRINT(DISTANCE_TIME): call symputx('filesize',_n_);&lt;BR /&gt;MPRINT(DISTANCE_TIME): run;&lt;/P&gt;&lt;P&gt;NOTE: Unable to connect to host &lt;A href="http://www.google.com." target="_blank"&gt;www.google.com.&lt;/A&gt; Check validity of host name.&lt;BR /&gt;ERROR: Host name &lt;A href="http://www.google.com" target="_blank"&gt;www.google.com&lt;/A&gt; not found.&lt;BR /&gt;NOTE: The file Z is:&lt;BR /&gt;Filename=/saswork/SAS_work41D5000062F8_lppma874.phx.aexp.com/#LN00101,&lt;BR /&gt;Owner Name=dcortell,Group Name=bis,&lt;BR /&gt;Access Permission=-rw-r--r--,&lt;BR /&gt;Last Modified=04Feb2016:09:03:07&lt;/P&gt;&lt;P&gt;NOTE: 0 records were written to the file Z.&lt;BR /&gt;NOTE: The SAS System stopped processing this step because of errors.&lt;BR /&gt;NOTE: DATA statement used (Total process time):&lt;BR /&gt;real time 0.01 seconds&lt;BR /&gt;cpu time 0.01 seconds&lt;/P&gt;&lt;P&gt;MPRINT(DISTANCE_TIME): data temp;&lt;BR /&gt;MPRINT(DISTANCE_TIME): length addr1 addr2 $50;&lt;BR /&gt;MPRINT(DISTANCE_TIME): id = "99999";&lt;BR /&gt;MPRINT(DISTANCE_TIME): addr1 = upcase(translate("59+Lenox+Ave,+Albany,+NY+12203",' ','+'));&lt;BR /&gt;MPRINT(DISTANCE_TIME): addr2 = upcase(translate("SAS+Campus+Drive,+Cary,+NC+27513",' ','+'));&lt;BR /&gt;NOTE 137-205: Line generated by the invoked macro "DISTANCE_TIME".&lt;BR /&gt;129 data temp; length addr1 addr2 $50; id = "&amp;amp;id"; addr1 = upcase(translate("&amp;amp;a1",' ','+')); addr2 =&lt;BR /&gt;129 ! upcase(translate("&amp;amp;a2",' ','+')); infile z recfm=f lrecl=&amp;amp;filesize. eof=done; input @ 'miles' +(-15) @ '"' distance&lt;BR /&gt;_&lt;BR /&gt;24&lt;BR /&gt;129 ! :comma12. text $30.; units = scan&lt;BR /&gt;ERROR 24-2: Invalid value for the LRECL option.&lt;/P&gt;&lt;P&gt;WARNING: Apparent symbolic reference FILESIZE not resolved.&lt;BR /&gt;MPRINT(DISTANCE_TIME): infile z recfm=f lrecl=&amp;amp;filesize. eof=done;&lt;BR /&gt;8 The SAS System 03:29 Thursday, February 4, 2016&lt;/P&gt;&lt;P&gt;MPRINT(DISTANCE_TIME): input @ 'miles' +(-15) @ '"' distance :comma12. text $30.;&lt;BR /&gt;MPRINT(DISTANCE_TIME): units = scan(text,1,'"');&lt;BR /&gt;MPRINT(DISTANCE_TIME): text = scan(text,3,'"');&lt;BR /&gt;MPRINT(DISTANCE_TIME): * convert times to seconds;&lt;BR /&gt;MPRINT(DISTANCE_TIME): select;&lt;BR /&gt;MPRINT(DISTANCE_TIME): * combine days and hours;&lt;BR /&gt;MPRINT(DISTANCE_TIME): when (find(text,'d') ne 0) time = sum(86400*input(scan(text,1,' '),best.), 3600*input(scan(text,3,'&lt;BR /&gt;'),best.));&lt;BR /&gt;MPRINT(DISTANCE_TIME): * combine hours and minutes;&lt;BR /&gt;MPRINT(DISTANCE_TIME): when (find(text,'h') ne 0) time = sum(3600*input(scan(text,1,' '),best.), 60*input(scan(text,3,'&lt;BR /&gt;'),best.));&lt;BR /&gt;MPRINT(DISTANCE_TIME): * just minutes;&lt;BR /&gt;MPRINT(DISTANCE_TIME): otherwise time = 60*input(scan(text,1,' '),best.);&lt;BR /&gt;MPRINT(DISTANCE_TIME): end;&lt;BR /&gt;MPRINT(DISTANCE_TIME): output;&lt;BR /&gt;MPRINT(DISTANCE_TIME): keep id addr1 addr2 distance units time;&lt;BR /&gt;MPRINT(DISTANCE_TIME): label addr1 = 'ADDRESS #1' addr2 = 'ADDRESS #2' id = 'ID #' distance = 'DISTANCE (MILES)' time = 'TIME&lt;BR /&gt;(HR:MIN)' ;&lt;BR /&gt;MPRINT(DISTANCE_TIME): stop;&lt;BR /&gt;MPRINT(DISTANCE_TIME): done: output;&lt;BR /&gt;MPRINT(DISTANCE_TIME): run;&lt;/P&gt;&lt;P&gt;NOTE: The SAS System stopped processing this step because of errors.&lt;BR /&gt;WARNING: The data set WORK.TEMP may be incomplete. When this step was stopped there were 0 observations and 6 variables.&lt;BR /&gt;WARNING: Data set WORK.TEMP was not replaced because this step was stopped.&lt;BR /&gt;NOTE: DATA statement used (Total process time):&lt;BR /&gt;real time 0.03 seconds&lt;BR /&gt;cpu time 0.01 seconds&lt;/P&gt;&lt;P&gt;MPRINT(DISTANCE_TIME): filename x clear;&lt;BR /&gt;NOTE: Fileref X has been deassigned.&lt;BR /&gt;MPRINT(DISTANCE_TIME): filename z clear;&lt;BR /&gt;NOTE: Fileref Z has been deassigned.&lt;BR /&gt;MPRINT(DISTANCE_TIME): proc append base=distance_time data=temp;&lt;BR /&gt;MPRINT(DISTANCE_TIME): run;&lt;/P&gt;&lt;P&gt;NOTE: Appending WORK.TEMP to WORK.DISTANCE_TIME.&lt;BR /&gt;NOTE: There were 0 observations read from the data set WORK.TEMP.&lt;BR /&gt;NOTE: 0 observations added.&lt;BR /&gt;NOTE: The data set WORK.DISTANCE_TIME has 0 observations and 6 variables.&lt;BR /&gt;NOTE: PROCEDURE APPEND used (Total process time):&lt;BR /&gt;real time 0.00 seconds&lt;BR /&gt;cpu time 0.00 seconds&lt;/P&gt;&lt;P&gt;MPRINT(DISTANCE_TIME): data _null_;&lt;BR /&gt;MPRINT(DISTANCE_TIME): nrec = 4;&lt;BR /&gt;MPRINT(DISTANCE_TIME): set addresses point=nrec;&lt;BR /&gt;MPRINT(DISTANCE_TIME): call symputx('id',id);&lt;BR /&gt;MPRINT(DISTANCE_TIME): call symputx('a1',translate(trim(addr1),'+',' '));&lt;BR /&gt;MPRINT(DISTANCE_TIME): call symputx('a2',translate(trim(addr2),'+',' '));&lt;BR /&gt;MPRINT(DISTANCE_TIME): stop;&lt;BR /&gt;MPRINT(DISTANCE_TIME): stop;&lt;BR /&gt;MPRINT(DISTANCE_TIME): run;&lt;/P&gt;&lt;P&gt;NOTE: DATA statement used (Total process time):&lt;BR /&gt;real time 0.00 seconds&lt;BR /&gt;9 The SAS System 03:29 Thursday, February 4, 2016&lt;/P&gt;&lt;P&gt;cpu time 0.00 seconds&lt;/P&gt;&lt;P&gt;MPRINT(DISTANCE_TIME): filename x url '&lt;A href="https://www.google.com/maps/dir/&amp;amp;a1/&amp;amp;a2/?force=lite'" target="_blank"&gt;https://www.google.com/maps/dir/&amp;amp;a1/&amp;amp;a2/?force=lite'&lt;/A&gt; debug prompt debug;&lt;BR /&gt;MPRINT(DISTANCE_TIME): filename z temp;&lt;BR /&gt;MPRINT(DISTANCE_TIME): data _null_;&lt;BR /&gt;MPRINT(DISTANCE_TIME): infile x recfm=f lrecl=1 end=eof;&lt;BR /&gt;MPRINT(DISTANCE_TIME): file z recfm=f lrecl=1;&lt;BR /&gt;MPRINT(DISTANCE_TIME): input @1 x $char1.;&lt;BR /&gt;MPRINT(DISTANCE_TIME): put @1 x $char1.;&lt;BR /&gt;MPRINT(DISTANCE_TIME): if eof;&lt;BR /&gt;MPRINT(DISTANCE_TIME): call symputx('filesize',_n_);&lt;BR /&gt;MPRINT(DISTANCE_TIME): run;&lt;/P&gt;&lt;P&gt;NOTE: Unable to connect to host &lt;A href="http://www.google.com." target="_blank"&gt;www.google.com.&lt;/A&gt; Check validity of host name.&lt;BR /&gt;ERROR: Host name &lt;A href="http://www.google.com" target="_blank"&gt;www.google.com&lt;/A&gt; not found.&lt;BR /&gt;NOTE: The file Z is:&lt;BR /&gt;Filename=/saswork/SAS_work41D5000062F8_lppma874.phx.aexp.com/#LN00102,&lt;BR /&gt;Owner Name=dcortell,Group Name=bis,&lt;BR /&gt;Access Permission=-rw-r--r--,&lt;BR /&gt;Last Modified=04Feb2016:09:03:07&lt;/P&gt;&lt;P&gt;NOTE: 0 records were written to the file Z.&lt;BR /&gt;NOTE: The SAS System stopped processing this step because of errors.&lt;BR /&gt;NOTE: DATA statement used (Total process time):&lt;BR /&gt;real time 0.02 seconds&lt;BR /&gt;cpu time 0.00 seconds&lt;/P&gt;&lt;P&gt;MPRINT(DISTANCE_TIME): data temp;&lt;BR /&gt;MPRINT(DISTANCE_TIME): length addr1 addr2 $50;&lt;BR /&gt;MPRINT(DISTANCE_TIME): id = "87878";&lt;BR /&gt;MPRINT(DISTANCE_TIME): addr1 = upcase(translate("370+Frederick+St,+San+Francisco,+CA+94117",' ','+'));&lt;BR /&gt;MPRINT(DISTANCE_TIME): addr2 = upcase(translate("2129+N+St+NW,+Washington,+DC+20037",' ','+'));&lt;BR /&gt;NOTE 137-205: Line generated by the invoked macro "DISTANCE_TIME".&lt;BR /&gt;129 data temp; length addr1 addr2 $50; id = "&amp;amp;id"; addr1 = upcase(translate("&amp;amp;a1",' ','+')); addr2 =&lt;BR /&gt;129 ! upcase(translate("&amp;amp;a2",' ','+')); infile z recfm=f lrecl=&amp;amp;filesize. eof=done; input @ 'miles' +(-15) @ '"' distance&lt;BR /&gt;_&lt;BR /&gt;24&lt;BR /&gt;129 ! :comma12. text $30.; units = scan&lt;BR /&gt;ERROR 24-2: Invalid value for the LRECL option.&lt;/P&gt;&lt;P&gt;WARNING: Apparent symbolic reference FILESIZE not resolved.&lt;BR /&gt;MPRINT(DISTANCE_TIME): infile z recfm=f lrecl=&amp;amp;filesize. eof=done;&lt;BR /&gt;MPRINT(DISTANCE_TIME): input @ 'miles' +(-15) @ '"' distance :comma12. text $30.;&lt;BR /&gt;MPRINT(DISTANCE_TIME): units = scan(text,1,'"');&lt;BR /&gt;MPRINT(DISTANCE_TIME): text = scan(text,3,'"');&lt;BR /&gt;MPRINT(DISTANCE_TIME): * convert times to seconds;&lt;BR /&gt;MPRINT(DISTANCE_TIME): select;&lt;BR /&gt;MPRINT(DISTANCE_TIME): * combine days and hours;&lt;BR /&gt;MPRINT(DISTANCE_TIME): when (find(text,'d') ne 0) time = sum(86400*input(scan(text,1,' '),best.), 3600*input(scan(text,3,'&lt;BR /&gt;'),best.));&lt;BR /&gt;MPRINT(DISTANCE_TIME): * combine hours and minutes;&lt;BR /&gt;MPRINT(DISTANCE_TIME): when (find(text,'h') ne 0) time = sum(3600*input(scan(text,1,' '),best.), 60*input(scan(text,3,'&lt;BR /&gt;'),best.));&lt;BR /&gt;MPRINT(DISTANCE_TIME): * just minutes;&lt;BR /&gt;MPRINT(DISTANCE_TIME): otherwise time = 60*input(scan(text,1,' '),best.);&lt;BR /&gt;MPRINT(DISTANCE_TIME): end;&lt;BR /&gt;10 The SAS System 03:29 Thursday, February 4, 2016&lt;/P&gt;&lt;P&gt;MPRINT(DISTANCE_TIME): output;&lt;BR /&gt;MPRINT(DISTANCE_TIME): keep id addr1 addr2 distance units time;&lt;BR /&gt;MPRINT(DISTANCE_TIME): label addr1 = 'ADDRESS #1' addr2 = 'ADDRESS #2' id = 'ID #' distance = 'DISTANCE (MILES)' time = 'TIME&lt;BR /&gt;(HR:MIN)' ;&lt;BR /&gt;MPRINT(DISTANCE_TIME): stop;&lt;BR /&gt;MPRINT(DISTANCE_TIME): done: output;&lt;BR /&gt;MPRINT(DISTANCE_TIME): run;&lt;/P&gt;&lt;P&gt;NOTE: The SAS System stopped processing this step because of errors.&lt;BR /&gt;WARNING: The data set WORK.TEMP may be incomplete. When this step was stopped there were 0 observations and 6 variables.&lt;BR /&gt;WARNING: Data set WORK.TEMP was not replaced because this step was stopped.&lt;BR /&gt;NOTE: DATA statement used (Total process time):&lt;BR /&gt;real time 0.03 seconds&lt;BR /&gt;cpu time 0.01 seconds&lt;/P&gt;&lt;P&gt;MPRINT(DISTANCE_TIME): filename x clear;&lt;BR /&gt;NOTE: Fileref X has been deassigned.&lt;BR /&gt;MPRINT(DISTANCE_TIME): filename z clear;&lt;BR /&gt;NOTE: Fileref Z has been deassigned.&lt;BR /&gt;MPRINT(DISTANCE_TIME): proc append base=distance_time data=temp;&lt;BR /&gt;MPRINT(DISTANCE_TIME): run;&lt;/P&gt;&lt;P&gt;NOTE: Appending WORK.TEMP to WORK.DISTANCE_TIME.&lt;BR /&gt;NOTE: There were 0 observations read from the data set WORK.TEMP.&lt;BR /&gt;NOTE: 0 observations added.&lt;BR /&gt;NOTE: The data set WORK.DISTANCE_TIME has 0 observations and 6 variables.&lt;BR /&gt;NOTE: PROCEDURE APPEND used (Total process time):&lt;BR /&gt;real time 0.00 seconds&lt;BR /&gt;cpu time 0.00 seconds&lt;/P&gt;&lt;P&gt;130&lt;BR /&gt;131 *&lt;BR /&gt;132 add the distance between ZIP centroids&lt;BR /&gt;133 (should be "in same ballpark" as driving distance)&lt;BR /&gt;134 ;&lt;BR /&gt;135 data distance_time;&lt;BR /&gt;136 set distance_time;&lt;BR /&gt;137 * ZIP should be LAST entry in the addresses;&lt;BR /&gt;138 zip_city = zipcitydistance(scan(addr1,-1),scan(addr2,-1));&lt;BR /&gt;139 label zip_city = 'ZIPCITYDISTANCE FUNCTION';&lt;BR /&gt;140 run;&lt;/P&gt;&lt;P&gt;NOTE: There were 0 observations read from the data set WORK.DISTANCE_TIME.&lt;BR /&gt;NOTE: The data set WORK.DISTANCE_TIME has 0 observations and 7 variables.&lt;BR /&gt;NOTE: DATA statement used (Total process time):&lt;BR /&gt;real time 0.01 seconds&lt;BR /&gt;cpu time 0.01 seconds&lt;/P&gt;&lt;P&gt;141&lt;BR /&gt;142 title "DRIVING DISTANCE AND TIMES";&lt;BR /&gt;143 proc print data=distance_time label noobs;&lt;BR /&gt;144 var id addr1 addr2 distance time zip_city;&lt;BR /&gt;145 format time time6.;&lt;BR /&gt;146 run;&lt;/P&gt;&lt;P&gt;11 The SAS System 03:29 Thursday, February 4, 2016&lt;/P&gt;&lt;P&gt;NOTE: No observations in data set WORK.DISTANCE_TIME.&lt;BR /&gt;NOTE: PROCEDURE PRINT used (Total process time):&lt;BR /&gt;real time 0.00 seconds&lt;BR /&gt;cpu time 0.00 seconds&lt;/P&gt;&lt;P&gt;147&lt;BR /&gt;148 GOPTIONS NOACCESSIBLE;&lt;BR /&gt;149 %LET _CLIENTTASKLABEL=;&lt;BR /&gt;150 %LET _CLIENTPROJECTPATH=;&lt;BR /&gt;151 %LET _CLIENTPROJECTNAME=;&lt;BR /&gt;152 %LET _SASPROGRAMFILE=;&lt;BR /&gt;153&lt;BR /&gt;154 ;*';*";*/;quit;run;&lt;BR /&gt;155 ODS _ALL_ CLOSE;&lt;BR /&gt;156&lt;BR /&gt;157&lt;BR /&gt;158 QUIT; RUN;&lt;BR /&gt;159&lt;/P&gt;</description>
      <pubDate>Thu, 04 Feb 2016 16:05:16 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Connection-to-url-via-filename-failed-ERROR-Host-name-www-google/m-p/248023#M46557</guid>
      <dc:creator>dcortell</dc:creator>
      <dc:date>2016-02-04T16:05:16Z</dc:date>
    </item>
    <item>
      <title>Re: Connection to url via filename failed: ERROR: Host name www.google.com not found.</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Connection-to-url-via-filename-failed-ERROR-Host-name-www-google/m-p/248038#M46561</link>
      <description>&lt;P&gt;Actually it does, confirming mine and possibly your suspicion:&lt;/P&gt;
&lt;P&gt;IN&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;NOTE: 0 records were written to the file Z.
NOTE: The SAS System stopped processing this step because of errors.
NOTE: DATA statement used (Total process time):
real time 0.02 seconds
cpu time 0.01 seconds

MPRINT(DISTANCE_TIME): data temp;
MPRINT(DISTANCE_TIME): length addr1 addr2 $50;
MPRINT(DISTANCE_TIME): id = "12345";
MPRINT(DISTANCE_TIME): addr1 = upcase(translate("59+LENOX+AVE,+Albany,+NY+12203",​' ','+'));
MPRINT(DISTANCE_TIME): addr2 = upcase(translate("1+UNIVERSITY+PL,+Rensselaer,+NY+​12144",' ','+'));
NOTE 137-205: Line generated by the invoked macro "DISTANCE_TIME".
129 data temp; length addr1 addr2 $50; id = "&amp;amp;id"; addr1 = upcase(translate("&amp;amp;a1",' ','+')); addr2 =
129 ! upcase(translate("&amp;amp;a2",' ','+')); infile z recfm=f lrecl=&amp;amp;filesize. eof=done; input @ 'miles' +(-15) @ '"' distance
_
24
129 ! :comma12. text $30.; units = scan
ERROR 24-2: Invalid value for the LRECL option.

WARNING: Apparent symbolic reference FILESIZE not resolved.
&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;The last line gives the proximate cause of the error: Filesize not resolved i.e. blank. So Lrecl= eof=done (since the macro variable is blank) reads EOF as the value for Lrecl.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;And since your line:&lt;/P&gt;
&lt;P&gt;filename x url '&lt;A href="https://www.google.com/maps/dir/&amp;amp;a1/&amp;amp;a2/?force=lite'" target="_blank" rel="nofollow"&gt;https://www.google.com/maps/dir/&amp;amp;a1/&amp;amp;a2/?force=lit​e'&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;has the macro variables within single quotes they do not resolve.&lt;/P&gt;
&lt;P&gt;Try&lt;/P&gt;
&lt;P&gt;filename x url "&lt;A href="https://www.google.com/maps/dir/&amp;amp;a1/&amp;amp;a2/?force=lit​e&amp;quot;" target="_blank"&gt;https://www.google.com/maps/dir/&amp;amp;a1&lt;STRONG&gt;.&lt;/STRONG&gt;/&amp;amp;a2&lt;STRONG&gt;.&lt;/STRONG&gt;/?force=lit​e"&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;Also note the added periods to concatenate the resolved&amp;nbsp;macro variables. Otherwise /&amp;amp;a1/&amp;amp;a2 would look for a&amp;nbsp;Macro variable named&amp;nbsp;&amp;amp;a1/&amp;nbsp; and give a different error message.&amp;nbsp;&lt;/P&gt;
&lt;P&gt;But depending on how &amp;amp;a1 and &amp;amp;a2 resolve you may have other issues.&lt;/P&gt;</description>
      <pubDate>Thu, 04 Feb 2016 16:52:06 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Connection-to-url-via-filename-failed-ERROR-Host-name-www-google/m-p/248038#M46561</guid>
      <dc:creator>ballardw</dc:creator>
      <dc:date>2016-02-04T16:52:06Z</dc:date>
    </item>
    <item>
      <title>Re: Connection to url via filename failed: ERROR: Host name www.google.com not found.</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Connection-to-url-via-filename-failed-ERROR-Host-name-www-google/m-p/248043#M46562</link>
      <description>&lt;P&gt;Mmmm I think it is not the main error here the Filezie one. I mean, looking at the part of the code where the two errors display (after having done the changes you suggested) I get the following log below&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;MPRINT(DISTANCE_TIME): filename x url 
"https://www.google.com/maps/dir/370+Frederick+St,+San+Francisco,+CA+94117/2129+N+St+NW,+Washington,+DC+20037/?force=lite" debug 
prompt debug;
MPRINT(DISTANCE_TIME): filename z temp;
MPRINT(DISTANCE_TIME): data _null_;
MPRINT(DISTANCE_TIME): infile x recfm=f lrecl=1 end=eof;
MPRINT(DISTANCE_TIME): file z recfm=f lrecl=1;
MPRINT(DISTANCE_TIME): input @1 x $char1.;
MPRINT(DISTANCE_TIME): put @1 x $char1.;
MPRINT(DISTANCE_TIME): if eof;
MPRINT(DISTANCE_TIME): call symputx('filesize',_n_);
MPRINT(DISTANCE_TIME): run;
NOTE: Unable to connect to host www.google.com. Check validity of host name.
ERROR: Host name www.google.com not found.
NOTE: The file Z is:
Filename=/saswork/SAS_work41D5000062F8_lppma874.phx.aexp.com/#LN00107,
Owner Name=dcortell,Group Name=bis,
Access Permission=-rw-r--r--,
Last Modified=04Feb2016:10:08:32
NOTE: 0 records were written to the file Z.
NOTE: The SAS System stopped processing this step because of errors.
NOTE: DATA statement used (Total process time):
real time 0.01 seconds
cpu time 0.00 seconds&lt;/CODE&gt;&lt;/PRE&gt;&lt;P&gt;Before the filesize warning you hilighted, what cause (at least seems) the code not connection to the url is not described. The log just statesagain :" &lt;SPAN&gt;NOTE: Unable to connect to host &lt;A href="http://www.google.com." target="_blank"&gt;www.google.com.&lt;/A&gt; Check validity of host name.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;ERROR: Host name &lt;A href="http://www.google.com" target="_blank"&gt;www.google.com&lt;/A&gt; not found.&lt;/SPAN&gt;"&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Then follow the second error you mention(below, and still persist despite the duble quotes) , which I understand is not the root cause here&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;129      ! :comma12. text $30.; units    = scan
ERROR 24-2: Invalid value for the LRECL option.

WARNING: Apparent symbolic reference FILESIZE not resolved.&lt;/CODE&gt;&lt;/PRE&gt;&lt;P&gt;It seems that the main proble is due to the filename statement not abel to recognize the google Url&lt;/P&gt;</description>
      <pubDate>Thu, 04 Feb 2016 17:18:55 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Connection-to-url-via-filename-failed-ERROR-Host-name-www-google/m-p/248043#M46562</guid>
      <dc:creator>dcortell</dc:creator>
      <dc:date>2016-02-04T17:18:55Z</dc:date>
    </item>
    <item>
      <title>Re: Connection to url via filename failed: ERROR: Host name www.google.com not found.</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Connection-to-url-via-filename-failed-ERROR-Host-name-www-google/m-p/248047#M46564</link>
      <description>&lt;P&gt;I get a "Connection has time out" error with that URL.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;But we have so many layers of nanny ware installed that we often can't connect to government websites required for our work that may be interfering. I know that posting the URL in my browser I have to manually respond to at least one "warning" before it will go to the site. Perhaps that is related to the error message when using Filename x&amp;nbsp;URL,&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;I don't think I can help with anything else at this time other than asking if before you created the macro code that you had a version that would pull the data without any macro references?&lt;/P&gt;</description>
      <pubDate>Thu, 04 Feb 2016 17:46:47 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Connection-to-url-via-filename-failed-ERROR-Host-name-www-google/m-p/248047#M46564</guid>
      <dc:creator>ballardw</dc:creator>
      <dc:date>2016-02-04T17:46:47Z</dc:date>
    </item>
    <item>
      <title>Re: Connection to url via filename failed: ERROR: Host name www.google.com not found.</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Connection-to-url-via-filename-failed-ERROR-Host-name-www-google/m-p/248050#M46565</link>
      <description>&lt;P&gt;Unluckly the code has been created by another user in the community in the link I posted above, so no idea about that.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;True is that also with using the filename statement with only data step the error persist.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;So wondering if there is something like a Fix or any proxy issue that is working here&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Maybe there is soemone else which has managed to solve the problem in a company environment&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;In any case thanks for the support Ballardw&lt;/P&gt;</description>
      <pubDate>Thu, 04 Feb 2016 18:02:08 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Connection-to-url-via-filename-failed-ERROR-Host-name-www-google/m-p/248050#M46565</guid>
      <dc:creator>dcortell</dc:creator>
      <dc:date>2016-02-04T18:02:08Z</dc:date>
    </item>
    <item>
      <title>Re: Connection to url via filename failed: ERROR: Host name www.google.com not found.</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Connection-to-url-via-filename-failed-ERROR-Host-name-www-google/m-p/248138#M46582</link>
      <description>&lt;P&gt;If you could do not use http&lt;STRONG&gt;S&lt;/STRONG&gt;://..... which is encrypted connection. SAS might not handle it in this way .&lt;/P&gt;
&lt;P&gt;Try htts://..........&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;A href="https://www.google.com/maps/dir/&amp;amp;a1/&amp;amp;a2/?force=lite%27" target="_blank" rel="nofollow"&gt;&lt;STRONG&gt;http:&lt;/STRONG&gt;//www.google.com/maps/dir/&amp;amp;a1/&amp;amp;a2/?force=lit&lt;WBR /&gt;e&lt;/A&gt;&lt;/P&gt;</description>
      <pubDate>Fri, 05 Feb 2016 01:57:20 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Connection-to-url-via-filename-failed-ERROR-Host-name-www-google/m-p/248138#M46582</guid>
      <dc:creator>Ksharp</dc:creator>
      <dc:date>2016-02-05T01:57:20Z</dc:date>
    </item>
    <item>
      <title>Re: Connection to url via filename failed: ERROR: Host name www.google.com not found.</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Connection-to-url-via-filename-failed-ERROR-Host-name-www-google/m-p/248192#M46604</link>
      <description>&lt;P&gt;Hi Xia&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Same errors here. So Would skip also this hypothesis. Thinking if it is not a proxy problem&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;D&lt;/P&gt;</description>
      <pubDate>Fri, 05 Feb 2016 08:49:30 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Connection-to-url-via-filename-failed-ERROR-Host-name-www-google/m-p/248192#M46604</guid>
      <dc:creator>dcortell</dc:creator>
      <dc:date>2016-02-05T08:49:30Z</dc:date>
    </item>
  </channel>
</rss>

