AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken wie Adresse auseinandernehmen
Thema durchsuchen
Ansicht
Themen-Optionen

wie Adresse auseinandernehmen

Ein Thema von khh · begonnen am 5. Sep 2012 · letzter Beitrag vom 7. Sep 2012
Antwort Antwort
Seite 2 von 3     12 3      
-=ZGD=-

Registriert seit: 25. Apr 2006
Ort: Bad Aibling
105 Beiträge
 
Delphi 10.1 Berlin Professional
 
#11

AW: wie Adresse auseinandernehmen

  Alt 5. Sep 2012, 13:24
Solch ähnliche Lösungen hatte ich auch mal.
Problem war dann, dass irgendwann Hausnummern im Stil von
Code:
128 - 130
vorlagen.

Am besten nimmst du den kompletten String und extrahierst ab dem ersten Vorkommnis einer Zahl bis zum Ende alles als Hausnummer.

Leerzeichen dazwischen kannst du natürlich danach noch immer entfernen.

Quasi so, wie Bummi es schon beschrieben hat.
Stefan Michalk
  Mit Zitat antworten Zitat
BlackbirdBerlin

Registriert seit: 15. Okt 2009
Ort: 10318 Berlin
91 Beiträge
 
Delphi 7 Architect
 
#12

AW: wie Adresse auseinandernehmen

  Alt 5. Sep 2012, 13:34
Hi zusammen.

Um noch einen weiteren Sonderfall mit rein zu bringen:

In Berlin (und anderen Städten sicherlich auch) gibt es auch Straßen ohne Namen:

eine Adresse dort wäre z.B.
Straße 136 5

Wobei hier die 5 die Hausnummer ist. (was mit dem vorgenannten Ansatz zur Falscherkennung führen würde)

Ich würde prinzipiell die am weitesten rechts stehenden Ziffern (ggf. mit Index a, b oder ähnlichen und ggf. mit von/bis, wie schon genannt "128 - 130") als Hausnummer betrachten und alles andere als den Straßennamen.

Viele Grüße,
Tim
Tim
  Mit Zitat antworten Zitat
nahpets
(Gast)

n/a Beiträge
 
#13

AW: wie Adresse auseinandernehmen

  Alt 5. Sep 2012, 19:05
Hallo,

beschäftige mich seit vielen Jahren mit dem Thema. Die perfekte Lösung gibt es nicht.
Die besten (aber nicht perfekten) Ergebnisse habe ich bisher mit folgender Logik erreicht:
  1. von rechts nach links alles nehmen, was keine Ziffer ist. (Teil 3)
  2. dann alles nehmen, was kein Buchstabe ist. (Teil 2)
  3. Alles was davor ist, ist die Straße. (Teil 1)
  4. Alle drei Teile von führenden und folgenden Leerzeichen bereinigen.
Die Hausnummer hat man in Teil 2 und alles was hinter der Hausnummer ist (Teil 3), kommt in ein Feld Hausnummernzusatz. Die Trennung von Straße nur in Straße und Hausnummer ist nicht sinnvoll, spätestens bei Adressvergleichen stört alles, was in der Hausnummer steht, aber eigentlich nicht zur Hausnummer gehört.
Ggfls. kann man bei Teil 3 noch prüfen, ob er nur aus einem Buchstaben besteht, um Hausnummern der Form 12a zu separieren.

Diese Logik scheitert im o.g. Beispiel von Berlin, aber auch in Mannheim (siehe z. B. http://rhein-neckar-wiki.de/Stra%C3%...%28Mannheim%29) oder bei Straßennamen der Form An der B 222 1a. Hier ist die 222 noch Teil des Straßennamens und 1a die Hausnummer. Und natürlich scheitert es auch bei o. g. Schlossberg 12, 3. Stock.
  Mit Zitat antworten Zitat
hoika

Registriert seit: 5. Jul 2006
Ort: Magdeburg
8.270 Beiträge
 
Delphi 10.4 Sydney
 
#14

AW: wie Adresse auseinandernehmen

  Alt 5. Sep 2012, 19:20
Hallo,
einfache Antwort?
Vergiss es.
Viel zu viele Probleme.

Heiko
Heiko
  Mit Zitat antworten Zitat
generic

Registriert seit: 24. Mär 2004
Ort: bei Hannover
2.415 Beiträge
 
Delphi XE5 Professional
 
#15

AW: wie Adresse auseinandernehmen

  Alt 6. Sep 2012, 14:58
Es ist unmöglich die Adresse z.B. mit RegEx auseinander zu nehmen.

Denkt mal an Mannheim oder an Flurstücknummern.

Was du machen kannst, ist z.B. von der Post die Datafactory nutzen.
Dort stehen alle Straßen und Orte drin.
Mit diesen Tabellen trennst du die Straße von der ggf. vorhandenen Nummer.
Coding BOTT - Video Tutorials rund um das Programmieren - https://www.youtube.com/@codingbott
  Mit Zitat antworten Zitat
shmia

Registriert seit: 2. Mär 2004
5.508 Beiträge
 
Delphi 5 Professional
 
#16

AW: wie Adresse auseinandernehmen

  Alt 6. Sep 2012, 16:23
beschäftige mich seit vielen Jahren mit dem Thema
Dito!
Das Trennen von Strassennamen, Hausnummer und Hausnummerzusätze ist sehr schwierig. (es ist fast schon KI nötig)
Man braucht für jede Ausnahme extra Code der dies behandelt.

Meine letzte Idee (die ich aber noch nicht umgesetzt habe) war, dass man den String "tokenizen" müsste.
A=Buchstabenkette
B=Einzelbuchstabe
9=Ziffernkette
8=Ziffernkette gefolgt von Punkt
x=Trennzeichen / oder - oder , oder .
_=Folge von Leerzeichen

Schlossberg 12, 3. Stock wäre also das Muster A_9x_8_A
M 17,3 entspräche Muster B_9x9
Für jedes Muster muss man sich zusätzlich speichern, wo die Strasse und wo die Hausnr steckt.
Mit 20 bis 50 verschiedenen Mustern kann man so evtl. alle Schreibweisen abdecken.
Andreas

Geändert von shmia ( 6. Sep 2012 um 16:26 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von Nersgatt
Nersgatt

Registriert seit: 12. Sep 2008
Ort: Emlichheim
693 Beiträge
 
Delphi 10.1 Berlin Professional
 
#17

AW: wie Adresse auseinandernehmen

  Alt 7. Sep 2012, 07:09
Und an dieser Stelle muss man dann überlegen, ob es den Aufwand wert ist, dafür überhaupt komplizierten Quellcode zu schreiben. Vielleicht sind es nur so wenige Datensätze (wenige tausend), dass es sinnvoller wäre, ein einfaches Programm zu schreiben (nur die letzten Zahlen nehmen, z.B.). Und dann setzt man nochmal den Azubi 3 Stunden dran, um die Daten zu überprüfen und ggf. händisch nachzuarbeiten.
Jens
  Mit Zitat antworten Zitat
khh

Registriert seit: 18. Apr 2008
Ort: Südbaden
1.903 Beiträge
 
FreePascal / Lazarus
 
#18

AW: wie Adresse auseinandernehmen

  Alt 7. Sep 2012, 07:28
alsoo

ich habe jetzt von hinten die Zahlen abgetrennt.
Da das natürlich nicht optimal ist, muss jemand( der AZUBI ist ne gute Idee )die DS nochmal durchgehen.
Das ist zwar im Moment ausreichend, aber leider keine endgültige Lösung, da sicher noch ein paar Tausend Sätze dazu kommen werden.
Karl-Heinz
  Mit Zitat antworten Zitat
Benutzerbild von Nersgatt
Nersgatt

Registriert seit: 12. Sep 2008
Ort: Emlichheim
693 Beiträge
 
Delphi 10.1 Berlin Professional
 
#19

AW: wie Adresse auseinandernehmen

  Alt 7. Sep 2012, 07:46
Das ist zwar im Moment ausreichend, aber leider keine endgültige Lösung, da sicher noch ein paar Tausend Sätze dazu kommen werden.
Dann mach noch ein Feld "gesichtet" rein. Damit sich der Azubi zukünftig nur die Datensätze rausfiltern kann, die er noch nicht überprüft hat.
Jens
  Mit Zitat antworten Zitat
Benutzerbild von Daniela.S
Daniela.S

Registriert seit: 1. Mär 2008
Ort: Niederösterreich
224 Beiträge
 
Delphi XE4 Enterprise
 
#20

AW: wie Adresse auseinandernehmen

  Alt 7. Sep 2012, 07:46
warum verwendet ihr nicht Regular Expressions? Bietet sich doch an...

http://www.regular-expressions.info/delphi.html
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 3     12 3      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 09:31 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz