Registriert seit: 23. Jan 2008
3.685 Beiträge
Delphi 2007 Enterprise
|
AW: Telefonnummer Format Weltweit
27. Dez 2015, 02:48
Wie sicher kannst du sein, dass alle Rufnummern wohlgeformt hinterlegt sind? (Unabhängig vom genauen Format.)
Kommen nur deutsche Nummern vor, oder kann prinzipiell alles dabei sein?
Das Problem bei Rufnummern ist, dass die Länder- und Ortsvorwahlen keine feste Länge haben. Es gibt Länder mit zweistelligen Nummern, aber auch welche mit 3 Stellen. Auch Ortsvorwahlen können 2-4 Stellen haben, zumindest in Deutschland. Wie es international aussieht weiss ich nicht. Wenn die Eingabe daher nicht garantiert wohlgeformt ist, hast du im Grunde erstmal keine andere Chance als alle Zeichen ausser die Ziffern zu entfernen, und die Nummer bzgl. der Anzeige neu aufzubauen. Um dies zu tun braucht man dann aber fast schon zwingend eine Liste aller Länder- und Ortsvorwahlen weltweit, mit denen man dann Ziffer für Ziffer durchgehen muss um zu ermitteln wo nun die Leerzeichen hin kommen.
Dazu kommt das Problem, dass die sog. Verkehrsausscheidungsziffer (die 0 vor Vorwahlen wenn keine Ländervorwahl gewählt wird, die manchmal in Klammern steht) optional ist, und eben nicht immer in Klammern steht, wenn sie denn überhaupt da steht. Die E.123 Empfehlung sieht es z.B. gar nicht vor diese überhaupt anzugeben, wenn internationale Nummern gemeint sind.
Und da kommt schon das nächste Problem: Sind garantiert alle Nummern mit Ländervorwahl eingetragen? Wenn nicht, dann wird es schon recht fummelig. (Gut, amn kann die daran erkennen, dass sie nicht mit "+", "00" oder "1..9" anfangen. Nichtsdestotrotz eine Verkomplizierung.) Gleiches Spiel für Ortsvorwahlen.
Telefonnummern sind für strukturierte Systeme wie Computer ein Graus. Gewachsenes Kraut.
Ultimativ würde ich die Datenbank (ich vermute mal es steht eine dahinter) anders aufbauen, und für Länder- Orts- Teilnehmer und Durchwahl je ein eigenes Feld nehmen. Dann hat man ein Mal den Aufwand die Bestandsdaten dahin zu überführen, aber ab dann läuft's erheblich geordneter. Und man kann die Darstellung nachher auch noch wunderschön variabel halten und an den Kunden anpassen. (Oder ihm gar die Wahl zwischen verschiedenen Formaten lassen!)
"When one person suffers from a delusion, it is called insanity. When a million people suffer from a delusion, it is called religion." (Richard Dawkins)
|