fetching a zip code

View: New views
2 Messages — Rating Filter:   Alert me  

fetching a zip code

by Peter Brigham-2 :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

Here's something I arrived at after thinking more about Scott Rossi's  
observation a month or two ago (re the Movie Finder stack) about  
using the URL functions in Rev without ever actually opening a  
browser. The following handler operates on a text field into which  
the user enters an address, and if you don't know the zip code it can  
be fetched automagically. Watch line-wraps:

on getZip
   put fld "addr" into tAddr
   if word -1 of tAddr is a number then exit getZip
   -- already have zip code
   put tAddr into origAddr

   put line 1 of tAddr into addr1
   if char 1 of addr1 is not a number and word 1 of addr1 <> "One" then
     -- probably a company name, or some such
     delete line 1 of tAddr
     put line 1 of tAddr into addr1
   end if
   if word 1 of addr1 = "One" then put "1" into word 1 of addr1
   -- google expects '1' not the 'One' that some snootier places use

   -- the following is to handle things like '110 Main St. - Suite 200'
   -- delete those before sending address to google
   if " - " is in addr1 then -- n-dash
     delete char (offset(" - ",addr1)) to -1 of addr1
   else if " – " is in addr1 then -- option-dash
     delete char (offset(" – ",addr1)) to -1 of addr1
   else if " — " is in addr1 then -- m-dash
     delete char (offset(" — ",addr1)) to -1 of addr1
   else if "#" is in addr1 then
     -- to handle apartment numbers
     -- delete those before sending address to google
     delete char (offset("#",addr1)) to -1 of addr1
   end if
   put sr(addr1) into line 1 of tAddr

   -- now, format for google
   replace return with ", " in tAddr
   put "http://maps.google.com/maps?f=q&hl=en&geocode=&q=" into tURL
   replace space with "+" in tAddr
   replace "++" with "+" in tAddr
   put tAddr after tURL
   put URL tURL into thePage

   if the result <> empty then
     answer "Can't get zip code. Check your online connection." as sheet
     exit getZip
   end if

   put offset("sxpo:",thePage) into ofs
   -- ...sxpr:"MA",sxpo:"02135",sxcn:"US"...
   put char ofs+6 to ofs+10 of thePage into tZip
   if tZip is a number then
     put origAddr & "  " & tZip into fld "addr"
   else
     answer "Can't get zip code." as sheet
   end if
end getZip

function sr str -- strip returns and other white space fore & aft
   return word 1 to -1 of str
end sr

I originally called the handler on closefield, but if you aren't  
online then you get a potentially spurious answer dialog. Instead I  
call it from a menupick handler in a popup menu triggered by a right  
click on the field, giving the user more control.

I tried to do something more elegant than fetching a page containing  
a whole map from google, but I couldn't find any simple RSS feed for  
zip codes, and all the other zip code search pages I found used java  
so I couldn't construct a URL search string from the address. Even  
so, the script takes less than half a second to add the zip code to  
the field, unless the network is clogged. I love the idea of doing  
this kind of thing "behind the scenes," as it were.

BTW, Scott, I took the liberty of turning your Movie Finder stack  
into a standalone, tweaking the interface a bit (perhaps not for the  
better :-)) and adding the functionality of being able to click on a  
movie title and get connected with the MRQE (Movie Review Query  
Engine) list of online movie reviews for the film. It's downloadable  
from
http://home.comcast.net/~pmbrig/MovieLocator.html
I'm interested in feedback partly because I'm finding that folks  
running Leopard don't seem to be able to open my standalones (created  
on an Intel Mac iBook G4, OSX 10.4.1, Studio 2.9 build 610). Maybe  
there's something wrong with my standalone settings? I'm building it  
as a universal binary, not sure what's going wrong.... Anyone else  
have trouble building in Tiger and running the resulting app in  
Leopard? Is there a trick to it? The Windows version seems to work  
fine, ironically.

Peter M. Brigham
pmbrig@...
use-revolution mailing list
use-revolution@...
Please visit this url to subscribe, unsubscribe and manage your subscription preferences:
http://lists.runrev.com/mailman/listinfo/use-revolution

Parent Message unknown Re: fetching a zip code

by Peter Brigham-2 :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

On Sunday, May 11, I wrote:

*****
...I'm interested in feedback partly because I'm finding that folks  
running Leopard don't seem to be able to open my standalones (created  
on an Intel Mac iBook G4, OSX 10.4.1, Studio 2.9 build 610)....
*****

sorry, my mistake, of course the iBook G4 is not an Intel machine.  
BTW, I don't think the problem is porting from G4 to Intel, since My  
wife's Intel MacBook running Tiger will open my standalones fine. The  
problem seems to be porting from Tiger to Leopard.

Peter M. Brigham
pmbrig@...

_______________________________________________
use-revolution mailing list
use-revolution@...
Please visit this url to subscribe, unsubscribe and manage your subscription preferences:
http://lists.runrev.com/mailman/listinfo/use-revolution