Discussion:
Straße und Hausnummer trennen
(zu alt für eine Antwort)
Matthias Hanft
2007-11-08 07:46:50 UTC
Permalink
Hallo,

nicht unbedingt ein originäres Delphi-Problem, aber ich muß es
in Delphi programmieren :-)

Gegeben sei ein String ähnlich "Bahnhofstraße 27". Da hätte ich
nun gern zwei Strings draus, nämlich einen mit "Bahnhofstraße"
und einen mit "27".

Einfach, nicht? Pos(' ', S) und fertig.

Aaaber: So einfach ist das nicht. Für jede Lösung, die ich mir
ausdenke, fallen mir dann schon wieder Ausgangsstrings ein, bei
denen das nicht funktioniert wie z.B. "Am grünen Bahnhof 27".

Klar, Zwischenräume von hinten suchen. Das scheitert dann aller-
dings an "Bahnhofstraße 27 a".

Nächster Versuch: Von hinten her bis zur ersten Ziffer suchen
und bei Treffer bis zur ersten Nicht-Ziffer weitersuchen (das
wäre dann das letzte Zeichen der Straße, von Spaces mal abge-
sehen). Denkste: "Bahnhofstraße 25-27" (ich glaub', Hausnummern
à la "27 1/2" gibts auch noch).

Also "Ziffer" im obigen Algorithmus = [' ','0'..'9','-','/']?
("." dagegen nicht, wegen "Bahnhofstr.".)

Könnte möglicherweise gehen. Nur nicht in Mannheim, wo die
Straßen z.B. "H1" heißen (mit Hausnummer dann z.B. "H1 5").

Argh!

Jemand eine geniale Idee?

Danke & Gruß Matthias.
Alfred Gemsa
2007-11-08 08:18:23 UTC
Permalink
Post by Matthias Hanft
Nächster Versuch: Von hinten her bis zur ersten Ziffer suchen
und bei Treffer bis zur ersten Nicht-Ziffer weitersuchen (das
wäre dann das letzte Zeichen der Straße, von Spaces mal abge-
sehen). Denkste: "Bahnhofstraße 25-27" (ich glaub', Hausnummern
à la "27 1/2" gibts auch noch).
Also "Ziffer" im obigen Algorithmus = [' ','0'..'9','-','/']?
("." dagegen nicht, wegen "Bahnhofstr.".)
Könnte möglicherweise gehen. Nur nicht in Mannheim, wo die
Straßen z.B. "H1" heißen (mit Hausnummer dann z.B. "H1 5").
Hm, schwierig.

Ich würde den String parsen in eine Stringliste mit Delimiter ' '.

Dann den ersten Item suchen, der eine Ziffer enthält: Damit bekommst du
die Startposition der Hausnummer, davor steht die Straße, eventuell in
mehreren Items ("Im grünen Tal"). Dahinter steht die Hausnummer,
eventuell in mehreren Items ("28 A", "1 - 7").

Spezialfall Mannheim: Ziffer in erstem Item: --> Straßenname, der Rest
ist dann die Hausnummer.

Ob das aber in Deutschland durchgängig funktioniert, weiß ich nicht.

Gruß, Alfred
Robert Wachtel
2007-11-08 08:30:30 UTC
Permalink
Moin!
[Gute Idee um Straße und Hausnummer zu trennen]
Spezialfall Mannheim: Ziffer in erstem Item: --> Straßenname, der Rest
ist dann die Hausnummer.
Vielleicht nimmt man einfach an, dass das erste Item grundsätzlich zum Straßennamen zuzuordnen ist, damit wäre doch auch der Spezialfall Manheim erschlagen, oder?

Problematisch sind aber bestimmt auch Adresszusätze, die oft den Hausnummern angehängt werden:

H1 25a/b Gebäude 9-12 EG R. 7
Mannheim

Da bekommt man vielleicht den Straßennamen extrahiert, aber daraus nochmal nur die Hausnummer zu ermitteln stelle ich mir schwierig vor.

;)

Robert
--
http://blog.robertsoft.de
Joachim Pimiskern
2007-11-08 09:38:07 UTC
Permalink
Hallo,
Post by Robert Wachtel
Problematisch sind aber bestimmt auch Adresszusätze, die oft den
H1 25a/b Gebäude 9-12 EG R. 7
Mannheim
es gibt auch Straßen mit Datum drinnen,
z.B. bei Revolutionen.

Allee des 8. November 12b

Oder
Floor 191, 3 rd Avenue

Grüße,
Joachim
Holger Lembke
2007-11-08 12:23:43 UTC
Permalink
Post by Joachim Pimiskern
es gibt auch Straßen mit Datum drinnen,
z.B. bei Revolutionen.
Allee des 8. November 12b
Straße des 17. Juni 135
--
mit freundlichen Grüßen! Password Must Be at Least 18770 Characters
Holgi, +49-531-3497854 ! Can't Repeat Any of Your Previous 30689 Passwords
Michael Landenberger
2007-11-08 08:37:06 UTC
Permalink
Post by Alfred Gemsa
Ich würde den String parsen in eine Stringliste mit Delimiter ' '.
Klappt z. B. hier in Berlin nicht. Hier gibt es Straßen, die keinen Namen,
sondern eine Nummer haben, beispielsweise "Straße 543 Nr. 6a". Das "543"
gehört hier zum Straßennamen, nicht zur Hausnummer.

Gruß

Michael
Robert Wachtel
2007-11-08 08:47:07 UTC
Permalink
Moin!
Post by Michael Landenberger
Klappt z. B. hier in Berlin nicht. Hier gibt es Straßen, die keinen Namen,
sondern eine Nummer haben, beispielsweise "Straße 543 Nr. 6a". Das "543"
gehört hier zum Straßennamen, nicht zur Hausnummer.
Oha - interessantes Thema.

Dann muss man u.U. noch mit einem erweiterten Regelwerk arbeiten:

Wenn Item[0] 'Straße' oder 'Strasse' oder 'Str' oder 'Str.', dann Item[1] = zu Straßenname gehörig.
usw. usf.

Robert
--
http://blog.robertsoft.de
Matthias Hanft
2007-11-08 09:47:14 UTC
Permalink
Post by Robert Wachtel
Wenn Item[0] 'Straße' oder 'Strasse' oder 'Str' oder 'Str.', dann Item[1] = zu Straßenname gehörig.
usw. usf.
Hi, erstmal danke (auch an die anderen Poster). Obiges geht nicht
bei "Kleingartenkolonie 501" als Straßenname (dahinter dann noch
die Gartennr. als Hausnr., alles schon gehabt, wenn auch selten),
bzw. bei allen Straßen, die eben nicht "...straße" heißen (sondern
"...weg" o.ä.); allerdings habe ich numerierte Straßen (außer in
Manhattan :-) ) wirklich noch nirgendwo anders als in Berlin ge-
sehen, und dort heißen sie wohl auch alle ordnungsgemäß "Straße"
(und nicht "Weg" oder so).

Wie Heinz auch schon schrub, gibts auch "Straße des 17. Juni",
das ist eh eine Herausforderung. Wobei solche "Datumsstraßen"
(übrigens auch in Frankreich sehr beliebt :-) ) dann aber i.d.R.
einen Punkt hinter der Tagesangabe haben, was eine Erkennung
als Hausnummer ausschließen würde (oder gibt es irgendwo Haus-
nummern mit Punkten davor/dahinter/zwischendrin?).

Wobei ich als Zusatzinfo geben kann, daß die Daten im konkreten
Fall schon elektronisch vorliegen, daß es sich (fast) nur um
deutsche Adressen handelt und daß sie formatmäßig leidlich
korrekt sind (d.h. sowas wie "im Hof" oder "3. Obergeschoß"
oder "Rückgebäude" kommt i.d.R. nicht vor).

Es geht also wirklich "nur" um die Zerlegung von "Straße Haus-
nummer", wobei man eben Straßen mit Bindestrichen, Zwischen-
räumen und gar Ziffern berücksichtigen muß und andererseits
Hausnummern mit Buchstaben, Binde- und Schrägstrichen.

Der Ansatz mit StringList und Trenner=' ' und dann mal gucken,
was in den einzelnen Teilen (Text oder numerisch) steht, gefällt
mir übrigens schon ganz gut, vielleicht fange ich mal so an...

Gruß Matthias.
Jörg Hoyer
2007-11-08 14:10:36 UTC
Permalink
Post by Matthias Hanft
"...weg" o.ä.); allerdings habe ich numerierte Straßen (außer in
Manhattan :-) ) wirklich noch nirgendwo anders als in Berlin ge-
sehen, und dort heißen sie wohl auch alle ordnungsgemäß "Straße"
(und nicht "Weg" oder so).
Doch, bei uns im Dorf gibt es ein Viertel mit Strasse Nr. 1 usw.
(Friedersdorf bei Königs Wusterhausen (natürlich in der Nähe von Berlin
:-) )

Erst einmal kann man davon ausgehen, dass alle reinen Textbestandteile
mit mehr als einem Buchstaben zum Strassen-Namen gehören, dann würde man
davon ausgehen können, dass am Anfang immer die Strasse steht (Beispiel
Mannheim). Kommt hinter einer Zahl noch ein Textbestandteil mit Länge
mind. 2 und keine weiteren Zahl, gehört die erste Zahl mit zum
Strassennamen und der anschliessende Textbestandteil sowieso (Strasse
des 17.Juni) Steht hinter der ersten Zahl keine weitere Zahl, so gehört
der Textbestandteil zur Hausnummer (Am Wald 17 a-f).
Findet sich nach einer Zahl ein Textbestandteil und danach eine weitere
Zahl und dahinter ein weiterer Textbestandteil, dann gehört der letzte
Textbestandteil und die davor stehende Zahl zur Hausnummer (Strasse des
17.Juni 154 a-f) Hausnummern der Art 17 1/2 habe ich in Deutschland
bisher nicht gesehen, gibt es so etwas wirklich? Ansonsten könnte man
die Regel aufstellen aller Text (Länge >= 2) hinter der letzten Zahlen
gehört mit der letzten Zahl zur Hausnummer und alles davor zur Strasse.

Texte von Länge 1 zwischen Zahlen werden als zur Zahl gehörig gezählt.
(Mühlenweg 2-3)

HTH
Jörg
Matthias Hanft
2007-11-08 15:48:37 UTC
Permalink
Post by Jörg Hoyer
Doch, bei uns im Dorf gibt es ein Viertel mit Strasse Nr. 1 usw.
(Friedersdorf bei Königs Wusterhausen (natürlich in der Nähe von Berlin
:-) )
"Straße" wäre nach dem bisher besprochenen Algorithmus ja auch OK
(insbesondere wenn das nächste Token dann "Nr." heißt). Es dürfte
nur nirgendwo einen "Weg Nr. 1" geben oder so.
Post by Jörg Hoyer
Erst einmal kann man davon ausgehen, ... [längeren Algorithmus gesnippt]
Danke, das versuche ich mal mit Martins Vorschlag bestmöglich zu
verknüpfen. (Es muß auch nicht 100%ig funktionieren - es muß nur
für unsere eigene Kundenadreßdatei funktionieren :-) )

Gruß Matthias.
Hans-Peter Diettrich
2007-11-09 01:49:06 UTC
Permalink
Post by Matthias Hanft
Es geht also wirklich "nur" um die Zerlegung von "Straße Haus-
nummer", wobei man eben Straßen mit Bindestrichen, Zwischen-
räumen und gar Ziffern berücksichtigen muß und andererseits
Hausnummern mit Buchstaben, Binde- und Schrägstrichen.
Dann frage doch denjenigen, der diese offensichtlich unsinnige Forderung
aufgestellt hat. Soll der doch sagen, wie die von ihm verlangte Trennung
funktionieren soll, und ob Zusatzangaben dem Straßennamen oder der
Hausnummer zugeordnet werden sollen. Möglichst noch verbunden mit der
Frage, wie diese getrennten Angaben später ggf. wieder zusammengefügt
werden sollen, wenn z.B. die Adresse auf einen Brief gedruckt werden soll.

Ich tippe darauf, daß sich dann die Vorgabe ziemlich schnell in Luft
auflöst. Andernfalls würde ich einen Nag-Screen einbauen, der bei allen
Angaben, die nicht genau 1 Leerzeichen enthalten, den Benutzer zu einer
manuellen Trennung auffordert - Anforderung erfüllt! :-)

Jede Entscheidung, die *Du* triffst, wird *Dir* später zur Last gelegt,
und das sollte jeder Entwickler tunlichst vermeiden.

DoDi
Matthias Hanft
2007-11-09 07:45:10 UTC
Permalink
Post by Hans-Peter Diettrich
Dann frage doch denjenigen, der diese offensichtlich unsinnige Forderung
aufgestellt hat. Soll der doch sagen, wie die von ihm verlangte Trennung
funktionieren soll, und ob Zusatzangaben dem Straßennamen oder der
Hausnummer zugeordnet werden sollen. Möglichst noch verbunden mit der
Frage, wie diese getrennten Angaben später ggf. wieder zusammengefügt
werden sollen, wenn z.B. die Adresse auf einen Brief gedruckt werden soll.
Ups, da muß ich mich dann selber fragen... :-)
Post by Hans-Peter Diettrich
Ich tippe darauf, daß sich dann die Vorgabe ziemlich schnell in Luft
auflöst. Andernfalls würde ich einen Nag-Screen einbauen, der bei allen
Angaben, die nicht genau 1 Leerzeichen enthalten, den Benutzer zu einer
manuellen Trennung auffordert - Anforderung erfüllt! :-)
Auf die Eingabe habe ich leider keinen Einfluß. Hintergrund: Ich kriege
hier Kundendatensätze angeliefert (die bei verschiedenen Firmen von ver-
schiedenen Leuten mit verschiedener Software in verschiedene Datenbanken
eingegeben wurden) und muß an diese Leute Post (Rechnungen, Mahnungen)
schicken. Als Service prüfe ich vor dem Versand, ob PLZ/Straße/Hausnr.
zusammenpassen und gültig sind (anhand der "amtlichen" Postdaten). Und
weil vor zehn Jahren niemand an eine Trennung Straße/Hausnummer gedacht
hat, kriege ich die nun eben in einem einzigen Feld geliefert. Und eine
Änderung des Datenbankdesigns bei N Firmen mit N verschiedenen Daten-
banken/Abfragen/Bildschirmmasken etc. durchzusetzen, grenzt an eine
politische Unmöglichkeit (abgesehen davon würde das dann ja auch nur
für Neueingaben greifen - über die bestehenden Datensätze müßte dann
ja trotzdem der hier gesuchte Algorithmus drüberlaufen).

Daher versuche ich das hier einfach bei der Verarbeitung "on the fly"
mit ein bißchen String-Akrobatik auseinanderzudröseln. Erste Versuche,
bei denen ich den String in StringList.DelimitedText mit Delimiter=' '
reinschaufle, schauen schon mal ganz gut aus. Für Sonderfälle, wo das
nachher nicht so gut klappt, muß man sich dann halt Sonderlösungen
überlegen...

Gruß Matthias.
Martin Hentrich
2007-11-09 09:13:03 UTC
Permalink
Post by Matthias Hanft
Erste Versuche,
bei denen ich den String in StringList.DelimitedText mit Delimiter=' '
reinschaufle, schauen schon mal ganz gut aus. Für Sonderfälle, wo das
nachher nicht so gut klappt, muß man sich dann halt Sonderlösungen
überlegen...
<hüstel>
Lieber Matthias, es wäre doch eine prima Idee, wenn du das fertige
Stückchen Code, oder ein klitzekleines Prog der Allgemeinheit zur
Verfügung stellen könntest. Wenn ich es mir so recht überlege, dann
habe ich auch eine Datenbank mit fünfstelliger Datensatz- also auch
Straßen-Zahl, die es aufzudröseln gilt.
</hüstel>

OT: Welchen Vorteil hat diese Trennung, die mir in Eingabemasken jetzt
häufiger begegnet, eigentlich?

Martin
--
Eure Rede aber sei: Ja, ja; nein, nein.
Was darüber ist, das ist vom Übel.
[Mt. 5, 37]
Matthias Hanft
2007-11-09 15:43:08 UTC
Permalink
Post by Martin Hentrich
<hüstel>
Lieber Matthias, es wäre doch eine prima Idee, wenn du das fertige
Stückchen Code, oder ein klitzekleines Prog der Allgemeinheit zur
Verfügung stellen könntest. Wenn ich es mir so recht überlege, dann
habe ich auch eine Datenbank mit fünfstelliger Datensatz- also auch
Straßen-Zahl, die es aufzudröseln gilt.
</hüstel>
Hallo Martin, klar, kein Problem - wird aber noch ein paar Tage dauern
(komme zur Zeit einfach zu nix).
Post by Martin Hentrich
OT: Welchen Vorteil hat diese Trennung, die mir in Eingabemasken jetzt
häufiger begegnet, eigentlich?
Naja, den beschriebenen halt: Wenn man Adreßdaten gegen eine Postleit-
datendatei vergleichen will, tut man sich halt leichter, wenn Straßen
und Hausnummern von vornherein getrennt sind, weils auch in der offi-
ziellen Straßendatei der Post getrennte Felder sind. In der steht halt
sowas wie

NUERNBERG BUCHER STR. 1 79 U 90419
NUERNBERG BUCHER STR. 2 80 G 90408
NUERNBERG BUCHER STR. 81 999 N 90425

was bedeutet, daß in der Bucher Str. in Nürnberg die ungeraden Haus-
nummern von 1 bis 79 die PLZ 90419 haben, die geraden von 2 bis 80
dagegen 90408 und dann alle (gerade und ungerade) ab 81 die PLZ 90425
(nicht 100%-korrektes, aber realitätsnahes Beispiel).

Damit kann man dann eine vorliegende Adreßdatei prima checken (und
bei falscher PLZ oft sogar noch die richtige herausfinden).

Gruß Matthias.
Hubert Seidel
2007-11-09 17:33:10 UTC
Permalink
Hi Matthias,
Post by Matthias Hanft
Post by Martin Hentrich
<hüstel>
Lieber Matthias, es wäre doch eine prima Idee, wenn du das fertige
Stückchen Code, oder ein klitzekleines Prog der Allgemeinheit zur
Verfügung stellen könntest. Wenn ich es mir so recht überlege, dann
habe ich auch eine Datenbank mit fünfstelliger Datensatz- also auch
Straßen-Zahl, die es aufzudröseln gilt.
</hüstel>
Hallo Martin, klar, kein Problem - wird aber noch ein paar Tage dauern
(komme zur Zeit einfach zu nix).
Ich glaube es gibt eine Stadt (ich komm gerade nicht drauf) die
Straßennamen wie S5 oder so haben. In den neuen Bundesländern
dürfte es häufig Hauptstrasse Nr. 1 oder so geben.

mfg.
Herby

--
http://www.hubert-seidel.de
Matthias Hanft
2007-11-09 17:51:21 UTC
Permalink
Post by Hubert Seidel
Ich glaube es gibt eine Stadt (ich komm gerade nicht drauf) die
Straßennamen wie S5 oder so haben.
Steht weiter oben schon: Mannheim.
Post by Hubert Seidel
In den neuen Bundesländern
dürfte es häufig Hauptstrasse Nr. 1 oder so geben.
Da braucht man ja bloß das "Nr." rausfiltern.

Alles nicht sooo schlimm (solange Hausnummern immer mit Ziffern
anfangen :-) ).

Gruß Matthias.
Martin Hentrich
2007-11-09 19:43:54 UTC
Permalink
On Fri, 9 Nov 2007 18:33:10 +0100, "Hubert Seidel"
Post by Hubert Seidel
Hauptstrasse Nr. 1 oder so geben.
Solange es sich nicht um *die* Trasse handelt, sondern um eine
einfache Straße ist das OK... SCNR

Martin
Hans-Peter Diettrich
2007-11-09 09:19:01 UTC
Permalink
Post by Matthias Hanft
Post by Hans-Peter Diettrich
Dann frage doch denjenigen, der diese offensichtlich unsinnige Forderung
aufgestellt hat. Soll der doch sagen, wie die von ihm verlangte Trennung
funktionieren soll, und ob Zusatzangaben dem Straßennamen oder der
Hausnummer zugeordnet werden sollen. Möglichst noch verbunden mit der
Frage, wie diese getrennten Angaben später ggf. wieder zusammengefügt
werden sollen, wenn z.B. die Adresse auf einen Brief gedruckt werden soll.
Ups, da muß ich mich dann selber fragen... :-)
Du Glücklicher ;-]
Post by Matthias Hanft
schicken. Als Service prüfe ich vor dem Versand, ob PLZ/Straße/Hausnr.
zusammenpassen und gültig sind (anhand der "amtlichen" Postdaten). Und
weil vor zehn Jahren niemand an eine Trennung Straße/Hausnummer gedacht
hat, kriege ich die nun eben in einem einzigen Feld geliefert.
Du willst also einen ganz neuen Service hinzufügen? Muß das sein?

Ansonsten würde ich bei den "amtlichen" Postdaten anfangen, was die
überhaupt (formatmäßig) hergeben. Was für Felder gibt es - mehr als nur
Straße und Hausnummer? Hausnummer in welchem Format (Zahl/Text)?

Dann suchst Du z.B. nach einer passenden Straße, ab dem 1. Zeichen bis
zum ersten, zweiten ... Leerzeichen. Mit SQL wird das natürlich etwas
aufwendiger, ist aber durchaus machbar. Danach müßte die Hausnummer
kommen, falls Du die auch noch prüfen willst. Usw...

Wäre es nicht vielleicht einfacher, erst mal nach Namen, PLZ etc. in den
amtlichen Daten zu suchen, und dann die zugehörige Straße/Hausnummer mit
den angelieferten Daten zu vergleichen?
Post by Matthias Hanft
Daher versuche ich das hier einfach bei der Verarbeitung "on the fly"
mit ein bißchen String-Akrobatik auseinanderzudröseln. Erste Versuche,
bei denen ich den String in StringList.DelimitedText mit Delimiter=' '
reinschaufle, schauen schon mal ganz gut aus. Für Sonderfälle, wo das
nachher nicht so gut klappt, muß man sich dann halt Sonderlösungen
überlegen...
Wobei eine mögliche Lösung wäre: nicht weiter prüfen. Hoffentlich kommen
dann nicht nur "Sonderfälle" heraus - im schlimmsten Fall müßtest Du ja
alles, was in der automatisierten Form keine Lösung gibt, von Hand
nachprüfen, d.h. auch alle tatsächlich ungültigen Adressen.

Deine Kunden könnten jedenfalls mächtig sauer werden, wenn Briefe wegen
eines Fehlers bei der Überprüfung der Adresse garnicht abgeschickt
werden. Hast Du schon mal an die möglichen Schadenersatz-Forderungen
gedacht???

DoDi
Matthias Hanft
2007-11-09 16:15:08 UTC
Permalink
Post by Hans-Peter Diettrich
Ansonsten würde ich bei den "amtlichen" Postdaten anfangen, was die
überhaupt (formatmäßig) hergeben. Was für Felder gibt es - mehr als nur
Straße und Hausnummer? Hausnummer in welchem Format (Zahl/Text)?
Hausnummer als Zahl, Hausnummer-Zusatz (z.B. "a") als Text.
Post by Hans-Peter Diettrich
Wäre es nicht vielleicht einfacher, erst mal nach Namen, PLZ etc. in den
amtlichen Daten zu suchen, und dann die zugehörige Straße/Hausnummer mit
den angelieferten Daten zu vergleichen?
Ja, das wäre dann der _völlig_ andere Ansatz. Man nehme den zu prüfenden
Straßenanfang und sage dann z.B. sowas wie
SELECT ORT, STRASSE FROM STR_DA WHERE STRASSE STARTS WITH :STRANFANG;
und dann sieht man ja, was es da so alles gibt. Erscheint mir aber kompli-
zierter (und laufzeitintensiver) als einfach lokal einen String best-
möglich aufzudröseln.
Post by Hans-Peter Diettrich
Wobei eine mögliche Lösung wäre: nicht weiter prüfen. Hoffentlich kommen
dann nicht nur "Sonderfälle" heraus - im schlimmsten Fall müßtest Du ja
alles, was in der automatisierten Form keine Lösung gibt, von Hand
nachprüfen, d.h. auch alle tatsächlich ungültigen Adressen.
Nee, so schlimm ist das nicht. Hab schon mal kurz quergecheckt - also
meine eigenen Eingaben sind eh sehr sauber, und was von anderen rein-
kommt, ist bei ca. 1.200 Datensätzen höchstens einmal ein "Rückgebäude"
oder "Gebäude C" hinter der Hausnummer oder so. Also alles nicht so wild...
Post by Hans-Peter Diettrich
Deine Kunden könnten jedenfalls mächtig sauer werden, wenn Briefe wegen
eines Fehlers bei der Überprüfung der Adresse garnicht abgeschickt
werden. Hast Du schon mal an die möglichen Schadenersatz-Forderungen
gedacht???
Ich schick' ja alle weg (mach' ich jetzt - nur mit PLZ- und Ort-, aber
ohne Straßenprüfung - ja auch schon). Aber mein Kunde kriegt dann eben
eine Liste mit allen falschen Datensätzen zur Korrektur, damit das
nächste Mal alles viiiel richtiger ist :-)

Gruß Matthias.
Hans-Peter Diettrich
2007-11-09 22:14:09 UTC
Permalink
Post by Matthias Hanft
Post by Hans-Peter Diettrich
Wäre es nicht vielleicht einfacher, erst mal nach Namen, PLZ etc. in den
amtlichen Daten zu suchen, und dann die zugehörige Straße/Hausnummer mit
den angelieferten Daten zu vergleichen?
Ja, das wäre dann der _völlig_ andere Ansatz. Man nehme den zu prüfenden
Straßenanfang und sage dann z.B. sowas wie
SELECT ORT, STRASSE FROM STR_DA WHERE STRASSE STARTS WITH :STRANFANG;
und dann sieht man ja, was es da so alles gibt. Erscheint mir aber kompli-
zierter (und laufzeitintensiver) als einfach lokal einen String best-
möglich aufzudröseln.
Deshalb meinte ich ja, daß der Name und die PLZ etc. schon zur Auswahl
benutzt wird - soweit die Datenbank das ermöglicht. Vielleicht eine
Hilfstabelle, in der die Straßennamen z.B. nur mit max. 10 Stellen
drinstehen, und in der man dann auch mit LIKE suchen könnte?

Und was wieviel komplizierter ist, müßte sich erst noch herausstellen.
Computer sind zwar saudumm, dafür aber meist sauschnell, und brauchen
auch keinen Schlaf. Einem Chef müßte es eigentlich schlaflose Nächte
bereiten, wenn er weiß, daß seine Mitarbeiter die meiste Zeit nur
Däumchen drehen ;-)

DoDi
Heinz Zastrau
2007-11-08 08:47:56 UTC
Permalink
Hallo Matthias,

beim verarbeiten von nicht verifizierte Adressdaten, gibt es keine
"genialen" Lösungen. Du kannst lediglich deine Erfolgsquote erhöhen und
wirst immer mit falschen analysierten Daten leben müssen.

Deine Lösung muss die Qualität der Daten berücksichtigen (eine echte
Herausforderung ist z.B. "Strasse des 17. Juni 128(im Hof)")und aus
welchen Ländern sie stammen (Amerikaner schreiben die Hausnummer gerne
zuerst). Bei "schönen" Daten (z.B. aus einem bereits existierenden
EDV-System, aber da habe ich auch schon viel Mist gesehen) nimmst du
einen anderen Algorithmus als bei einer handgepflegten Excel-Tabelle (da
liebe ich die Pedanten).

Hilfreich empfinden die Kunden (nach dem Sie wiederwillig akzeptiert
haben, dass das Problem nicht automatisiert zu lösen ist), wenn die
Daten bei denen der Algorithmus Probleme hat, markiert werden, so das
der Kunden sie später leicht selbst unter die Lupe nehmen kann.

Ciao Heinz Z.
Martin Hentrich
2007-11-08 09:33:50 UTC
Permalink
Post by Matthias Hanft
Jemand eine geniale Idee?
Ich fürchte eine absolut immer funktionierende Lösung kann es nicht
geben. Aber hier ist schon einmal etwas, mit dem alle deine Beispiele
erschlagen werden:

Du teilst den String in einzelne Segmente gemäß den Leerzeichen.

Du suchst nach Segmenten, die mit einer Ziffer beginnen.

Der Straßenname besteht nun zunächst aus allen Segmenten vor diesem
Segment mit der ersten Ziffer. Der Rest wäre Hausnummer.

Du prüfst nun die Segmente ab dem Segment vor dem ersten mit einer
Ziffer.

Tauchen die Zeichen "Nr" auf, dann beginnt die Hausnummer erst mit
diesem Segment (Kann erweitert werden z.B. durch "Nummer")

Damit werden abgefangen:
Bahnhofstr. 23
Bahnhofstr. 23-25
Bahnhofstr. 23 - 56
Breiter Weg 26
Breiter Weg 24d
Breiter Weg 34 A
H1 Nr. 23
H1 5
Feldweg 345 Nr. 45
Fritz-Erler-Allee 14 / VII

Nicht übersetzt wird z.B. "Feldweg 345 67" oder auch eine Schreibweise
ohne Leerzeichen "Karlstraße3".

Sollten auch Postfachadressen eingestruet sein, dann muß du diese ggf.
anders behandeln

Martin
--
So auch ihr: wenn ihr in Zungen redet und nicht mit deutlichen Worten, wie kann
man wissen, was gemeint ist? Ihr werdet in den Wind reden. ...Wenn ich nun die
Bedeutung der Sprache nicht kenne, werde ich den nicht verstehen, der redet,
und der redet, wird mich nicht verstehen. [1. Kor 14, 9 - 11]
Martin Hentrich
2007-11-08 09:43:46 UTC
Permalink
Post by Matthias Hanft
Jemand eine geniale Idee?
Ich fürchte eine absolut immer funktionierende Lösung kann es nicht
geben. Aber hier ist schon einmal etwas, mit dem viele Beispiele
erschlagen werden:

Du teilst den String in einzelne Segmente gemäß den Leerzeichen.

Du suchst nach Segmenten, die mit einer Ziffer beginnen.

Der Straßenname besteht nun zunächst aus allen Segmenten vor diesem
Segment mit der ersten Ziffer. Der Rest wäre Hausnummer.

Du prüfst nun die Segmente ab dem Segment vor dem ersten mit einer
Ziffer.

Tauchen die Zeichen "Nr" auf, dann beginnt die Hausnummer erst mit
diesem Segment (Kann erweitert werden z.B. durch "Nummer").

Besteht das Segment nach dem ersten Segment, das mit einer Ziffer
beginnt, aus mehr als 2 Buchstaben, dann beginnt die Hausnummer erst
mit dem zweiten Segment, das mit einer Ziffer beginnt, es sei denn
diese Buchstaben sind "bis".

Damit werden abgefangen:
Bahnhofstr. 23
Bahnhofstr. 23-25
Bahnhofstr. 23 - 56
Breiter Weg 26
Breiter Weg 24d
Breiter Weg 34 A
H1 Nr. 23
H1 5
Feldweg 345 Nr. 45
Fritz-Erler-Allee 14 / VII
Straße des 17. Juni Nr. 25
Straße des 17. Juni 25
Straße des 3. Mai 45
Badstraße 32 bis 36

Nicht übersetzt wird z.B. "Feldweg 345 67" oder auch eine Schreibweise
ohne Leerzeichen "Karlstraße3".

Sollten auch Postfachadressen eingestreut sein, dann muß du diese ggf.
anders behandeln

Martin
--
"Allen ist das Denken erlaubt, doch vielen bleibt es erspart."
- Curt Goetz -
Matthias Hanft
2007-11-08 10:47:31 UTC
Permalink
Post by Martin Hentrich
Ich fürchte eine absolut immer funktionierende Lösung kann es nicht
geben. Aber hier ist schon einmal etwas, mit dem viele Beispiele
erschlagen werden: [...]
Hmmm... das hört sich genial an :-) Werde ich gleich mal probieren.
Post by Martin Hentrich
Nicht übersetzt wird z.B. "Feldweg 345 67" oder auch eine Schreibweise
ohne Leerzeichen "Karlstraße3".
Letzteres kommt in unseren (doch relativ "sauberen") Daten AFAIK
nicht vor. Es könnte höchstens das "Berliner Problem" (mit "Straße 345")
geben, aber ebenso AFAIK haben wir da keinen Kunden :-)

Ansonsten halt "Abwurf" zur manuellen Behandlung...
Post by Martin Hentrich
Sollten auch Postfachadressen eingestreut sein, dann muß du diese ggf.
anders behandeln
Naja, wenn die Straße "Postfach" (oder "Packstation") heißt, findet man
das ja relativ leicht raus - das sollte man hinkriegen.

Vielen Dank jedenfalls erst einmal, ich mache mich gleich an die
Arbeit... :-)

Gruß Matthias.
maqqusz
2007-11-08 11:28:30 UTC
Permalink
Post by Matthias Hanft
Jemand eine geniale Idee?
Im Zweifelsfall (Mehr als ein Ziffernblock) kannst du maps.g..gle.de
dazu benutzen und solange alle Kombinationen des Strassennamens
durchprobieren, bis der Strassenname korrekt getroffen wurde und
G..gle kein Ergebnis mit Hausnummer zurückliefert. In geringem Umfang
fände ich eine solche Lösung noch okay. G..gle hat eh einen Filter der
übermäßigen gebrauch in solchen Fällen zuverlässig unterbindet.
Matthias Hanft
2007-11-08 11:33:50 UTC
Permalink
Post by maqqusz
Im Zweifelsfall (Mehr als ein Ziffernblock) kannst du maps.g..gle.de
dazu benutzen und solange alle Kombinationen des Strassennamens
durchprobieren, bis der Strassenname korrekt getroffen wurde und
G..gle kein Ergebnis mit Hausnummer zurückliefert. In geringem Umfang
fände ich eine solche Lösung noch okay. G..gle hat eh einen Filter der
übermäßigen gebrauch in solchen Fällen zuverlässig unterbindet.
Argh, ich glaube, Internet-Zugriffe wären von der Zugriffszeit her
inakzeptabel :-) Außerdem: Ne Straßendatei hab ich selber, wäre viel-
leicht gar keine so schlechte Idee, da nach Übereinstimmung zu
suchen - alles, was dahinter kommt, muß dann Hausnummer sein :-)

Gruß Matthias.
maqqusz
2007-11-08 11:48:45 UTC
Permalink
Post by Matthias Hanft
Post by maqqusz
Im Zweifelsfall (Mehr als ein Ziffernblock) kannst du maps.g..gle.de
dazu benutzen und solange alle Kombinationen des Strassennamens
durchprobieren, bis der Strassenname korrekt getroffen wurde und
G..gle kein Ergebnis mit Hausnummer zurückliefert. In geringem Umfang
fände ich eine solche Lösung noch okay. G..gle hat eh einen Filter der
übermäßigen gebrauch in solchen Fällen zuverlässig unterbindet.
Argh, ich glaube, Internet-Zugriffe wären von der Zugriffszeit her
inakzeptabel :-)
Naja... Mit Multithreaded geht sowas schon recht fix ;)
Post by Matthias Hanft
Außerdem: Ne Straßendatei hab ich selber, wäre viel-
leicht gar keine so schlechte Idee, da nach Übereinstimmung zu
suchen - alles, was dahinter kommt, muß dann Hausnummer sein :-)
An sowas hatte ich auch schon gedacht. Dass man vll eine Klicktel-CD
oder das normale Telefonbuch Parsen könnte, aber dann ist die Frage ob
da wirklich Hausnummern getrennt vorhanden sind. Und dann ist da
wiederum die rechtliche Frage, da das bei dir nach mehr als nur
Hobbybedarf klingt.
Norbert Stellberg
2007-11-08 12:07:26 UTC
Permalink
Hallo,
Post by Matthias Hanft
Argh, ich glaube, Internet-Zugriffe wären von der Zugriffszeit her
inakzeptabel :-) Außerdem: Ne Straßendatei hab ich selber, wäre viel-
leicht gar keine so schlechte Idee, da nach Übereinstimmung zu
suchen - alles, was dahinter kommt, muß dann Hausnummer sein :-)
In meinem Adressverwaltungsprogramm (für Adressmakler) habe ich
die Postdatenbank benutzt.
Das Strassenverzeichnis wird des öfteren aktualisiert.
Ich habe in dieser Datei die Strasse z.B. Am langen Bahnhof 51 b - 53 c
nach Übereinstimmungen durchsucht.
Es bleibt dann Am langen Bahnhof übrig. Der Rest ist die Hausnummer.
Es gibt da z.B. in Bayern kuriose Strassennamen, die man auf die
herkömmlich Art nicht trennen kann. Die Postdatenbank schafft das.

mit freundlichen Grüßen
Norbert
Hans-Peter Diettrich
2007-11-09 01:52:26 UTC
Permalink
Post by Norbert Stellberg
In meinem Adressverwaltungsprogramm (für Adressmakler) habe ich
die Postdatenbank benutzt.
Basierend auf welcher Lizenz? Wer ist der Rechtsinhaber dieser Datenbank?

DoDi
Norbert Stellberg
2007-11-09 07:14:13 UTC
Permalink
Hallo,
Post by Norbert Stellberg
In meinem Adressverwaltungsprogramm (für Adressmakler) habe ich
die Postdatenbank benutzt.
Basierend auf welcher Lizenz? Wer ist der Rechtsinhaber dieser Datenbank?
Man kann bei der Post ein Abbo kaufen. Alle PLZ, Strassennamen und
Orte werden regelmässig upgedatet. Ist aber auch nicht ganz billig.
Deshalb muss sich wohl auch die Frage stellen, ob die Quantität den Aufwand
lohnt.
Bei meinem Programm für Adressmakler ging es immerhin um mehrere Millionen
Adressen, die a) abgeglichen wurden und b) auf richtige Schreibweise
überprüft
wurden.

Rechteinhaber der PLZ/Strassennamen Daten ist die gelbe Post.

Die Daten sind sehr sauber und zuverlässig. Ich würde mich nicht auf
andere Daten (z.B. Klicktel) verlassen. Der Datensatz bei der Post steht
fest
und ist sehr gut dokumentiert. Die Strassennamen sind ja nur das kleinere
Übel. Am schlimmsten ist die PLZ Verifizierung. Was es da in Deutschen
Landen
für Kuriositäten gibt, ist schon recht merkwürdig.
So kommt es vor, dass in Bayern 8 verschiedene Orte die gleiche PLZ haben.
Also in etwa so: 8xxxx XXXXXX 8xxxxx YYYYYY usw.
und die Frankfurter Strasse in Köln 6 verschiedene PLZ
beinhaltet..............


Mit freundlichen Grüßen
Norbert
Matthias Hanft
2007-11-09 07:49:25 UTC
Permalink
Post by Norbert Stellberg
So kommt es vor, dass in Bayern 8 verschiedene Orte die gleiche PLZ haben.
Also in etwa so: 8xxxx XXXXXX 8xxxxx YYYYYY usw.
und die Frankfurter Strasse in Köln 6 verschiedene PLZ
beinhaltet..............
Das ist ja noch "fast normal". Aber z.B. in Berlin gibt es den gleichen
Straßennamen für mehrere (voneinander völlig unabhängige) Straßen (in
verschiedenen Bezirken). Da genügt es gar nicht, dem Taxifahrer zu
sagen "fahren Sie mich zur XXXstraße", da muß man auch noch angeben,
_welche_ der sechs XXXstraßen gemeint ist...

BTW, hast Du etwa die "Datafactory Streetcode"? Ich habe nur die
"Postalcode", weil sie den Preis für die "Streetcode" auf ihren
Internetseiten hartnäckig verschweigen. Hast Du einen Ahnung, was
die "Streetcode" so kostet? Mir sind da schon Gerüchte zwischen
200 und 20.000 EUR zu Ohren gekommen...

Gruß Matthias.
Norbert Stellberg
2007-11-10 07:20:03 UTC
Permalink
Hallo,
Post by Matthias Hanft
BTW, hast Du etwa die "Datafactory Streetcode"? Ich habe nur die
"Postalcode", weil sie den Preis für die "Streetcode" auf ihren
Internetseiten hartnäckig verschweigen. Hast Du einen Ahnung, was
die "Streetcode" so kostet? Mir sind da schon Gerüchte zwischen
200 und 20.000 EUR zu Ohren gekommen...
Ich musste das zum Glück nicht bezahlen. Das hat mein Kunde getan.
Ich meine aber, dass er so um die 4000 Euro bezahlt hätte.
Ich kann aber am Montag gerne nochmal nachfragen.

mit freundlichen Grüßen
Norbert
Matthias Hanft
2007-11-10 07:45:27 UTC
Permalink
Norbert Stellberg schrieb:
["Datafactory Streetcode"-CDROM]
Post by Norbert Stellberg
Ich musste das zum Glück nicht bezahlen. Das hat mein Kunde getan.
Ich meine aber, dass er so um die 4000 Euro bezahlt hätte.
Ich kann aber am Montag gerne nochmal nachfragen.
Ja, das wäre nett. Und auch, ob die 4000 Euro pro CD (gibts ja
vierteljährlich) oder pro Jahr (oder pro sonstwas) sind. Danke!

Gruß Matthias.
Norbert Stellberg
2007-11-12 20:42:48 UTC
Permalink
Hallo,
Post by Matthias Hanft
Ja, das wäre nett. Und auch, ob die 4000 Euro pro CD (gibts ja
vierteljährlich) oder pro Jahr (oder pro sonstwas) sind. Danke!
Also die Antwort lautete: ca. 4000.00 Euro pro Jahr
Das ist ein Abbo.

mit freundlichen Grüßen
Norbert
Matthias Hanft
2007-11-12 20:55:30 UTC
Permalink
Post by Norbert Stellberg
Also die Antwort lautete: ca. 4000.00 Euro pro Jahr
Das ist ein Abbo.
Danke! Damit wäre auch das letzte Rätsel der Menschheit gelöst :-)

Gruß Matthias.
Robert Wachtel
2007-11-12 22:45:35 UTC
Permalink
Moin!
Post by Matthias Hanft
Danke! Damit wäre auch das letzte Rätsel der Menschheit gelöst :-)
Fast - es bliebe noch die Frage nach dem kreativen Lösungsweg von Nicole...

;) SCNR

Robert
--
http://blog.robertsoft.de
Nicole Wagner
2007-11-12 14:23:11 UTC
Permalink
Post by Matthias Hanft
Hallo,
nicht unbedingt ein originäres Delphi-Problem, aber ich muß es
in Delphi programmieren :-)
Warum verwendest Du nicht einfach den Typen THashStringList?
Der kann das schon von Haus aus.


Nicole,
http://TigerTradingClub.com
Robert Wachtel
2007-11-12 16:07:49 UTC
Permalink
Moin!
[Straßen von Hausnummern trennen]
Warum verwendest Du nicht einfach den Typen THashStringList?
Der kann das schon von Haus aus.
Könntest Du das mal näher erläutern, bitte?

Robert
--
http://blog.robertsoft.de
Matthias Hanft
2007-11-12 16:37:04 UTC
Permalink
Post by Nicole Wagner
Warum verwendest Du nicht einfach den Typen THashStringList?
Der kann das schon von Haus aus.
Gibts bei mir (D7prof) nicht, und Seiten wie
http://hpcgi1.nifty.com/MADIA/DelphiBBS/wwwlng.cgi?print+200604/06040042.txt
sind auch nicht wirklich hilfreich :-)

Was ist das, und wo gibts das?

Moment, stop - ahhh, es heißt "THashedStringList"!

Aber was hilft mir die? Laut Hilfe ist das "wie TStringList, nur schneller"?!

Gruß Matthias.
Nicole Wagner
2007-11-13 10:01:21 UTC
Permalink
Post by Matthias Hanft
Post by Nicole Wagner
Warum verwendest Du nicht einfach den Typen THashStringList?
Der kann das schon von Haus aus.
Gibts bei mir (D7prof) nicht, und Seiten wie
http://hpcgi1.nifty.com/MADIA/DelphiBBS/wwwlng.cgi?print+200604/06040042.txt
sind auch nicht wirklich hilfreich :-)
Was ist das, und wo gibts das?
Moment, stop - ahhh, es heißt "THashedStringList"!
Aber was hilft mir die? Laut Hilfe ist das "wie TStringList, nur schneller"?!
nein, nein, nicht "nur schneller"
Grundsaetzlich bedeutet Hash "Paar", eine ""THashedStringList" ist
daher eine Paarliste.

Also im ersten Teil steht die Strasse, im zweiten Teil des Paares die
Hausnummer.

Da Du das anscheinend noch nie gehoert hast, wird die Zuweise-Syntax
fuer Dich eine langwierige Entdeckungsreise sein. Um Dir die
abzukuerzen, stelle ich Dir ein paar Codeschnipsel zur Verfuegung und
kopiere sie Dir unters Posting.

Da dieser hochinteressante Typ derart schlecht kommentiert ist, hast
Du das Glueck, dass mein Code ganz viele Funktionshinweise enthaelt,
smile.

Was der Code tut:
Ich speichere darin nicht Strassennamen und deren Nummer, sondern
Boolean-Ausdrucknamen und deren Werte im ini-File.

(ich habe Gruende, das ausgerechet so zu loesen, die hier zu weit
fuehren wuerden)

Viel Glueck!


Nicole,
http://TigerTradingClub.com



procedure Hash_ergaenzen(Var Hash:THashedStringList;s:string);

Var i:integer;
s_name, s_wert: string;
begin
try
i:=Pos('=',s);
if i = -1 then begin // falls im einzutragenden Wert der
Wertparameter fehlt
ShowMessage(s + ' ist kein gültiger Hashwert');
exit;
end;
If copy(s,i,Length(s))='' then begin // falls der Wertparameter
leer wäre
ShowMessage(s + ' als Hash fehlt der Werteintrag nach dem =');
exit;
end;

s_name:=copy(s,0,i-1); // String wird in Name und Wert
gesplittet
s_wert:=copy(s,i+1,Length(s)-i+1);

i:=Hash.IndexOfName(s_name); // String-Begriff wird im Hash gesucht

if i=-1 then begin // nicht vorhandene Strings werden eingetragen
hash.Add(s);
//ShowMessage('Habe '+ s +' neu in die HashListe geschrieben');
ungünstig, weil temp.Sicherung alle neu
end
else hash[i]:=s; // eigentliche Funktion der Prozedur

except
ShowMessage('Fehler im Ergänzen des THashedStringList '+hash.Text+'
durch '+s);
end;
end;
Matthias Hanft
2007-11-13 10:45:23 UTC
Permalink
Post by Nicole Wagner
Da Du das anscheinend noch nie gehoert hast, wird die Zuweise-Syntax
fuer Dich eine langwierige Entdeckungsreise sein. Um Dir die
abzukuerzen, stelle ich Dir ein paar Codeschnipsel zur Verfuegung und
kopiere sie Dir unters Posting.
Danke. Aber a) würde Dein Codeschnipsel statt mit einer THashedStringList
ganz genauso gut mit einer TStringList funktionieren (und hat deswegen
mit einem "Hash" gar nichts zu tun, siehe http://de.wikipedia.org/wiki/Hash ),
und b) geht Deine Zerlegung des Eingabestrings bereits von einem Format
"Dings=Bums" aus (d.h. es gibt eine "Sollbruchstelle", nämlich das
Gleichheitszeichen), was ich ja bei einem Straßennamen-/Hausnummernpaar
nicht a priori vorliegen habe (sondern ein wildes Gemisch aus Textteilen,
Ziffern, Punkten und Bindestrichen, und dazwischen hie und da mal ein
Leerraum).

Hätte ich _nur_ Datensätze à la "Bahnhofstraße=27", wären in einer
T(Hashed-oder-auch-nicht)StringList in der Tat einige interessante
Funktionen enthalten, aber momentan sehe ich da keine sinnvolle
Nutzung...

Gruß Matthias.
Nicole Wagner
2007-11-13 12:44:01 UTC
Permalink
Post by Matthias Hanft
Hätte ich _nur_ Datensätze à la "Bahnhofstraße=27", wären in einer
T(Hashed-oder-auch-nicht)StringList in der Tat einige interessante
Funktionen enthalten, aber momentan sehe ich da keine sinnvolle
Nutzung...
Wenn die Daten nicht in der von Dir erwarteten Reihenfolge dortstehen,
dann ist Deine Auftgabe EDV-technisch unloesbar. Sieh' dieser
traurigen Wahrheit bitte ins Gesicht

Ein Freund von mir wohnt z.B. Untertrautendorferamt 1399.
(konkrete Adresse erfunden)

Ist "Untertrautendorferamt" jetzt eine Strasse, ein Gebauede, ein
Bezirk oder ein Ort?
Ist "1399" eine Postleitzaehl, eine Hausnummer oder eine Zimmernummer?

Du weisst es nur, wenn ich es Dir sage:
Untertrautendorferamt ist ein Dorf in Niederoesterreich, Waldviertel
und mein Freund wohnt dort im 1399. Haus(!).
Strassennamen haben die dort nicht.

Damit sind oft Menschen ueberfordert, das richtig zuzuordnen. Der
Postbote erzaehlt Dir Romane darueber.

Daraus folgt? - Es gibt keine abstrakte Regel dafuer.
Ergo ist es nicht programmierbar.


Leider gibt es immer wieder Programmierer, die es tortzdem versuchen
und z.B., die Postleitzahl dazu bringen, dem Benutzer den Ort
dazuzuschreiben.

Man dankt herzlich. Da z.B. meine Postleitzahl zum ZUSTELLBEZIRK
gehoert, mein WOHORT aber ein anderer ist, liegt die Post immer wieder
mal in der aehnlich lautenden Adresse des Zustellbezirksortes, statt
an meinem Wohnort. Und der Fall ist haeufig.
Denn fast jeder der zahlreichen Doerfer des Zustellbezirkes hat z.B.
eine "Wienerstrasse" oder eine "Kirchengasse", "Friedhofsweg",
"Schulgasse", etc. Der Kernort, nach dem die Zustellbezirke benannt
sind, regelmaessig auch. Also brauche ich nicht den Kernzort, zu dem
das Postamt gehoert, sondern das Dorf, in dem der Betreffende wohnt.
Das hat aber der Programmierer leider automatisch ersetzt, weil er nur
in Feldern dachte. ;-(


der langen Rede kurzer Sinn:
Brich die Zeilen um, so es irgend geht und suche nicht nach deren
Sinn.



Nicole,
http://TigerTradingClub.com
Martin Hentrich
2007-11-13 12:57:19 UTC
Permalink
On Tue, 13 Nov 2007 13:44:01 +0100, Nicole Wagner
Post by Nicole Wagner
Das hat aber der Programmierer leider automatisch ersetzt, weil er nur
in Feldern dachte. ;-(
Das ist eben der Unterschied zwischen einem "Programmierer" und einem
Anwendungsentwickler. Der "Programmierer" kann zwar programmieren,
weiß aber nichts von dem tatsächlichen Sinn der Anwendung. Der
Anwendungsentwickler weiß, wieviel "Neunen" genau die Anwendung für
wen funktionieren soll - und fragt dann ggf. nach Algorithmen.

Matthias ist bestimmt ein Anwendungsentwickler.

SCNR

Martin
--
So auch ihr: wenn ihr in Zungen redet und nicht mit deutlichen Worten, wie kann
man wissen, was gemeint ist? Ihr werdet in den Wind reden. ...Wenn ich nun die
Bedeutung der Sprache nicht kenne, werde ich den nicht verstehen, der redet,
und der redet, wird mich nicht verstehen. [1. Kor 14, 9 - 11]
Matthias Hanft
2007-11-13 14:14:47 UTC
Permalink
Post by Martin Hentrich
Das ist eben der Unterschied zwischen einem "Programmierer" und einem
Anwendungsentwickler. Der "Programmierer" kann zwar programmieren,
weiß aber nichts von dem tatsächlichen Sinn der Anwendung. Der
Anwendungsentwickler weiß, wieviel "Neunen" genau die Anwendung für
wen funktionieren soll - und fragt dann ggf. nach Algorithmen.
Eben. Und es genügt mir auch, wenn es "möglichst gut" (für meine
Zwecke) funktioniert - ich muß das (gottseidank) nicht verkaufen.

Und bei "12345 Hinterkleinklitzesdorf" ohne Straßen heißt die
Straße/Hausnr. dann eben auch mal "Haus Nr. 25" oder so.

Nicoles Posting hört sich ja ziemlich "österreichisch" an - hier
in Deutschland ist es aber schon so, daß zu einer bestimmten Post-
leitzahl genau 0 bis N wohldefinierte Ortsnamen zulässig sind
(die man auch der offiziellen Postleitdatendatei entnehmen kann).

Ortsteile kann man, wenn man unbedingt will, über die Straße
schreiben; sie sind zur Zustellung aber nicht nötig.

Reales Beispiel: Hinter der Postleitzahl 91126 _kann_ nur
Schwabach, Rednitzhembach oder Kammerstein stehen. Wer in
Penzendorf wohnt, hat Pech gehabt, der wird dann bestenfalls
so adressiert:

Micky Maus
Penzendorf <<<---wahlfrei, Angabe nicht nötig
Dingsbumsstraße 29
91126 Schwabach

Mit meiner Software kann ich einen Datensatz, in dem fälsch-
licherweise "91126 Penzendorf" angegeben ist, daher automatisch
im obigen Sinne berichtigen.

Und das will ich (einigermaßen) eben auch mit den Straßen
und Hausnummern hinkriegen - Bucher Straße 78 in Nürnberg
ist z.B. PLZ 90408, Bucher Straße 101 dagegen PLZ 90419.
Und um das gegen die PLZ-Datei prüfen zu können, brauche
ich Straße und Hausnummer eben getrennt...
Post by Martin Hentrich
Matthias ist bestimmt ein Anwendungsentwickler.
Das sowieso :-)

Gruß Matthias.

Lesen Sie weiter auf narkive:
Loading...