Adressbuch - Vorwahländerung automatisieren

Dieses Thema im Forum "Scripting und Automatisierung" wurde erstellt von octavian, 08.01.2005.

  1. octavian

    octavian Thread Starter MacUser Mitglied

    Beiträge:
    112
    Zustimmungen:
    1
    MacUser seit:
    18.01.2004
    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
     
  2. glzm0

    glzm0 MacUser Mitglied

    Beiträge:
    858
    Zustimmungen:
    8
    MacUser seit:
    16.03.2003
    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
     
  3. octavian

    octavian Thread Starter MacUser Mitglied

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

    octavian
     
  4. glzm0

    glzm0 MacUser Mitglied

    Beiträge:
    858
    Zustimmungen:
    8
    MacUser seit:
    16.03.2003
    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% ;)

    [DLMURL="applescript://com.apple.scripteditor/?action=new&script=tell%20application%20%22Address%20Book%22%0A%09set%20PeList%20to%20people%0A%09repeat%20with%20oneP%20in%20PeList%0A%09%09set%20phoneList%20to%20(value%20of%20phone%20of%20oneP)%0A%09%09repeat%20with%20phoneNum%20in%20phoneList%0A%09%09%09set%20PhV%20to%20(value%20of%20phone%20of%20oneP)%0A%09%09%09try%0A%09%09%09%09set%20PhV%20to%20item%201%20of%20PhV%0A%09%09%09end%20try%0A%09%09%09if%20PhV%20starts%20with%20%22+41%201%22%20then%0A%09%09%09%09set%20tC%20to%20length%20of%20PhV%0A%09%09%09%09set%20tRest%20to%20characters%206%20thru%20tC%20of%20PhV%0A%09%09%09%09set%20value%20of%20phone%20of%20oneP%20to%20(%22+41%2044%22%20%26%20tRest)%20as%20Unicode%20text%0A%09%09%09end%20if%0A%09%09end%20repeat%0A%09end%20repeat%0Aend%20tell"]!!Dieser Link öffnet das Script in Deinem Scripteditor!![/DLMURL]

    so, versuch mal Dein Glück, mfg glzm0
     
    Zuletzt bearbeitet: 10.01.2005
  5. octavian

    octavian Thread Starter MacUser Mitglied

    Beiträge:
    112
    Zustimmungen:
    1
    MacUser seit:
    18.01.2004
    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
     
  6. glzm0

    glzm0 MacUser Mitglied

    Beiträge:
    858
    Zustimmungen:
    8
    MacUser seit:
    16.03.2003
    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
     
  7. octavian

    octavian Thread Starter MacUser Mitglied

    Beiträge:
    112
    Zustimmungen:
    1
    MacUser seit:
    18.01.2004
    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
     
  8. Snow

    Snow MacUser Mitglied

    Beiträge:
    262
    Zustimmungen:
    2
    MacUser seit:
    24.03.2003
    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.
     
    Zuletzt bearbeitet: 11.01.2005
  9. crake

    crake MacUser Mitglied

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

    Wäre sehr dankbar...
     
  10. Snow

    Snow MacUser Mitglied

    Beiträge:
    262
    Zustimmungen:
    2
    MacUser seit:
    24.03.2003
    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
     
    Zuletzt bearbeitet: 11.01.2005
Die Seite wird geladen...
Ähnliche Themen - Adressbuch Vorwahländerung automatisieren
  1. faxe2110
    Antworten:
    2
    Aufrufe:
    215
    faxe2110
    12.08.2016
  2. authumbla
    Antworten:
    4
    Aufrufe:
    1.032
    authumbla
    15.04.2014
  3. mychrissie
    Antworten:
    9
    Aufrufe:
    1.536
    mychrissie
    19.02.2014
  4. Series 60
    Antworten:
    4
    Aufrufe:
    987
    WirbelFCM
    09.08.2013
  5. gandalf12
    Antworten:
    13
    Aufrufe:
    1.384
    gandalf12
    23.10.2012