So eine dankbare Aufgabe wurde mir vor geraumer auch schon gestellt.
Es ging nicht darum, dass die Hausnummern korrekt gefüllt sind, sondern das die Angaben korrekt sind und korrekt aussehen.
Richtig schriebene Strassenname, Orte, PLZ's u.s.w.
Ich hatte damals eine ähnlich große Menge an Adressen.
Und ich habe ebenfalls versucht einen Filter zu basteln, bin aber gescheitert.
Gelöst habe ich es dann einfach:
Ich habe mir ein komplettes Strassenverzeichnis Deutschlands besorgt und dann alle Adresse (bzw. Strassen) mit dem Verzeichnis abgeglichen.
Alles was "%str." hieß habe ich in "%strasse" umbenannt und alle Zahlen am Ende des Stings waren automatisch Hausnummern.
In einem zweiten Schritt habe ich mit Hilfe der Postleitzahl, dem Ort und einem Ähnlichkeitsvergleich (>70%) sogar falsch geschriebene Strassenname "reparieren" können.
Ich war erstaunt wie gut das funktioniert hat.
Am Ende hatte ich ca. 100 Adressen übrig die ich per Hand nachpflegen musste, weil die Strassenname entweder nicht zu "entziffern" waren (komplett falsch geschrieben) oder garnicht existierten.
Zum Selectieren in der
DB reichen meist nur die ersten 4..5 Buchstaben des Strassennames. Außer bei sowas wie "Strasse des Bergmannes'. Aber auch des läßt sich lösen. Mit ein bissen ausbrobieren hatte ich damals alle Ausnahmen erschlagen.
In deinem Fall läßt sich bestimmt auch noch was mit "HH" und "HN" was anfangen (was auch immer das bedeutet).
In "meinem" Programm später habe ich ab der Eingabe des 4 Zeichens die
DB bemüht und einen richtig geschrieben Strassenamen vorgeschlagen.
Das hat gut funktioniert und wird meines Wissens nach immernoch kräftig verwendet.
Ich suche mal, ob ich den Code noch irgendwo habe. Ist allerdings nicht in Delphi geschrieben sondern Centura mit
SQL gegen Oracle.
Achja. Aus der "Foobarstr." wird eine "Foobarstrasse" und keine "Foobar Strasse". Es sein denn sie heißt "Foobarer Strasse".
Ich glaube die "Foobar Strasse" ist auch nach neuer Rechtschreibung falsch geschrieben.
Gruß
gmc