Adressbuch - Vorwahländerung automatisieren

  1. octavian

    octavian Thread Starter MacUser Mitglied

    Mitglied seit:
    18.01.2004
    Beiträge:
    114
    Zustimmungen:
    1
    Hallo!
    Vielleicht habe ich den richtigen Ort im Netz für die Antwort auf meine Frage nur nicht gefunden, aber ich komme - als Anfänger - bei einem Problem nicht weiter:

    Ende Januar 05 wird in der Schweiz die nationale Telefon-Vorwahl des Kantons Zürich von 01 auf 044 geändert. Ich möchte meine Telefoneinträge im Adressbuch automatisiert ersetzen.

    In diesem Thread habe ich das Script von Snow gefunden, um die Vorwahl von "+49" auf "0" zu setzen:

    Dieses Stript habe ich ziemlich verstanden und in einem ersten Versuch angepasst (Ich gebe die Telefonnummern international ein, z.B. +41 1 123 45 67) :

    tell application "Address Book"
    set PeList to people
    repeat with oneP in PeList
    set PhV to (value of phone of oneP)
    try
    set PhV to item 1 of PhV
    end try
    if PhV starts with "+41 1" then
    set tC to length of PhV
    set tRest to characters 6 thru tC of PhV
    set value of phone of oneP to ("+41 44" & tRest) as Unicode text
    end if
    end repeat
    end tell


    Allerdings gibt es bei der Auswahl der Telefonnummern noch ein Problem:
    Das Script funktioniert nicht, wenn mehrere Telefonnummern für eine Person gespeichert sind: Erfüllt der oberste Telefoneintrag die Bedingungen, werden alle Telefonnummern des Adresseintrags geändert.
    Leider reichen meine Applescript-Kentnisse nicht aus, um den oberen Teil von Snows Script ganz zu verstehen, geschweige denn eine Lösung zu finden. Weiss jemand Rat?
    Da in der Schweiz viele Tausend MacUser (was sage ich da: Zehntausende, Hunderttausende
    :) ) davon betroffen sein dürften, sind vielleicht auch andere froh um eine Lösung.

    Merci vielmal!

    octavian
     
    octavian, 08.01.2005
    #1
  2. glzm0

    glzm0 MacUser Mitglied

    Mitglied seit:
    16.03.2003
    Beiträge:
    858
    Zustimmungen:
    8
    lösung kommt ;)

    Vielleicht ist Snow schneller als ich, habe erst heute Abend zeit.

    Die Sache ist simpel, du musst IN der Personenschleife noch eine Adressenschleife unterbringen. Das war es eigentlich schon, aber wie gesagt die genauen Infos kann ich erst heute Abend geben wenn ich wieder an meiner Kiste sitze ;)

    Vielleicht ist Snow ja schneller :)


    mfg glzm0
     
    glzm0, 10.01.2005
    #2
  3. octavian

    octavian Thread Starter MacUser Mitglied

    Mitglied seit:
    18.01.2004
    Beiträge:
    114
    Zustimmungen:
    1
    Oh glzm0!
    Wäre toll, wenn du mir unter die Arme greifst!

    octavian
     
    octavian, 10.01.2005
    #3
  4. glzm0

    glzm0 MacUser Mitglied

    Mitglied seit:
    16.03.2003
    Beiträge:
    858
    Zustimmungen:
    8
    Aaallssoo:

    um genau zu sein ist es nicht eine zusätzliche Adresslistenschleife (die nummern sind nicht in der adressvariable) sondern eine Telefonlistenschleife :p (das die Telefonnummern in einer eigenen Liste innerhalb der Personenvariable liegen).

    Habe es insofern ausprobiert, das ich anstatt der Telefonnummer ändern einen Meldung ausgegeben habe. Daher kann ich sagen es funktioniert zu 99% ;)

    !!Dieser Link öffnet das Script in Deinem Scripteditor!!

    so, versuch mal Dein Glück, mfg glzm0
     
    glzm0, 10.01.2005
    #4
  5. octavian

    octavian Thread Starter MacUser Mitglied

    Mitglied seit:
    18.01.2004
    Beiträge:
    114
    Zustimmungen:
    1
    Hmm, bei mir geht er immer noch auf die erste (=oberste) Nummer (egal, ob die Arbeit oder "Privat" ist). Erfüllt diese die Bedingungen, wandelt das Script ALLE Telefon-Einträge der Person um, wenn nicht, gar keinen (auch wenn weiter unten ein Eintrag mit der "richtigen" Vorwahl kommt).
    Hast du das in deinem Test auch überprüft?

    Was mach ich bloss falsch :(

    Danke aber sowieso für deine Bemühungen!

    octavian
     
    octavian, 10.01.2005
    #5
  6. glzm0

    glzm0 MacUser Mitglied

    Mitglied seit:
    16.03.2003
    Beiträge:
    858
    Zustimmungen:
    8
    sicherlich auch kein Thema ;)

    Habe Dein Problem zuerst nicht richtig erkannt :)

    Nun hab ich es kapiert und werde morgen nochmal das Script umändern :)

    mfg glzm0
     
    glzm0, 11.01.2005
    #6
  7. octavian

    octavian Thread Starter MacUser Mitglied

    Mitglied seit:
    18.01.2004
    Beiträge:
    114
    Zustimmungen:
    1
    Das ist echt nett von dir! Und ich werde mich bemühen, es so zu verstehen, was du machst, dass ich bei einem ähnlichen Problem in Zukunft alleine weiter komme als dieses Mal ;-)

    octavian
     
    octavian, 11.01.2005
    #7
  8. Snow

    Snow MacUser Mitglied

    Mitglied seit:
    24.03.2003
    Beiträge:
    262
    Zustimmungen:
    2
    Here we go!

    Hallo miteinander,

    habe den Thread erst gerade gesehen.
    Mein ursprüngliches Skriptchen konnte nur 1 Telefonnummer bearbeiten, da explizit "item 1 of PhV" angegeben wurde. Auch wenn nur eine Nummer vorhanden ist, ist das Ergebnis eine Telefonnummern-Liste. Als Fast-Shot habe ich mich damals eben auf den ersten Eintrag konzentriert.

    Hier eine Fassung, die alle Telefonnummern berücksichtigen sollte:

    try
    tell application "Address Book"
    set PeList to people
    repeat with oneP in PeList
    set PhV to (value of phones of oneP)
    set PhVCount to count PhV
    repeat with i from 1 to PhVCount
    set onePhone to item i of PhV
    if onePhone starts with "+41 1" then
    set tC to length of onePhone
    set tRest to characters 6 thru tC of onePhone
    set onePhone to ("+41 44" & tRest) as Unicode text
    log onePhone
    set value of phone i of oneP to onePhone
    end if
    end repeat
    end repeat
    end tell
    on error errMsg number errNr
    display dialog (errNr as string) & return & errMsg
    end try


    Bitte testen und berichten.
     
    Snow, 11.01.2005
    #8
  9. crake

    crake MacUser Mitglied

    Mitglied seit:
    19.11.2003
    Beiträge:
    178
    Zustimmungen:
    0
    Besteht die Möglichkeit, dass jemand das Skript inkl. einer kurzen Anleitung als Download zu Verfügung stellt?

    Wäre sehr dankbar...
     
    crake, 11.01.2005
    #9
  10. Snow

    Snow MacUser Mitglied

    Mitglied seit:
    24.03.2003
    Beiträge:
    262
    Zustimmungen:
    2
    Ernsthaft? Skript kopieren, im Skripteditor einsetzen Werte, die gesucht und ersetzt werden sollen entsprechend anpassen und auf den Run-Button drücken.

    Hier die nächste Version (etwas übersichtlicher):

    -- Werte für Suchmuster und Ersatz anpassen
    set Suchmuster to "+41 1"
    set Ersatz to "+41 44"

    --
    ab hier keine Änderungen nötig
    set StartC to (length of Suchmuster) + 1

    try
    tell application "Address Book"
    set PeList to people
    repeat with oneP in PeList
    set PhV to (value of phones of oneP)
    set PhVCount to count PhV
    repeat with i from 1 to PhVCount
    set onePhone to item i of PhV
    if onePhone starts with Suchmuster then
    set tC to length of onePhone
    set tRest to characters StartC thru tC of onePhone
    set onePhone to (Ersatz & tRest) as Unicode text
    set value of phone i of oneP to onePhone
    end if
    end repeat
    end repeat
    end tell
    on error errMsg number errNr
    display dialog (errNr as string) & return & errMsg
    end try
     
    Snow, 11.01.2005
    #10
Die Seite wird geladen...
Ähnliche Themen - Adressbuch Vorwahländerung automatisieren
  1. benjsing
    Antworten:
    3
    Aufrufe:
    217
    MrVale
    23.03.2017
  2. Series 60
    Antworten:
    4
    Aufrufe:
    1.065
    WirbelFCM
    09.08.2013
  3. marcomx
    Antworten:
    2
    Aufrufe:
    960
    Pill
    18.10.2012
  4. Baerlos
    Antworten:
    0
    Aufrufe:
    737
    Baerlos
    28.07.2011
  5. Stephan R
    Antworten:
    1
    Aufrufe:
    1.207
    varuna
    25.07.2010