grundlegende Handler frage ...

Dieses Thema im Forum "Scripting und Automatisierung" wurde erstellt von glzm0, 23.10.2004.

  1. glzm0

    glzm0 Thread Starter MacUser Mitglied

    Beiträge:
    858
    Zustimmungen:
    8
    MacUser seit:
    16.03.2003
    Hallo,

    vielleicht liest ja Snow noch mit ;).

    Ich habe grundlegende propleme des verstehens wie ein Handler funktioniert (trotz Ihrer Website und PDF =) ).

    Ich dachte bisher man könne so ein script lesbarer gestalten z.B.:
    -----
    on run{}
    meinProgramm()
    end run

    on meinProgramm()
    ...
    end meinProgramm
    ---------

    bisher hat es auch immer geklappt :), nun komme ich aber in verlegenheit so ein Handler innerhalb eines Handlers oder Tell-blockes zu nutzen, und schon geht es nicht mehr.
    Warum? Was muss ich tun um dies zu ändern?

    mfg glzm0
     
  2. Snow

    Snow MacUser Mitglied

    Beiträge:
    262
    Zustimmungen:
    2
    MacUser seit:
    24.03.2003
    Handler werden in der Regel auf der obersten Scriptebene definiert. Falls der Aufruf nicht von dort aus geschieht, sondern von einem anderen Handler oder einem Tell-Block heraus, dann muss man beim Handleraufruf auf die oberste Scriptebene verweisen.

    Statt so zu schreiben:

    meinProgramm()

    benötigt man nun sowas:

    my meinProgramm()

    oder

    meinProgramm() of me


    Handler innerhalb eines anderen Handlers zu definieren geht nicht - man bekommt eine Fehlermeldung. Wenn man so etwas wirklich machen will, muss man innerhalb eines Handlers ein Skriptobjekt anlegen. Wiederum innerhalb dieses Skriptobjekts können nun weitere Handler definiert werden.

    Beispiel:

    meinProgramm()

    on meinProgramm()
    ****set t to "Hallo"
    ****
    ****
    script UnterProgramm
    ********on meinUnter(s)
    ************display dialog s
    ********end meinUnter
    ****end script
    ****
    meinUnter(t) of UnterProgramm
    end meinProgramm


    Wie man sehen kann, wird es hier mit dem Aufrufen des innersten Handlers schon recht kompliziert.
     
  3. glzm0

    glzm0 Thread Starter MacUser Mitglied

    Beiträge:
    858
    Zustimmungen:
    8
    MacUser seit:
    16.03.2003
    ... aha .. Danke =)

    Hallo Herr Fischer,

    (ich hoffe ich darf Sie mit Nachnamen ansprechen, ist ja kein geheimnis :), wenn nicht schnell den Admin anrufen oder mich zum editieren :) )

    Also vielen Dank erst mal. Ziemlich Kompetente Hilfe Ihrerseits. Wie viele Jahre beschäftigen Sie sich eigentlich schon mit AppleScript?

    Was ist von AppleScript Studio zu halten? Hat das noch Zukunft wenn nun der Tiger Automator kommt? :)

    Ihr hinweis (of me) hat mir weitergeholfen. nun funzt mein Script prima. Habe aus Ihren forum diesen Codeschnipsel geliehen, welcher Text durch anderen erstezen kann, der den Sie auch gefunden hatten der ziemlich kompakt und unverständlich sein mag. Geht Prima.

    Habe damit mein Adressbuch neu geordnet. Str. durch Straße und str. durch strasse ersetzen lassen.
    :)

    Nun hatte ich noch ein Script welches mir die passenden Bundesländer zu den Postleitzahlen einträgt. Hoffentlich war die Arbeit nicht ganz umsonst da die ja im Adressbuch selbst nicht mehr angezeigt werde, aber wenn ich sie als HTML exportiere fand ich es ganz nett =).
    Da würde mich mal rein Theoretisch interessieren wie Sie dieses Problem gelöst hätten.
    Ich habe es umständlich gelöst,
    1. filtern der ganzen Kontakte welche überhaupt eine Adresse besitzen (um die liste klein zu halten)
    2. ich habe jeweils für ein Bundesland eine liste mit deren Postleitzahlen.
    jetzt können Sie sich ja vorstellen wie lange das dauert bis er jedes mal jede liste durchsucht hat und das dann mal 16 Bundesländer :D - aber ok es hat funktioniert.
    Ich dachte erst die liste nach zahlen zu sortieren um so schneller die suchroutine auf die richte PLZ zu setzen. hab es dann aber bei der Variante liste pro Bundesland belassen. :)

    nunja :) Danke noch einmal für die Hilfe.
     
  4. Snow

    Snow MacUser Mitglied

    Beiträge:
    262
    Zustimmungen:
    2
    MacUser seit:
    24.03.2003
    You can say you to me.
    "Sie" oder "Herr Fischer" bin ich nur an der Arbeit.

    Seit meinem ersten Mac - 1993. Allerdings anfangs nur sporadisch. Man ist halt neugierig. Intensiviert hat sich mein Interesse an AppleScript erst 1998. Und seit mein Forum läuft (2000) habe ich täglich damit zu tun.

    Automator wird keine Konkurrenz für AppleScript Studio sein. Die Ansätze sind zu verschieden. Automator stellt eher eine Alternative zum klassischen AppleScript dar. - Praktisch Scripten ohne Skriptkenntnisse. Im Automator werden ja nur vorgefertigte Scriptteile kombiniert.
    Wer ein eigenständiges Programm mit User-Interface erstellen möchte, wird um AppleScript Studio nicht herum kommen.

    Zum Bundesländer zuordnen:

    Die Postleitzahlen werden ja nicht per Zufallsprinzip vergeben. So lässt sich doch schon einschränken, in welcher Liste gesucht werden soll.
     
  5. glzm0

    glzm0 Thread Starter MacUser Mitglied

    Beiträge:
    858
    Zustimmungen:
    8
    MacUser seit:
    16.03.2003
    nicht unbedingt per zufall, aber ...

    Danke für die Beantwortung der Fragen :)

    ... also per Zufall hat die Post die PLZ nicht vergeben, aber auch nicht Explizit nach Bundesländer. Deswegen gibt es PLZ gebiete die zwei Bundesländer bedienen müssen.

    Also nach den ersten 2 Zahlen der PLZ kann ich nicht gehen, nun muss ich mal schauen ob die ersten 3 langen. Ansonsten komme ich um mein Prinzip nicht herum :)

    Und wie ich damals beim durchforsten nach meinem Problem feststellen musste, werden die PLZ von der Post ständig up to date gehalten. Also scheinen die das ständig in einem geringem Maße zu ändern.

    :) Naja, mal schauen ob es reicht die ersten 3 Ziffern zu kontrollieren.


    mfg glzm0
     
    Zuletzt bearbeitet: 27.10.2004
Die Seite wird geladen...

Diese Seite empfehlen