|
View:
New views
2 Messages
—
Rating Filter:
Alert me
|
|
|
fetching a zip codeHere'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 |
|
|
|
| Free Forum Powered by Nabble | Forum Help |