Delphi-PRAXiS
Seite 2 von 3     12 3      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Strassenname, Hausnummer und Zusatz trennen!? (https://www.delphipraxis.net/74299-strassenname-hausnummer-und-zusatz-trennen.html)

Klaus01 1. Aug 2006 09:58

Re: Strassenname, Hausnummer und Zusatz trennen!?
 
Hallo,

hier ist noch ein Thread der sich mit dem gleichen Thema beschäftigt hat.
http://www.delphipraxis.net/internal...=strassen+haus

Grüße
Klaus

pumpe 1. Aug 2006 10:00

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:

Catbytes 1. Aug 2006 10:07

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:
Omikron AdressCenter

Und zum suchen empfehle ich FactFinder von der gleichen Firma.

freak4fun 1. Aug 2006 10:12

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

pumpe 1. Aug 2006 10:19

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

Catbytes 1. Aug 2006 10:20

Re: Strassenname, Hausnummer und Zusatz trennen!?
 
Zitat:

Zitat von freak4fun
Es ging doch nur darum einen String richtig zu teilen, oder? :gruebel:

Korrekt - um ihn aber richtig zu teilen, muß man auch wissen, wie geteilt wird (nicht nur technisch, sondern auch syntaktisch).

"Normale" Postadressen sind was anderes wie Lieferadressen...

moonwhaler 1. Aug 2006 10:51

Re: Strassenname, Hausnummer und Zusatz trennen!?
 
Zitat:

Zitat von Catbytes
Hi nochmals,
* Lieferadresse darf nie ein Postfach sein

Das kann ich so nicht nachvollziehen, da wir täglich sehr viel an Postfächer respektive Packstation verschicken, wenn es sich um Pakete handelt - Voraussetzung ist eine vorab Zahlung (Kreditkarte / Vorkasse / etc.). Einzige Einschränkung wäre, dass ein solcher Versand nur mit der Deutschen Post (DHL, was im Grunde das gleiche ist) möglich ist, da GLS / UPS / TNT / etc. diese nicht an solche ausliefern können, weil es sich um ein "Feature" der DP / DHL handelt.

Bis dann.

Catbytes 1. Aug 2006 10:57

Re: Strassenname, Hausnummer und Zusatz trennen!?
 
Zitat:

Zitat von moonwhaler
Zitat:

Zitat von Catbytes
Hi nochmals,
* Lieferadresse darf nie ein Postfach sein

Das kann ich so nicht nachvollziehen

OK - wir liefern per GLS aus. Wie es mit anderen Versendern ist, weiß ich nicht. Es ist aber ungewöhnlich, z.B. ein 3x3 Meter Paket an ein Postfach zu senden ;)

Aber ich glaube wir werden langsam OT :mrgreen:

moonwhaler 1. Aug 2006 11:23

Re: Strassenname, Hausnummer und Zusatz trennen!?
 
Zitat:

Zitat von Catbytes
Zitat:

Zitat von moonwhaler
Zitat:

Zitat von Catbytes
Hi nochmals,
* Lieferadresse darf nie ein Postfach sein

Das kann ich so nicht nachvollziehen

Es ist aber ungewöhnlich, z.B. ein 3x3 Meter Paket an ein Postfach zu senden ;)

Nein, diese werden dann per DHL an Packstation verschickt - wobei 3x3 Meter im Grunde fast schon Speditionskandidaten sind. :)

Zitat:

Zitat von Catbytes
Aber ich glaube wir werden langsam OT :mrgreen:

Ja, fürchte ich auch. :lol:

Piethan 3. Jun 2009 15:45

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 00:02 Uhr.
Seite 2 von 3     12 3      

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