AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Telefonnummern trennen in Vorwahl-Rufnummer mit TSQL
Thema durchsuchen
Ansicht
Themen-Optionen

Telefonnummern trennen in Vorwahl-Rufnummer mit TSQL

Ein Thema von jensw_2000 · begonnen am 22. Okt 2005 · letzter Beitrag vom 21. Nov 2005
Antwort Antwort
Seite 1 von 3  1 23      
jensw_2000
(Gast)

n/a Beiträge
 
#1

Telefonnummern trennen in Vorwahl-Rufnummer mit TSQL

  Alt 22. Okt 2005, 17:07
Datenbank: MSSQL • Version: 2000 SP3 • Zugriff über: TSQL
Hallo Leute,

ich brauche mal einen kleinen Denkanstoß.

Beim Import von Kundendaten in meine Callcenter Software muss die Telefonnummer in folgendem Format vorliegen, damit sie für einige Programmfunktionen bzw den späteren Export sauber getrennt werden kann:
Code:
Ortsnetzkennzahl-Rufnummer
Es kommt immer wieder vor, das eine Importdatei kein Trennzeichen (Leerzeichen, Bindestrich o.Ä.) zwichnen der Vorwahl und der Telefonnummer hat.
Meine Kunden sind dann so kreativ, das sie die Importdatei mit Excel bearbeiten und bei den Telefonnummern einfach pauschal nach der 4. Ziffer ein "-" einfügen.

Bisher war das kein Problem.
Jetzt bin ich dabei ein Plugin zum Verkauf von "?-"DSL zu entwicken. (Besser gesagt, Montag ist Abgabetermin ... )
Für den Verfügbarkeitscheck werden Vorwahl und Telefonnummer als Eingabeparameter erwartet.

Damit der Kunde keine Möglichkeit mehr hat, die Telefonnummern nach Phantasie zu trennen möchte ich eine UDF basteln, die alle Sonder und Leerzeichen aus der Telefonnummer entfernt.
Dann soll die Rufnummer mit einer bestehenden Vorwahlenliste abgeglichen werden.
Die Funktion soll die fertig formattierte Rufnummer ("Vorwahl-Rufnummer") aus Ausgabeparameter zurückliefern.


Sicher könnte man die Telefonnummer nach und nach am Ende abschneiden und dann dann prüfen ob sie in der Vorwahlentabelle existiert. Das ist aber deutlich zu langsam.

Derzeit finde ich aber keinen Ansatz für eine bessere und schnelle Lösung ...

Habt ihr dazu eine gute Idee ?




Schöne Grüße,
Jens
  Mit Zitat antworten Zitat
Benutzerbild von sakura
sakura

Registriert seit: 10. Jun 2002
Ort: Unterhaching
11.412 Beiträge
 
Delphi 12 Athens
 
#2

Re: Schöne Grüße, Jens

  Alt 22. Okt 2005, 17:10
Gib dem Thread bitte einen vernünftigen Titel

Danke,
......
Daniel Lizbeth
Ich bin nicht zurück, ich tue nur so
  Mit Zitat antworten Zitat
jensw_2000
(Gast)

n/a Beiträge
 
#3

Re: Schöne Grüße, Jens

  Alt 22. Okt 2005, 17:13
Zitat von sakura:
Gib dem Thread bitte einen vernünftigen Titel

Danke,
......
Fürchterlich, das beim einfügen eines Entwurfs immer der Titel überschrieben wird...
  Mit Zitat antworten Zitat
Benutzerbild von Duffy
Duffy

Registriert seit: 19. Mär 2003
Ort: Wuppertal
835 Beiträge
 
Delphi 3 Standard
 
#4

Re: Schöne Grüße, Jens

  Alt 22. Okt 2005, 17:13
Hallo Jens,
warum trennst Du nicht schon bei der Eingabe? Klassisch gesehen zwei Eingabefelder für Vorwahl und Telefonnummer.

By
Claus
Künftige Generationen wollen ihre Fehler selber machen.
Jedes Programm wird nie das können, was Du wirklich brauchst.
Das Gegenteil von gut ist gut gemeint
-----
  Mit Zitat antworten Zitat
Benutzerbild von SirThornberry
SirThornberry
(Moderator)

Registriert seit: 23. Sep 2003
Ort: Bockwen
12.235 Beiträge
 
Delphi 2006 Professional
 
#5

Re: Schöne Grüße, Jens

  Alt 22. Okt 2005, 17:13
warum willst du irgendwas abschneiden? du hast doch alle vorwahlen jetzt sicher in einer Liste. Frag also einfach ab welche Telefonnummer (vorwahl + Telnummer) mit TestVorwahl anfängt und bei den gefunden musst du ja dann einfach von vorwhl + Telnummer am anfang die Länge von TestVorwahl abschneiden um die eigentliche Telefonnummer zu bekommen. Sollte auch nicht all zu lange dauern.

Ändere bitte auch den Betreff, der entspricht nicht den Regeln der DP.

Durch lesen der anderen Beiträge kam jetzt eine Frage bei mir auf. Sind derzeit in der DP Vorwahl und eigentliche Tel-Nummer in der DB nicht getrennt? Wenn dem so ist, hast du vor das weiter so zu belassen?
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat
jensw_2000
(Gast)

n/a Beiträge
 
#6

Re: Schöne Grüße, Jens

  Alt 22. Okt 2005, 17:17
Zitat von Duffy:
Hallo Jens,
warum trennst Du nicht schon bei der Eingabe? Klassisch gesehen zwei Eingabefelder für Vorwahl und Telefonnummer.

By
Claus
Das wäre der Optimalfall.

Leider unpraktikabel, weil die Callcenter ihre Kundendaten idR von großen Adresslieferanten kaufen oder weil sie die Daten von einem Auftraggeber vorsetzt bekommen.

Das Format der Rohdaten ist dabei sehr individuell.
Meist ist keine Trennung von Vorwahl und Rufnummer vorhanden.
  Mit Zitat antworten Zitat
Benutzerbild von SirThornberry
SirThornberry
(Moderator)

Registriert seit: 23. Sep 2003
Ort: Bockwen
12.235 Beiträge
 
Delphi 2006 Professional
 
#7

Re: Telefonnummern Trennen in Vorwahl-Rufnummer mit TSQL

  Alt 22. Okt 2005, 17:25
wäre es nicht das effektivste wenn du jetzt so eine vorwahlliste hast das du beim importieren der Telefonnummern dort schon die Vorwahl ermittelst und dann die daten in 2 Felder der Datenbank einträgst?
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat
Benutzerbild von Duffy
Duffy

Registriert seit: 19. Mär 2003
Ort: Wuppertal
835 Beiträge
 
Delphi 3 Standard
 
#8

Re: Telefonnummern Trennen in Vorwahl-Rufnummer mit TSQL

  Alt 22. Okt 2005, 17:30
Hallo Jens,

SirThornberry war schneller …

dann musst Du die Telefonnummer normalisieren in dem Du alles was nicht numerisch ist entfernst. Jetzt brauchst Du nur noch einen Check auf die Vorwahlen machen, in dem Du eine Vorwahlenliste (diese ist dann Pflicht) dazu benutzt, um eine Vorwahl zu klassifizieren. Wenn Du einen Treffer hast, ist es klar, der Rest der Telefonnummer ist die eigentliche Nummer.

bye
Claus
Künftige Generationen wollen ihre Fehler selber machen.
Jedes Programm wird nie das können, was Du wirklich brauchst.
Das Gegenteil von gut ist gut gemeint
-----
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#9

Re: Telefonnummern Trennen in Vorwahl-Rufnummer mit TSQL

  Alt 22. Okt 2005, 17:36
Hallo Jens,

bei einem binary search mit der normalisierten Rufnummer in der ONKZ-Tabelle wird (a) nie ein Treffer erfolgen und (b) die passende Vorwahl immer der Eintrag vor der insert position sein.

Grüße vom marabu
  Mit Zitat antworten Zitat
Benutzerbild von SirThornberry
SirThornberry
(Moderator)

Registriert seit: 23. Sep 2003
Ort: Bockwen
12.235 Beiträge
 
Delphi 2006 Professional
 
#10

Re: Telefonnummern Trennen in Vorwahl-Rufnummer mit TSQL

  Alt 22. Okt 2005, 17:38
marabu scheint die gleiche idee gehabt zu haben wie ich, hab nämlich grad mal sowas zum test geschrieben wie man die Vorwahl ermittelt.
Delphi-Quellcode:
var LVorwahlen: TStringList;
    LIndex: Integer;
begin
  LVorwahlen := TStringList.Create;
  LVorwahlen.Sorted := True;
  //LVorwahlen mit Vorwahlen aus DB füllen

  if LVorwahlen.Find(Edit1.Text, LIndex) then
    ShowMessage('es handlet sich um eine Vorwahl.')
  else begin
    if (LIndex > 0) and AnsiStartsText(LVorwahlen.Strings[LIndex-1], Edit1.Text) then
      ShowMessage('Vorwahl ist: ' + LVorwahlen.Strings[LIndex-1])
    else
      ShowMessage('Keine Vorwahl gefunden');
  end;

  LVorwahlen.Free;
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 3  1 23      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 05:39 Uhr.
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