![]() |
Re: Strassenname, Hausnummer und Zusatz trennen!?
Hallo,
hier ist noch ein Thread der sich mit dem gleichen Thema beschäftigt hat. ![]() Grüße Klaus |
Re: Strassenname, Hausnummer und Zusatz trennen!?
Oha ja, da beneide ich dich nicht. Ich habe zum Glück nur 2600 zu konvertieren das kann ich zur Not noch mal mit dem Auge überfliegen. Aber das mit den verschiedenen Schreibweisen hab ich auch schon beobachtet, aber wäre ja langweillig wenn alle User gleich wären. :stupid:
|
Re: Strassenname, Hausnummer und Zusatz trennen!?
Hi nochmals,
falls es um Adressen geht, wo Ware hin versendet werden soll, gibt es noch einige Dinge mehr zu beachten: * Lieferadresse kann von Postadresse (da, wohin die Rechnung gesendet wird) unterschiedlich sein * Lieferadresse darf nie ein Postfach sein * Es gibt auch Kostenstellenbelieferungen - dann muß die Kostenstelle (oder mehrere) mit der Lieferadresse verknüpft werden * Es gibt auch Arbeitsplatzbelieferung ("Delivery at Work") - dann muß noch zusätzlich z.B. Firma Mustermann Herr Mustermann Werksgelände 3 Haus 18 5. Stock Zimmer 1 Musterstraße 1 12345 Musterstadt mit eingeplant werden (also Haus, Werk, Zimmer etc.). * In seltenen Fällen gibt es sogar mehrere, unterschiedliche Lieferadressen Wenn Du wirklich professionelle Hilfe brauchst: ![]() Und zum suchen empfehle ich ![]() |
Re: Strassenname, Hausnummer und Zusatz trennen!?
Es ging doch nur darum einen String richtig zu teilen, oder? :gruebel:
Könntest du vielleicht mal 3-4 Datensätze (Straße, Hausnummer, Zusatz) hier posten, also mit veränderten Daten natürlich. Vielleicht steht da ja ein Komma oder sowas. Ansonsten artet das hier in Spekulatius aus. :zwinker: MfG freak |
Re: Strassenname, Hausnummer und Zusatz trennen!?
Feld:Strasse
Mühlfeldweg 4 Am Bach 16a Brunnwiese 18 b Wasserburgr Str. 14 Chiemseestr. 23 Th.-Körner-Str3 Kirchenstr.17 Angererstr. 20 Lebenau6 Pestalozzistr. 2 Wolfsberg 44 Hauptstr. 26 |
Re: Strassenname, Hausnummer und Zusatz trennen!?
Zitat:
"Normale" Postadressen sind was anderes wie Lieferadressen... |
Re: Strassenname, Hausnummer und Zusatz trennen!?
Zitat:
Bis dann. |
Re: Strassenname, Hausnummer und Zusatz trennen!?
Zitat:
Aber ich glaube wir werden langsam OT :mrgreen: |
Re: Strassenname, Hausnummer und Zusatz trennen!?
Zitat:
Zitat:
|
Re: Strassenname, Hausnummer und Zusatz trennen!?
Liste der Anhänge anzeigen (Anzahl: 1)
Hallo Jürgen Thomas,
Danke für deine Prozedure. Ich habe diese für mein Programm in eine Funktion gepackt und mit einen Rückgabetypen TAdresse = record versehen. LG Dirk
Delphi-Quellcode:
{
Diese Unit lehnt sich an den Beitrag von Jürgen Thomas an. Ich habe diese Funktion eigentlich nur um einen eigenen Rückgabetypen TAdresse erweitert und in eine eigene Unit gepackt. Daher Danke an Jürgen Thomas. Quelle : [url]http://www.delphipraxis.net/topic88990,0,asc,0.html[/url] Dirk Piethan 03.06.2009 } unit minitools; interface uses SysUtils; type TAdresse = record STRASSE : STRING; HAUSNUMMER : INTEGER; ZUSATZ : STRING; POSTFACH : STRING; end; function Strasse_to_Details( sQuelle: string): TAdresse; implementation function Strasse_to_Details( sQuelle: string): TAdresse; var c0: char; s0, s1, s2: string; i0, iNrLaenge: integer; bNummer: boolean; sStrasse: string; iNr: integer; sZusatz: string; sPostfach: string; begin sStrasse := ''; sZusatz := ''; sPostfach := ''; iNr := 0; // um unterschiedliche Schreibweisen abzufangen s0 := AnsiLowerCase(sQuelle); // Postfach herausholen s1 := Copy( s0, 1, 8); s2 := Copy( s0, 1, 2); if ( (s1 = 'postfach') or (s2 = 'pf') ) then begin // Startposition der Nummer suchen i0 := 0; repeat Inc(i0); until s0[i0] in ['0'..'9']; // beim nächsten Befehl mache ich es mir einfach: max. 6 Ziffern + 2 Leerzeichen sPostfach := Copy(s0, i0, 8); end else begin // jetzt fehlt die Prüfung, ob überhaupt eine Hausnummer enthalten ist // oder in den o.g. Fällen 3 und 5 fehlt // endet die Quelle mit einer Ziffer? i0 := Length(s0); bNummer := s0[i0] in ['0'..'9']; // nein: Zusatz herausholen if (not bNummer) then begin repeat Dec(i0); until s0[i0] in ['0'..'9']; // bei der Länge des Zusatzes mache ich es mir einfach; aber es könnte auch // Situationen geben wie " a Wohnung 03-44", aber das hängt auch davon ab, // was die Ziel-Datenbank vorsieht // [/edit]muss vom Original genommen werden sZusatz := Copy(sQuelle, i0+1, 15); end; // jetzt steht i0 auf der letzten Ziffer der Hausnummer iNrLaenge := 0; repeat Dec(i0); Inc(iNrLaenge); until not (s0[i0] in ['0'..'9']); // StrToInt führt z.B. bei leerem String zu Exception try iNr := StrToInt( Copy(s0, i0+1, iNrLaenge)); except iNr := 0; end; // Rest ist Straße // [/edit]muss vom Original genommen werden sStrasse := Copy(sQuelle,1,i0); Result.STRASSE:=sStrasse; Result.HAUSNUMMER:=iNr; Result.ZUSATZ:=sZusatz; Result.POSTFACH:=sPostfach; end; end; end. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 15:58 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz