Delphi-PRAXiS
Seite 1 von 4  1 23     Letzte »    

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Klatsch und Tratsch (https://www.delphipraxis.net/34-klatsch-und-tratsch/)
-   -   Telefonnummer check (https://www.delphipraxis.net/185349-telefonnummer-check.html)

p80286 2. Jun 2015 12:55

Telefonnummer check
 
Hallo zusammen,
ich darf mir aussuchen ob ich arbeite!
Soeben wurde mir eine erkleckliche Anzahl Telefon/Faxnummern auf den Tisch gekippt, als Garnutur die Frage "Kann man die in das richtige Format bringen und überprüfen?"
Darum meine Frage an Euch, gibt es so etwas wie ein Wählsimulatior bzw. ein Prüfprogramm für Telefonnummern wobei die Kreativität der Erfasser kaum zu schlagen ist:
  • 123456
  • 12 34 56
  • 0209123456
  • 02 09 12 34 56
  • 0209-123456
  • 209-123456
  • 49-209-123456
  • 0049 (0)209-123456
  • +49-209-123456
  • ++49/209/123-456
Ein paar Variationen habe ich jetzt bestimmt vergessen. Bevor ich versuche alles selbst zu machen, gibt's da schon was fertiges oder habt Ihr einen Tip wo man z.B. Listen von Vorwahlen etc. bekommen kann.
(mein Vorteil, wenn ich sage, das dauert zu lange geht's an irgendeinen externen Dienstleister:stupid:)


vielen dank im Vorraus
K-H

Sir Rufo 2. Jun 2015 13:02

AW: Telefonnummer check
 
Wenn du neben den Eingabewerten auch noch das erwartete Ergebnis schreiben würdest, dann könnte man dazu auch etwas sagen :stupid:

JasonDX 2. Jun 2015 13:35

AW: Telefonnummer check
 
Wenn du nur nationale Telefonnummern hast, sollte es machbar sein. Es gibt höchstwahrscheinlich eine Spezifikation, und relativ sicher auch eine Library, die das prüft.

Ansonsten, wenn du auch internationale Nummern hast, hast du meiner Erfahrung nach 2 Optionen: Finde eine library online, die das für dich erledigt, oder gibs auf/ab.
Wir haben intern eine Bibliothek die internationale Telefonnummern validieren und formatieren muss, und ein knapper Blick darüber zeigt, wie chaotisch das ganze sein kann. Das kann bei "einfachen" Dingen anfangen wie optionale oder verpflichtende führende Nullen bei Vorwahlen, bis hin zu Telefonnummern, keine Nummern, sondern Email-Adressen sind.

Was hier mit Zeitzonen erklärt wird, gilt IMO auch für Telefonnummern.

stahli 2. Jun 2015 14:07

AW: Telefonnummer check
 
Der DP-abtrünnige - schämen sollte er sich! - jensw_2000 befasst sich mit Rufnummernnormalisierung und diversen Prüfungen...
Vielleicht gibt es dort etwas für Euch: www.innovasoft.de

Kralle 2. Jun 2015 14:33

AW: Telefonnummer check
 
Moin,

hier gibt es alle deutschen Vorwahlnummer als PDF http://www.bundesnetzagentur.de/Shar...cationFile&v=3

Die Nummernspalte in z.B. eine Textdatei kopieren und Du hast schonmal eine Vergleichsliste.

Zitat:

Zitat von p80286 (Beitrag 1303891)
  • 123456
  • 12 34 56

    Keine Null am Anfang: Rufnummer im eigenen Vorwahlnummernbereich. Leerzeichen raus und mit entsprechender Vorwahl speichern.
  • 0209123456
  • 02 09 12 34 56
  • 0209-123456

    Null am Anfang: Leerzeichen raus, die ersten 3, dann 4 und dann 5 Nummern (wenn keine Bindestrich enthalten ist) mit obiges Liste vergleichen
  • 209-123456

    Hmmm.
  • 49-209-123456
  • 0049 (0)209-123456
  • +49-209-123456
  • ++49/209/123-456

    hier überlegen ob Du solche Nummern mit 00 oder +49 oder ++49 schreiben willst und entsprechend anpassen und den Mittelteil mit obigesr Liste vergleichen

Welche Strukturen es bei deutschen Rufnummern gibt findest Du hier:
http://www.bundesnetzagentur.de/cln_...html?nn=268384

Vielleicht hilft das als Anschubs weiter.

Gruß HEiko

p80286 2. Jun 2015 15:13

AW: Telefonnummer check
 
Erst einmal vielen Dank!

@Sir Rufo
Das Ergebnis sollte eine gültige formatierte Rufnummer sein - in diesem Beispiel +49(209)123456 oder aber eine Fehlermeldung "ungültige Ländervorwahl" oder etwas ähnliches.

@Kralle
ich schau da mal rein vielen Dank!
(Internationale Vorwahlen gibt's ja wie Sand am Meer)

@Stahli & @JasonDX
Das Angebot des Abtrünnigen scheint zu passen, dann wäre das Zeug auch weg!



K-H

himitsu 2. Jun 2015 16:06

AW: Telefonnummer check
 
209-123456
49-209-123456

Bei den Beiden ist eh alles im Arsch.

Alles, was man nicht eingeben kann und man nirgendwo rauskommt (jedenfalls nicht da, wo gewollt), kann nicht automatisch behandelt werden, denn ohne die 0 oder das + am Anfang, sind das "eindeutig" lokale Telefonnummern, im aktuellen Vorwahlbereich.
Daß es sich eigentlich um 0 und 00/+ handelt, ist ja nur durch die ebenfalls zufälligen mit angezeigten anderen Datensätze erkenntlich, also für den Menschen zumindestens.


Du kannst dir natürlich auch elektronische Telefonbücher besorgen und die Telefonnummern damit abgleichen, über eine entsprechende Fuzzy-Logic.

Dejan Vu 2. Jun 2015 17:09

AW: Telefonnummer check
 
DIN5008, E.123 bringt dich nicht weiter?

p80286 8. Jun 2015 13:39

AW: Telefonnummer check
 
Zitat:

Zitat von Dejan Vu (Beitrag 1303932)
DIN5008, E.123 bringt dich nicht weiter?

pardon, daß ich mich erst jetzt rühre,
Nein, Formatvorschriften gibt es ja zur genüge,nur niemanden der sich daran hält:stupid:

Gruß
K-H

Luckie 8. Jun 2015 13:52

AW: Telefonnummer check
 
Ist es wirklich so schwer oder denke ich zu simpel?

1. Alle Zeichen löschen die keine Ziffer sind (Klammer, Leerzeichen, Bindestrich, ...)
2a. Fängt die Ziffernfolge mit 0 an haben wir eine Telefonnumer mit Vorwahl. Optional: Ziffernfolge in einer Vorwahl Datenbank suchen (auch Mobilfunkanbieter überprüfen), um sie mit einem Leerzeichen von eigentlichen Telefonnummer abzutrennen, wenn gewünscht.
2b. Fangt die Ziffernfolge nicht mit einer 0 an und ist länger als acht Ziffern, haben wir eine Telefonnumer mit Ländervorwahl. Plus davor setzen. Optional: In einer Datenbank Ländervorwahl suchen, dann Vorwahl suchen, dann entsprechen mit Leerzeichen trennen, wenn gewünscht.
3. Ziffernfolge entsprechend er Formatierungsregeln formatieren.


Alle Zeitangaben in WEZ +1. Es ist jetzt 08:50 Uhr.
Seite 1 von 4  1 23     Letzte »    

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