Advertisement
Guest User

Untitled

a guest
Oct 22nd, 2014
187
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
VB.NET 2.90 KB | None | 0 0
  1. Public Function parseAddress(ByVal input As String) As Collection
  2.     input = input.Replace(",", "")
  3.     input = input.Replace("  ", " ")
  4.     Dim splitString() As String = Split(input)
  5.     Dim streetMarker() As String = New String() {"street", "st", "st.", "avenue", "ave", "ave.", "blvd", "blvd.", "highway", "hwy", "hwy.", "box", "road", "rd", "rd.", "lane", "ln", "ln.", "circle", "circ", "circ.", "court", "ct", "ct."}
  6.     Dim address1 As String
  7.     Dim address2 As String = ""
  8.     Dim city As String
  9.     Dim state As String
  10.     Dim zip As String
  11.     Dim streetMarkerIndex As Integer
  12.  
  13.     zip = splitString(splitString.Length - 1).ToString()
  14.     state = splitString(splitString.Length - 2).ToString()
  15.     streetMarkerIndex = getLastIndexOf(splitString, streetMarker) + 1
  16.     Dim sb As New StringBuilder
  17.  
  18.     For counter As Integer = streetMarkerIndex To splitString.Length - 3
  19.         sb.Append(splitString(counter) + " ")
  20.     Next counter
  21.     city = RTrim(sb.ToString())
  22.     Dim addressIndex As Integer = 0
  23.  
  24.     For counter As Integer = 0 To streetMarkerIndex
  25.         If IsNumeric(splitString(counter)) _
  26.             Or splitString(counter).ToString.ToLower = "po" _
  27.             Or splitString(counter).ToString().ToLower().Replace(".", "") = "po" Then
  28.                 addressIndex = counter
  29.             Exit For
  30.         End If
  31.     Next counter
  32.  
  33.     sb = New StringBuilder
  34.     For counter As Integer = addressIndex To streetMarkerIndex - 1
  35.         sb.Append(splitString(counter) + " ")
  36.     Next counter
  37.  
  38.     address1 = RTrim(sb.ToString())
  39.  
  40.     sb = New StringBuilder
  41.  
  42.     If addressIndex = 0 Then
  43.         If splitString(splitString.Length - 2).ToString() <> splitString(streetMarkerIndex + 1) Then
  44.             For counter As Integer = streetMarkerIndex To splitString.Length - 2
  45.                 sb.Append(splitString(counter) + " ")
  46.             Next counter
  47.         End If
  48.     Else
  49.         For counter As Integer = 0 To addressIndex - 1
  50.             sb.Append(splitString(counter) + " ")
  51.         Next counter
  52.     End If
  53.     address2 = RTrim(sb.ToString())
  54.  
  55.     Dim output As New Collection
  56.     output.Add(address1, "Address1")
  57.     output.Add(address2, "Address2")
  58.     output.Add(city, "City")
  59.     output.Add(state, "State")
  60.     output.Add(zip, "Zip")
  61.     Return output
  62. End Function
  63.  
  64. Private Function getLastIndexOf(ByVal sArray As String(), ByVal checkArray As String()) As Integer
  65.     Dim sourceIndex As Integer = 0
  66.     Dim outputIndex As Integer = 0
  67.     For Each item As String In checkArray
  68.         For Each source As String In sArray
  69.             If source.ToLower = item.ToLower Then
  70.                 outputIndex = sourceIndex
  71.                 If item.ToLower = "box" Then
  72.                     outputIndex = outputIndex + 1
  73.                 End If
  74.             End If
  75.             sourceIndex = sourceIndex + 1
  76.         Next
  77.         sourceIndex = 0
  78.     Next
  79.     Return outputIndex
  80. End Function
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement