Sender: |
|
Date: |
Thu, 19 Mar 2009 20:57:49 -0400 |
Reply-To: |
|
Subject: |
|
MIME-Version: |
1.0 |
Content-Transfer-Encoding: |
7bit |
In-Reply-To: |
|
Content-Type: |
text/plain; charset=UTF-8 |
From: |
|
Parts/Attachments: |
|
|
Well, sure. If you don't mind having a massive list in memory, you
can make it even faster:
property zipCodeList : {}
my setZipCodeList()
on StateFromZip(aZip)
set position to ((text 1 thru 3 of (aZip as text)) as integer) + 1
return item position of zipCodeList
end StateFromZip
on setZipCodeList()
repeat with i from 0 to 999
if i >= 006 and i <= 009 then
set end of zipCodeList to "PR"
else if i >= 010 and i <= 027 then
set end of zipCodeList to "MA"
else if i >= 028 and i <= 029 then
set end of zipCodeList to "RI"
else if i >= 030 and i <= 038 then
set end of zipCodeList to "NH"
else if i >= 039 and i <= 049 then
set end of zipCodeList to "ME"
else if i >= 050 and i <= 059 then
set end of zipCodeList to "VT"
else if i >= 060 and i <= 069 then
set end of zipCodeList to "CT"
else if i >= 070 and i <= 100 then
set end of zipCodeList to "NJ"
else if i >= 101 and i <= 149 then
set end of zipCodeList to "NY"
else if i >= 150 and i <= 196 then
set end of zipCodeList to "PA"
else if i >= 197 and i <= 199 then
set end of zipCodeList to "DE"
else if i >= 200 and i <= 203 then
set end of zipCodeList to "DC"
else if i >= 201 and i <= 246 then
set end of zipCodeList to "VA"
else if i >= 206 and i <= 219 then
set end of zipCodeList to "MD"
else if i >= 247 and i <= 268 then
set end of zipCodeList to "WV"
else if i >= 270 and i <= 289 then
set end of zipCodeList to "NC"
else if i >= 290 and i <= 299 then
set end of zipCodeList to "SC"
else if i >= 300 and i <= 319 then
set end of zipCodeList to "GA"
else if i >= 320 and i <= 349 then
set end of zipCodeList to "FL"
else if i >= 350 and i <= 388 then
set end of zipCodeList to "AL"
else if i >= 370 and i <= 385 then
set end of zipCodeList to "TN"
else if i >= 380 and i <= 729 then
set end of zipCodeList to "AR"
else if i >= 386 and i <= 397 then
set end of zipCodeList to "MS"
else if i >= 400 and i <= 427 then
set end of zipCodeList to "KY"
else if i >= 430 and i <= 458 then
set end of zipCodeList to "OH"
else if i >= 460 and i <= 479 then
set end of zipCodeList to "IN"
else if i >= 480 and i <= 499 then
set end of zipCodeList to "MI"
else if i >= 500 and i <= 561 then
set end of zipCodeList to "IA"
else if i >= 527 and i <= 629 then
set end of zipCodeList to "IL"
else if i >= 530 and i <= 549 then
set end of zipCodeList to "WI"
else if i >= 550 and i <= 582 then
set end of zipCodeList to "MN"
else if i >= 570 and i <= 577 then
set end of zipCodeList to "SD"
else if i >= 576 and i <= 588 then
set end of zipCodeList to "ND"
else if i >= 590 and i <= 599 then
set end of zipCodeList to "MT"
else if i >= 630 and i <= 658 then
set end of zipCodeList to "MO"
else if i >= 660 and i <= 679 then
set end of zipCodeList to "KS"
else if i >= 680 and i <= 693 then
set end of zipCodeList to "NE"
else if i >= 700 and i <= 714 then
set end of zipCodeList to "LA"
else if i >= 730 and i <= 790 then
set end of zipCodeList to "OK"
else if i >= 750 and i <= 798 then
set end of zipCodeList to "TX"
else if i >= 799 and i <= 884 then
set end of zipCodeList to "NM"
else if i >= 800 and i <= 820 then
set end of zipCodeList to "CO"
else if i >= 821 and i <= 830 then
set end of zipCodeList to "WY"
else if i >= 831 and i <= 991 then
set end of zipCodeList to "ID"
else if i >= 840 and i <= 847 then
set end of zipCodeList to "UT"
else if i >= 845 and i <= 890 then
set end of zipCodeList to "AZ"
else if i >= 891 and i <= 898 then
set end of zipCodeList to "NV"
else if i >= 894 and i <= 976 then
set end of zipCodeList to "CA"
else if i >= 967 and i <= 968 then
set end of zipCodeList to "HI"
else if i >= 970 and i <= 993 then
set end of zipCodeList to "OR"
else if i >= 980 and i <= 994 then
set end of zipCodeList to "WA"
else if i >= 995 and i <= 999 then
set end of zipCodeList to "AK"
else
set end of zipCodeList to the missing value
end if
end repeat
end setZipCodeList
--
Mark J. Reed <[log in to unmask]>
|
|
|