Mac OS X: Per AppleScript Telefonnummern im Adressbuch einheitlich formatieren

Wer kennt das nicht:

Auf dem Mac sammeln sich im Adressbuch über verschiedenste Quellen über die Jahre zahlreiche Kontaktdaten an. Der eine synchronisiert Kontakte via iTunes mit dem iPhone, dann noch direkt mit Google Contacts oder Mobile Me und dann ggf. noch mit dem alten Windows PDA und zahlreichen weiteren Endgeräten.

Aber wie bekommt man die Telefonnumern auf ein einheitliches Format ohne von Hand alle Kontakte durchgehen zu müssen?

Die Lösung:

Ein kleines von mir selbst geschriebenes AppleScript. Dieses kann hier kostenlos heruntergeladen (und natürlich von Euch verändert) werden.

Hinweis: Habe das Skript am 12.12.2009 überarbeitet (Version 1.1) und unter SnowLeopard 10.6.2 getestet.

Anleitung:

  • Download des ZIP-Archives (180 kB)
  • Entpacken des ZIP-Archives
  • Öffnen des AppleScripts “Vorwahl.scpt” im AppleScript-Editor
  • Ggf. Zeile 4 abändern in “set debug to false” (dann werden weniger Rückfragen gestellt)
  • Script starten durch drücken des “Ausführen”-Knopfes im AppleScript-Editor
  • Nach dem Starten im erscheinenden Dialog die Datei “Vorwahlen.txt” angeben
  • Nun geht das Skript alle Mobil/Telefon/Telefax-Nummern im Mac Adressbuch durch und konvertiert diese in das einheitliche Format (gemäß DIN-Norm) +49 VORWAHL DURCHWAHL

Achtung: Verwendung auf eigene Gefahr und ohne Garantie! Das Skript zeigt in einem Dialogfenster jede Nummer vorher und nachher an und kann durch ABBRECHEN beendet werden. Am besten vorher das komplette Adressbuch sichern (z.B. via ABLAGE > EXPORTIEREN > ADRESSBUCHARCHIV…)

Da dies mein erstes AppleScript ist bin ich über euer Feedback stets erfreut. Die Performance ist mies und es ist auch nicht wirklich perfekt durchdacht. Es hat mir aber viel Arbeit abgenommen und die hoffe ich Euch auch sparen zu können.

9 thoughts on “Mac OS X: Per AppleScript Telefonnummern im Adressbuch einheitlich formatieren

  • Bei mir läuft das Script leider nicht 🙁 Immer wenn ich es im Scripteditor starte (“Playbutton”) öffnet sich das Addressbuch und der Mac rechnet (Dialog erscheint nicht) bis die “timed out” Meldung kommt, danach kann ich das Addressbuch nur noch durch Neustart des Rechners beenden.

  • Bei mir läufts auch nicht durch. MacOS 10.6.2. Nachdem er alle Kontake durchgegangen ist (Dialogbox erscheint für alle Nummern, hab alle bestätigt) passiert erstmal nichts, dann kommt der Timeout.

    Schade, denn die Idee ist super und ich find auch nix anderes im Netz – und hab auch kein Bock alles per Hand zu konvertieren, sind schon einige Nummern.

    Wird das evtl noch gefixt?

    mfG

    Christian

  • @Simon Schmitt

    Ok jetzt läufts durch. Ein paar Anmerkungen hab ich noch:

    1. Es geht davon aus, dass alle Nummern von deutschen Provindern sind. Aus “0031 12345” (NL) macht es “+49 31 12345”

    2. debug ist noch auf true. Wer sich gar nicht mit ein bisschen Programmieren auskennt hat wenig Spaß daran, wenn er pro Nummer 5x klicken muss

    3. eine “yes to all” Funktion wär toll. Ich hab über 250 Nummern konvertiert, also 250 Klicks. Einer hätte mir auch gereicht.

    Ansonsten: Super Arbeit! Vielen Dank!

    Christian

  • Erstmal klasse Programm.

    Aber wie kann ich das Format in +49 (xxxx) xxxxx ändern ? ohne die klammern find ichd as irgendwie doof.
    Ich kenn mich ein wenig in programmieren aus aber ich will in dem skript eigentlich fast nix ändern.
    Bei manchen muckt er noch ein bisschen rum
    ich hab die microsoft service nummer ( 0180 ) im adressbuch und die will er nicht erkennen, nachdem ich die in der text datei geändert hab, wollt er die auch nicht mehr ändern.

  • Super Script, genau dass was ich gesucht habe!!

    Leider gibt es ein Problem:

    Das Script lässt den Arbeitsspeicher volllaufen und dann ist Schluss! (Bei mir immerhin 4GB)

    Habe mittlerweile ein sehr großes Adressbuch (daher war ich erstmal sehr glücklich über dieses Skript) und habe daher auch die Benutzerabfragen rausgenommen -> läuft alles super (Telefonnummern werden auch konvertiert) bis der Speicher voll ist.

    Ich hab zwar ein bisschen Ahnung vom Programmieren aber überhaupt nicht von AppleScript, wäre super wenn es dafür noch eine Lösung geben könnte.

    Ansonsten super und vielen Dank schon mal im Voraus.

  • Habs gerade nochmal geladen und habs ein bisschen konfiguriert. Sucht einfach folgende Zeile :

    set newNum to findAndReplace(“!+49 ” & vorwahl, “!+49” & “.” & vorwahl & “.”, newNum) of me

    Die ist ziemlich in der Mitte, ich habe aber hier die Leerzeichen durch “.” ersetzt. Für die Klammern einfach “(” und beim 2. Punkt “)”.

    Somit kann man das Format einstellen

  • schade das es nicht für 10.8.2 läuft, da kommt Fehler
    „«class az17»“ kann nicht als „newNum“ gesetzt werden. Zugriff nicht erlaubt.

Leave a Reply

Your email address will not be published. Required fields are marked *