Delphi-PRAXiS
Seite 1 von 3  1 23      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   wie Adresse auseinandernehmen (https://www.delphipraxis.net/170207-wie-adresse-auseinandernehmen.html)

khh 5. Sep 2012 12:24

Datenbank: Firebird • Version: 2.1 • Zugriff über: zeos

wie Adresse auseinandernehmen
 
hallo zusammen
ich habe in einem Feld Adressdaten wie folgt:

Auf dem Eifelturm 1
Schlossberg 12
Hauptstr. 62-64

ich möchte die Hausnummern separat speichern.

Jemand ne Idee, wie ich das hinbekomme?
Mein Ansatz wäre per stringreplace ein sonderzeichen einzufügen und dann dort zu trennen.
Aber weiter stehe ich grad auf dem Schlauch :-(

Ich danke euch
khh

mkinzler 5. Sep 2012 12:25

AW: wie Adresse auseinandernehmen
 
Oder den letzten Block abtrennen

khh 5. Sep 2012 12:26

AW: wie Adresse auseinandernehmen
 
Zitat:

Zitat von mkinzler (Beitrag 1181652)
Oder den letzten Block abtrennen

ja, aber wie ?

Grolle 5. Sep 2012 12:30

AW: wie Adresse auseinandernehmen
 
Mit Hier im Forum suchenpos und Hier im Forum suchencopy?

Bummi 5. Sep 2012 12:35

AW: wie Adresse auseinandernehmen
 
Per Delphi?

Durchlaufen bis zum ersten ['0'..'9'] , ab da als Hausnummer behandeln ?

Nersgatt 5. Sep 2012 12:37

AW: wie Adresse auseinandernehmen
 
Zitat:

Zitat von Bummi (Beitrag 1181660)
Durchlaufen bis zum ersten ['0'..'9'] , ab da als Hausnummer behandeln ?

Und hoffen, dass niemand an der "Straße des 17. Juni" wohnt.... :stupid:

mkinzler 5. Sep 2012 12:37

AW: wie Adresse auseinandernehmen
 
Oder per TStringList.

Delphi-Quellcode:
var
  sl: TStrings;
  ...
  sl := TStringList.Create;
  sl.Delimiter := ' ';
  sl.DelimitedText := <Str mit Hausnummer>;
  <hausnummer> := sl[sl.Count-1];
  sl.Delete( sl.Count-1);
  <str> := sl.Text;
  ..
  sl.Free;

khh 5. Sep 2012 12:37

AW: wie Adresse auseinandernehmen
 
Zitat:

Zitat von Bummi (Beitrag 1181660)
Per Delphi?

Durchlaufen bis zum ersten ['0'..'9'] , ab da als Hausnummer behandeln ?


warum kommt man auf die einfachsten Dinge nicht selbst ;-)
EDIT : mh die Straße des 17. Juni sollte manuell zu finden sein :-)

ich danke dir / euch

uligerhardt 5. Sep 2012 12:39

AW: wie Adresse auseinandernehmen
 
Grobe Idee:
  1. Den String rückwärts nach dem ersten Whitespace (Leerzeichen, Tab etc.) durchsuchen.
  2. Alles dahinter (also 1, 12 bzw. 62-64 in deinen Beispielen) in eine StringList mit Delimiter '-' stecken.
  3. Bei allen Elementen der StringList prüfen, ob sie eine Hausnummer sind, also z.B. nur aus Ziffern und evtl. hintendran einem Buchstaben ("Schlossberg 12a") bestehen.
  4. Falls ja, den Kandidaten aus Schritt 1 akzeptieren.
False positives und negatives wirst du nicht vermeiden können. Und ob du jetzt "Schlossberg 12 1/2" behandeln willst oder "Schlossberg 12, 3. Stock"...

khh 5. Sep 2012 12:39

AW: wie Adresse auseinandernehmen
 
Zitat:

Zitat von mkinzler (Beitrag 1181663)
Oder per TStringList.

Delphi-Quellcode:
var
  sl: TStrings;
  ...
  sl := TStringList.Create;
  sl.Delimiter := ' ';
  sl.DelimitedText := <Str mit Hausnummer>;
  <hausnummer> := sl[sl.Count-1];
  sl.Delete( sl.Count-1);
  <str> := sl.Text;
  ..
  sl.Free;

ich probiers erst mal so
EDIT: funktioniert (fast)einwandfrei.
die Leerzeichen zwischen den Strassennahmen die aus mehreren Wörtern bestehen werden eliminiert :-(
ich danke euch


Alle Zeitangaben in WEZ +1. Es ist jetzt 04:19 Uhr.
Seite 1 von 3  1 23      

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