Laden...

Deutsche Telefonnummern automatisch Formatieren

Erstellt von daydr3amer vor 11 Jahren Letzter Beitrag vor 11 Jahren 8.733 Views
D
daydr3amer Themenstarter:in
2 Beiträge seit 2012
vor 11 Jahren
Deutsche Telefonnummern automatisch Formatieren

Hey,

folgendes Problem:
Ich habe in einer Access-Datenbank eine lange liste von Telefon- und Faxnummern. Diese sind in den wildesten Formaten gespreichert. Darunter:

+49/xxx/xxxxx
0xxx - xxxx
xxxxxxxxx
+49xxx - xxxxxx
usw.

Ich möchte nun ein kleines Skript oder eine Funktion in meinem Programm, welches mir die Nummern in dieses Format bringt.

+49[Ortsvorwahl] - [Rufnummer]

Hört sich zunächst mal recht simpel an.
Alles mit RegEx von Sonderzeichen befreien, prüfen ob die erste Zahl eine 0 oder 49 ist, ggf ersetzen. An den Anfang ein + einfügen. Und nach der Vorwahl " - " einfügen, richtig?

Pustekuchen 😄
Deutschland hat es nicht für nötig gehalten die Vorwahl immer gleich lang zu halten. Das heißt es gibt vorwahlen mit 3 bis 5 stellen. Die Rufnummer ist ebenfalls immer unterschiedlich lang.
Nach einiger Recherche bin ich zu dem Schluss gekommen, dass es sowas nicht gibt:

030
0301
0302

Es würde Theoretisch so weitergehen:

030
0311
0312
03130

Natürlich lässt sich sowas durch eine IF-Abfrage lösen, allerdings gibt es allein für den Vorwahlenbereich 03 bereits ca 1300 mögliche Vorwahlen. Bevor ich also ca 50.000 Zeilen IF-Abfragen schreibe, möchte ich gerne eine andere Lösung finden 😄

Bitte um schnelle hilfe,
mfg

daydr3amer

6.911 Beiträge seit 2009
vor 11 Jahren

Hallo daydr3amer, willkommen im Forum,

das Problem ist eigentlich nur das Muster "xxxxxxxxx", alle anderen lassen sich mit dem Regex-Ansatz umwandeln. Wenn es also nicht allzuviele Problem-Nummern sind, so würde ich diese dann händisch bearbeiten.

mfG Gü

Stellt fachliche Fragen bitte im Forum, damit von den Antworten alle profitieren. Daher beantworte ich solche Fragen nicht per PM.

"Alle sagten, das geht nicht! Dann kam einer, der wusste das nicht - und hat's gemacht!"

771 Beiträge seit 2009
vor 11 Jahren

N'abend,
zur Unterscheidung der Vorwahlen von der eigentlichen Rufnummer wird dir nichts anderes übrig bleiben, als die Telefonvorwahl Deutschland-Liste durchzugehen und die Ausnahmen (d.h. alle 3 und 4 stelligen) in eine gesonderte Liste eintragen und von deinem Programm aus abzufragen.

Ups, habe gerade gesehen, daß es sogar 6-stellige Vorwahlen in Deutschland gibt, z.B. bei 0332x – Umgebung von Potsdam.
K.A, aber die würde ich erst einmal ignorieren 😁

49.485 Beiträge seit 2005
vor 11 Jahren

Hallo daydr3amer,

Bevor ich also ca 50.000 Zeilen IF-Abfragen schreibe

wie kommst du denn auf den Dreh? Eine IF-Abfrage in einer Schleife über alle gültigen Vorwahlnummern (eingelesen aus einer Datei), reicht doch vollkommen.

herbivore

16.807 Beiträge seit 2008
vor 11 Jahren

Das Thema des zuverlässigen Erkennens von Vorwahlen ist nicht möglich.
Ich les sowas immer wieder im Web-Bereich bzgl. der Autovervollständigung bei Formularen; und der allgemeine Weg ist über die Postleitzahl die Vorwahl zu erkennen.

Das Format selbst ist nicht möglich dieses verlässlich zu erkennen, da es je nach Stadt eigene Regelungen geben kann und die Formate nicht Dauerhaft und nicht Bundesweit geregelt sind.

6.911 Beiträge seit 2009
vor 11 Jahren

Hallo Abt,

so unmöglich würde ich das nicht sehen. Wenn es um internationale Nummern geht so magst du recht haben, aber bezogen auf Deutschland (bzw. auf einen einzelnen Staat mit vernüftigen System) sollte es doch möglich sein, eine (vollständige) Liste der Vorwahlen zu erhalten.

Mit so einer Liste kann die zu untersuchende Nummer gegen die Vorwahl-Liste geprüft werden und anschließend in Vorwahl und Rufnummer zum zuverlässigen/korrekten Formatieren geteilt werden. Oder sie wird zur händischen Bearbeitung aussortiert.

Dass es kein einheitliches Format gibt, ist ja überhaupt erst der Grund warum daydr3amer vor dem Problem steht 😉

mfG Gü

Stellt fachliche Fragen bitte im Forum, damit von den Antworten alle profitieren. Daher beantworte ich solche Fragen nicht per PM.

"Alle sagten, das geht nicht! Dann kam einer, der wusste das nicht - und hat's gemacht!"

16.807 Beiträge seit 2008
vor 11 Jahren

Bedingt durch die Historie gibt es bestimmte Nummern, die doppeldeutig sind.
Also nicht nur das Format, sondern auch die Nummer an sich.

Ich hab Dir jetzt leider kein konkretes Beispiel und kann da nur aus ner anderen Problemstellung berichten; aber so gab es durchaus noch Telefonnummern mit alter Vorwahl, die mehr oder weniger Doppeldeutig sind.
Sich also eine bestehenden 4 stelligen Vorwahl mit einer 5 stelligen Vorwahl bedingt deckt; zwar nicht zur gleichen Zeit aber aus der Historie gewachsen.

6.911 Beiträge seit 2009
vor 11 Jahren

Hallo Abt,

ich glaube dir das, aber dennoch ist das kein Grund warum das für daydr3amers Aufgabe nicht automatisch angewandt werden kann. Sollte es zu diesem gering wahrscheinlichen Fall kommen, dass eine zu untersuchende Nummer auf mehrere Vorwahlen passt, so braucht diese auch nur für die händische Formatierung aussortiert werden.

Für die Autovervollständigung bei Formularen lässt sich das nicht anwenden, aber darum geht es hier ja nicht.

mfG Gü

Stellt fachliche Fragen bitte im Forum, damit von den Antworten alle profitieren. Daher beantworte ich solche Fragen nicht per PM.

"Alle sagten, das geht nicht! Dann kam einer, der wusste das nicht - und hat's gemacht!"

D
daydr3amer Themenstarter:in
2 Beiträge seit 2012
vor 11 Jahren

Hey,

danke für die vielen Antworten, hat mir sehr geholfen.

wie kommst du denn auf den Dreh? Eine IF-Abfrage in einer Schleife über alle gültigen Vorwahlnummern (eingelesen aus einer Datei), reicht doch vollkommen.

Ups, da hab ich natürlich noch nicht dran gedacht 😄 aber das wird wahrscheinlich die einzig praktikable Lösung sein, auch wenn es viel Arbeit sein wird die ganzen Nummern aus Wikipedia zu kopieren (evtl. mit nem Skript). Leider habe ich noch keine vollständige und aktuelle Liste aller Vorwahlen im Netz finden können, also muss ich selbst ran.

aber bezogen auf Deutschland (bzw. auf einen einzelnen Staat mit vernüftigen System)

*hust* 😉 😄 wie du selbst schon sagtest, falls es ein vernünftiges System in Deutschland geben würde, hätte ich (und viele andere sicher auch) dieses Problem garnicht.. 😄 aber das gehört ja nicht hier rein 😉

mfg

[EDIT]
Ich werde melde mich dann hier mit dem Ergebnis, sobald es fertig ist 😉
[/EIDT]

V
66 Beiträge seit 2010
vor 11 Jahren

Über Wikipedia komme ich zur Bundesnetzagentur, wo ich dann Bundesnetzagentur / Regulierung Telekommunikation / Nummernverwaltung / Ortsnetzverzeichnisse / Vorwahlverzeichnis finde. Reicht das nicht?