Delphi-PRAXiS
Seite 2 von 3     12 3      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Vor- und Nachnamen splitten (https://www.delphipraxis.net/167947-vor-und-nachnamen-splitten.html)

DeddyH 27. Apr 2012 19:35

AW: Vor- und Nachnamen splitten
 
Etwas in der Art hatte ich mir schon gedacht, mein Einwand sollte kein Vorwurf an Dich sein.

Mackhack 27. Apr 2012 19:38

AW: Vor- und Nachnamen splitten
 
Zitat:

Zitat von DeddyH (Beitrag 1163924)
Etwas in der Art hatte ich mir schon gedacht, mein Einwand sollte kein Vorwurf an Dich sein.

Ok Danke für die Klärung.

himitsu 27. Apr 2012 21:42

AW: Vor- und Nachnamen splitten
 
Wenn du Glück hast, dann stellt das * zufällig die Trennung dar, welche du gern hättest.

Die komplett großgeschriebenen Namen könnte man zwar auch anpassen, also alle Wörter mit großgeschriebenem Anfangsbuchstaben und sonst klein.
Was aber natürlich Probleme gibt, wenn eigentlich Anfangsbuchstaben klein sind und nachfolgende Buchstaben doch groß sein sollten.

Popov 27. Apr 2012 21:47

AW: Vor- und Nachnamen splitten
 
Wenn die Daten so von dem Kunden kamen, stellt sich die Frage was der Vertrag aussagt. Wer ist für solche Aufsplittung zuständig?

Mackhack 27. Apr 2012 21:51

AW: Vor- und Nachnamen splitten
 
Zitat:

Zitat von himitsu (Beitrag 1163936)
Wenn du Glück hast, dann stellt das * zufällig die Trennung dar, welche du gern hättest.

Die komplett großgeschriebenen Namen könnte man zwar auch anpassen, also alle Wörter mit großgeschriebenem Anfangsbuchstaben und sonst klein.
Was aber natürlich Probleme gibt, wenn eigentlich Anfangsbuchstaben klein sind und nachfolgende Buchstaben doch groß sein sollten.

GROSS/Kleinschreibung spielt in diesem Falle keine Rolle. Der * ist leider nicht in jedem Datensatz vorhanden. Nur in manchen. Noch nicht mal der Kunde weiß warum.

Jetzt habe ich aber noch ein Problem: Ein Feld sieht noch so aus "CITY,ST ZIP". Ich habe es geschafft CITY und ZIP zu extrahieren, aber ich scheitere an der ST(ate). Das Pattern sieht so aus:
Code:
LAS VEGAS NV 89103-5041
Zwischen Stadt und Staat sind immer 2 Leerzeichen, nach dem Staate und vor dem Zip immer ein Leerzeichen. Weiß jemand wie man das ggf. mit LTRIM/RTRIM herausbekommt?

Vielen Dank.

Bummi 28. Apr 2012 00:02

AW: Vor- und Nachnamen splitten
 
Code:
Create FUNCTION [dbo].[F_SplitCity](@All Varchar(50))
--201204 by Thomas Wassermann
RETURNS
@tab TABLE
(
City Varchar(50),
State Varchar(50),
ZIP Varchar(50)
)
AS
BEGIN
   Declare @tmp varchar(50)
   Declare @zip varchar(50)
   Declare @State varchar(50)
   
    Set @tmp =RTRIM(LTRIM(REVERSE(@ALL)))
    SET @zip=RTRIM(SUBSTRING(@tmp,1,CharIndex(' ',@tmp)))
    SET @tmp=LTRIM(RTRIM(REPLACE(@tmp,@zip,'')))
    SET @zip=REVERSE(@Zip)
    Set @State=RTRIM(SUBSTRING(@tmp,1,CharIndex(' ',@tmp)))
    SET @tmp=REPLACE(@tmp,@State,'') -- hier gegf. etwas anderes einbauen als Replace
    SET @State=REVERSE(@State)
    Insert into @tab Select Reverse(@tmp),@State,@Zip
   RETURN
END
Verwendung
Code:
Select *
from CST Cross Apply [dbo].[F_SplitCity](CST.[ALL])
bei CST = bestehende Adresstabelle und ALL = das Sumpffeld mit City-State-Zip

Mackhack 28. Apr 2012 00:15

AW: Vor- und Nachnamen splitten
 
Vielen Dank Bummi.

Es wird immer besser. Gleicher Kunde, anderer Standort gibt uns dieses hier:

Code:
WO #,ACCOUNT #,NAME,Phone,ADDRESS 1,ADDRESS 2,ADDRESS 3,SCHEDULE DATE,TIME,Basic,Digital,PREF_PREM,VALUE
12345678,12345678,Max Mueller,7573183267,631 CONNECTICUT AVE,"NORFOLK, VA 23508-2707",,2012/04/27,A1 ALLDAY,1,0,0,0
60818580,11590213,Mueller Jonny,3369068368,APT 204,7712 ENFIELD AVE,"NORFOLK, VA 23505-1950",2012/04/27,K2 8-10C,0,0,0,0
60817325,13009505,Schuster L Ulli,7579655583,804 S CLUB HOUSE RD,"VIRGINIA BEACH, VA 23452-6402",,2012/04/30,J1 1 - 3,1,0,0,0
Alle Zahlen und Namen sind natürlich frei erfunden.

Wie man sehen kann ist im Address1 mal die Straße mit Hausnummer (korrekt), mal die Apartment Unit was wenn eine vorhanden ist in Address2 stehen sollte, wenn nicht sollte da die Stadt stehen, danach Staat und anschließend der Zip Code. Es ist alles durcheinander. Oder City, State und Zip sind wieder in einer Spalte.

Namen hat jetzt auch wie in der anderen Datei Vor- und Nachname nicht getrennt und ab und zu haben die Leute auch einen Mittel-Initial-Buchstaben.

Vertrag ist gut, wer diese Dateien so nicht haben möchte macht mit diesen Firmen gar kein Geschäft. Es interessiert die leider nicht.

Bummi 28. Apr 2012 06:27

AW: Vor- und Nachnamen splitten
 
Tja, klarer Fall von ShiSho, lass vom Kunden definieren wie die Regeln aussehen sollen, mit dem was rauskommt wird er leben, bzw. im Laufe der Zeit manuell korrigieren müssen.

sx2008 28. Apr 2012 07:39

AW: Vor- und Nachnamen splitten
 
Du solltest deinen Kunden darauf hinweisen, dass es jede Menge Firmen gibt, deren Hauptprodukt Software für Adresskorrektur ist.
So eine Software kann ohne Weiteres über 50000 Euro kosten, weil das autom. Korrigieren und Normieren von Adressen so kompliziert sein kann.
Wenn du dich darauf einlässt, die Namen zu splitten, dann musst du damit rechnen immer wieder nachbessern zu müssen.
Mach deinem Kunden irgendwie klar, dass er sich nicht eine Leistung durch die Hintertür erschleichen kann, die bei anderen Firmen tausende Euro kosten. (natürlich nicht das Wort "erschleichen" verwenden)

Furtbichler 28. Apr 2012 08:30

AW: Vor- und Nachnamen splitten
 
Vollkommen richtig. Lasst euch nach Aufwand bezahlen.

Tipp: Straßen-, Städte-, ZIP-Verzeichnise besorgen und einen heuristisch-automatischen Abgleich vornehmen. Ihr versucht also, Straße, ZIP, State, Stadt zu extrahieren, prüft, ob es passt und schmeißt den Müll in eine Korrekturmappe.

Die wird dann manuell korrigiert.

Erkennt man Gemeinsamkeiten im Müll (fehlende Straße in der Straßenliste?), kann man die Heuristik schrittweise verbessern.


Alle Zeitangaben in WEZ +1. Es ist jetzt 02:12 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