• Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 162
  • Last Modified:

address recognition software

Hi All,

I am wondering does anyone know of any software dll which can be downloaded (preferably free) which can be used in a program to find UK addresses where the postcode is given.

Thanks

Damien
0
damienm
Asked:
damienm
1 Solution
 
TimCotteeHead of Software ServicesCommented:
You won't get this info for free I am afraid. The Royal Mail will sell you this info or you can get it from their website http://pol.royalmail.com/AF.asp I guess you could use the webbrowser control and navigate to this and take out the information returned for your own use.
0
 
deightonprogCommented:
0
 
inthedarkCommented:
Presumably from a bitmap/image?

Is the source typed or hand-written?

I have seen some software that scans a business cards and then extracts the name, address & telephone & fax  But it does not work on Scandinavian, Greek & Russian names & addresses.
0
Cloud Class® Course: Microsoft Office 2010

This course will introduce you to the interfaces and features of Microsoft Office 2010 Word, Excel, PowerPoint, Outlook, and Access. You will learn about the features that are shared between all products in the Office suite, as well as the new features that are product specific.

 
damienmAuthor Commented:
inthedark,

No it is just typed.  It is just to save time/mistakes when people are typing addresses.  They only need to enter postcode.

Tim Cottee,

I might be able to use your example using something like Wininet API to get access to the web and read the results that come back, but I suspect it will be quite slow accessing the web and returning the correct part of html string.

Also deighton QAS is an interesting site with some good products.
0
 
TimCotteeHead of Software ServicesCommented:
damienm, here is a very quick and VERY dirty way of getting this info from the royalmail site using the webbrowser control. This uses a list box to display the results and two command buttons, one to navigate to the entry page and the other to do the lookup.

Private Sub Command1_Click()
    WebBrowser1.Document.All.Item(7).All.Item(55).Value = Text1.Text
    WebBrowser1.Document.All.Item(7).All.Item(66).Click
End Sub

Private Sub Command2_Click()
    WebBrowser1.Navigate2 "http://pol.royalmail.com/AF.asp"
End Sub

Private Sub WebBrowser1_DocumentComplete(ByVal pDisp As Object, URL As Variant)
    If URL = "http://pol.royalmail.com/AF.asp" Then
        'Found the start
    ElseIf URL = "http://pol.royalmail.com/AF-proc.asp" Then
        List1.Clear
        For intItem = 0 To WebBrowser1.Document.All.Item(7).All.length - 1
            If WebBrowser1.Document.All.Item(7).All.Item(intItem).TagName = "OPTION" Then
                List1.AddItem WebBrowser1.Document.All.Item(7).All.Item(intItem).Text
            End If
        Next
        If List1.ListCount = 0 Then
            List1.AddItem "Postcode : " & Text1.Text & " Not Found!"
        End If
    End If
End Sub
0
 
damienmAuthor Commented:
TimCottee,

Your example works very well, I have just a couple of questions about Command1

Private Sub Command1_Click()
   WebBrowser1.Document.All.Item(7).All.Item(55).Value = Text1.Text
   WebBrowser1.Document.All.Item(7).All.Item(66).Click
End Sub

How do you know that Item(7).All.Item(55).Value is the place where the text box with the postcode is.  I have viewed the sourcecode for http://pol.royalmail.com/AF.asp but I cannot see how you know which value is (55) and which is (66) etc, and where is the part for item(7).

I haven't used the web browser control before, I know this is not part of the question but I am just curious to know and I will give you the points when I understand this bit.

Thanks Damien
0
 
TimCotteeHead of Software ServicesCommented:
Trial and error in this case, I don't tend to use it much myself and just went through the the list of tags and found the appropriate ones. Here is a slightly cleaner version which replaces some of this guesswork though I still can't find the appropriate item for the search button click (Item 66). document.all.Item(7) is equivalent t document.body, I just wasn't trying to be desperately clean about things merely testing out the theory.

Private Sub Command1_Click()
    WebBrowser1.Document.body.All.postcode.Value = Text1.Text
    WebBrowser1.Document.body.All.Item(66).Click
    Command1.Enabled = False
    Command2.Enabled = True
End Sub

Private Sub Command2_Click()
    WebBrowser1.Navigate2 "http://pol.royalmail.com/AF.asp"
    Command1.Enabled = True
    Command2.Enabled = False
End Sub

Private Sub Form_Load()
    Command2.Enabled = True
    Command1.Enabled = False
    Command2.Caption = "Go To Postcodes"
    Command1.Caption = "Search For Addresses"
End Sub

Private Sub WebBrowser1_DocumentComplete(ByVal pDisp As Object, URL As Variant)
    If URL = "http://pol.royalmail.com/AF.asp" Then
        'Found the start
    ElseIf URL = "http://pol.royalmail.com/AF-proc.asp" Then
        List1.Clear
        For Each Address In WebBrowser1.Document.All.tags("OPTION")
            List1.AddItem Address.Text
        Next
        If List1.ListCount = 0 Then
            List1.AddItem "Postcode : " & Text1.Text & " Not Found!"
        End If
    End If
End Sub

0
 
damienmAuthor Commented:
What I have done is copy the first file to my hard drive and only kept the postcode text box and the search (submit) button and on search point to the web page no2, and used form1.submit instead of item(66).

'<FORM action='http://pol.royalmail.com/AF-proc.asp' method=post name=form1
                  onsubmit="return CheckSubmit();">

Private Sub Command1_Click()
   WebBrowser1.Document.body.All.postcode.Value = Text1.Text
   WebBrowser1.Document.body.All.Form1.submit
   Command1.Enabled = False
   Command2.Enabled = True
End Sub

Private Sub Command2_Click()
   WebBrowser1.Navigate2 "c:\postcode\AF.asp"
   Command1.Enabled = True
   Command2.Enabled = False
End Sub

Anyway

Thanks everyone

Damien
0
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

Join & Write a Comment

Featured Post

Cloud Class® Course: CompTIA Cloud+

The CompTIA Cloud+ Basic training course will teach you about cloud concepts and models, data storage, networking, and network infrastructure.

Tackle projects and never again get stuck behind a technical roadblock.
Join Now