home *** CD-ROM | disk | FTP | other *** search
- Path: sparky!uunet!ogicse!orstcs!orstcs!usenetusenet
- From: pricec@prism.CS.ORST.EDU (price carl wayne)
- Newsgroups: comp.sys.mac.databases
- Subject: USPS Barcode Code
- Message-ID: <1992Aug17.213040.10102@CS.ORST.EDU>
- Date: 17 Aug 92 21:30:40 GMT
- Article-I.D.: CS.1992Aug17.213040.10102
- Sender: usenet@CS.ORST.EDU
- Organization: Oregon State University, Computer Science Dept.
- Lines: 120
- Nntp-Posting-Host: prism.cs.orst.edu
-
-
- Here is my code to calculate the USPS barcode info. The font that I have is
- from Sumex. There are places that this code could be streamlined, or most
- of it's function could be done as separate procedures with the parameters
- passed to them. If you do improve the code I would appreciate a copy.
-
- --Carl
-
- Default File([Student Info])
-
- `Get Zip code for mailing address
- If([Student Info]Mail Home=True)
- $Zip:=[Student Info]ZIP or PC
- Else
- $ZIP:=[Company info]ZIP or PC
- End If
- $country:=[Student Info]Country
- $address:=vAddCode
- If($country="") `Denotes a US adress
- If(Length($Zip)>8)
-
- `strip "-" from zip+4
- $p:=Position("-";$Zip)
- If($p#0)
- $Z1:=Substrin($zip;1;5)
- $Z2:=Substring($zip;7;4)
- $Zip:=$Z1+$Z2
- End if
-
-
- `Get street number from address
- $p:=Position(" ";$address)
- $sub:=Substrin($address;1;$p-1)
- `Check to see if Address is a PO Box
- $POCheck:=Uppercase($sub)
- If($POCheck="PO")
- $num:=Num($address)
- $sub:=string($num)
- End if
-
- `Check for hyphen in street number
- $Hyph:=False
- For($i;1;Length($sub))
- $test:=Substrin($sub;$i;1)
- Case of
- :($test="-")
- $Hyph:=True
- End Case
- End For
-
- `Test Characters after hyphen for a letter
- If($Hyph=True)
- $p:=Position("-";$sub)
- $Alpha:=False
- For($i;$p+1;Length($sub))
- $Test:=Substrin($sub;$i;1)
- Case of
- :($Test="0")
- :($Test="1")
- :($Test="2")
- :($Test="3")
- :($Test="4")
- :($Test="5")
- :($Test="6")
- :($Test="7")
- :($Test="8")
- :($Test="9")
- Else
- $Alpha:=True
- End Case
- End For
-
- `Find proper substrin to extract Code from
- If($Alph=True)
- $sub:=Substring($sub;1;$p-1)
- Else
- $temp:=Substring($sub;1;$p)
- $len:=Length($sub)-Length($Temp)
- $sub:=Substring($sub;$p+1;$len)
- End if
- $add:=Substrin($sub;Length($sub)-1;2)
- If(Length($add)=1)
- $add:="0"+$add
- End if
- Else `$Hyph=False
- `Strip any trailing letters out of the Street number
- $num:=Num($sub)
- $sub:=String($num)
- $add:=Substring($sub;Length($sub)-1;2)
- if(Length($add)=1)
- $add:="0"+$add
- End if
- End if
- $BarCod:=$Zip+$add
- $amount:=0
- For($i;1;Length($BarCod))
- $Test:=Substrin($BarCod;$i;1)
- $amount:=$amount+Num($Test)
- End for
- $correction:=$amount%10 `amount mod 10
- If($correction#0)
- $ccn:=10-$correction
- Else
- $ccn:=0
- End if
- $cc:=String($ccn)
- Barcode:="["+$BarCode+$cc+"]"
- Else
- Barcode:=""
- End if
- Else
- Barcode:=""
- End if
-
-
- --
- Carl W. Price * * Work keeps us from three evils: *
- Computer Engineering Student * * boredom, vice, and need. *
- Oregon State University * * *
- pricec@prism.cs.orst.edu * * ---Voltaire *
-