Fischer-Bayern.de
 FAQFAQ   SuchenSuchen   MitgliederlisteMitgliederliste   BenutzergruppenBenutzergruppen   RegistrierenRegistrieren 
 ProfilProfil   Einloggen, um private Nachrichten zu lesenEinloggen, um private Nachrichten zu lesen   LoginLogin 

AppleScript-STOPPER=AS ANHALTEN an beliebiger Stelle gesucht
Gehe zu Seite 1, 2  Weiter
 
Dieses Forum ist gesperrt, du kannst keine Beiträge editieren, schreiben oder beantworten.   Dieses Thema ist gesperrt, du kannst keine Beiträge editieren oder beantworten.    Fischer-Bayern.de Foren-Übersicht -> AppleScript-Forum
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
spirigwi
•----->
•----->


Anmeldedatum: 10.07.2003
Beiträge: 1517
Wohnort: Olten-CH

BeitragVerfasst am: 22.11.2004 - 02:12    Titel: AppleScript-STOPPER=AS ANHALTEN an beliebiger Stelle gesucht Antworten mit Zitat

EDIT 21.1.07 Zweck: kurz und bündig
Frage:
Eigentlich suche ich eine simple Form um in längst einmal fabrizierten und sehr komplizierten Skripten mit Subscripten(Handlern) nachträglich an beliebiger Stelle des Skriptes oder eines aufgerufenen Handlers noch einen STOPPER einbauen zu wollen.(Also auch innerhalb eines Handlers soll dieser STOPPER funktionieren und das ganze Skript anhalten)


Detaillierte Frage und Antwort (nach Folkers geduldiger Hilfe) am Schluss des posting positioniert.
_________________
 Skript-Fan => ein � -Fan =>Scr¿¿-KongFuSius_Kurpfusius


Zuletzt bearbeitet von spirigwi am 21.01.2007 - 15:00, insgesamt 4-mal bearbeitet
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden AIM-Name
Folker
•---->
•---->


Anmeldedatum: 11.12.2000
Beiträge: 649
Wohnort: Holsteinische Schweiz

BeitragVerfasst am: 22.11.2004 - 10:45    Titel: Antworten mit Zitat

Moin Willy,

huh - ich habe bisher nur überflogen - sollte es so sein, dass Du noch darauf gestossen werden musst: Du kannst selber error-msg erzeugen ...

try
   set x to 3
   set y to 3
   set z to (x ^ y)
   ---Ach nö - keine Lust mehr
   error "Ich habe keine Lust mehr ..." number -31960
   
   -- werden nicht weiter abgearbeitet
   set a to "b"
   set c to "d"
   
on error errmsg number errnum
   display dialog errmsg
end try

Aber ich versuche so neben meiner Arbeit da mal in Ruhe (Widerspruch! Wink ) durchzusteigen. Wenn es Sinn macht, bietet AS ja meist mindestens 1 Möglichkeit ...
_________________
Gruß,
Folker Brandt
=============================
Systemberatung · Datenbanken · Webdesign
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
spirigwi
•----->
•----->


Anmeldedatum: 10.07.2003
Beiträge: 1517
Wohnort: Olten-CH

BeitragVerfasst am: 22.11.2004 - 15:28    Titel: Antworten mit Zitat

Folker so promte Antwort! Danke
Also das stimmt alles was du schreibst:
Folker hat Folgendes geschrieben:
darauf gestossen werden musst: Du kannst selber error-msg erzeugen ...
error "Ich habe keine Lust mehr ..." number -31960

" Nun weiss ich ZB nicht ob man sich nun die Nummer -31960 auswendig lernen sollte für diese error Technik

EDIT 25.1.07: da ich es nun kapiert habe, kann ich auch ganz kurze Fragen stellen.
_________________
 Skript-Fan => ein � -Fan =>Scr¿¿-KongFuSius_Kurpfusius


Zuletzt bearbeitet von spirigwi am 25.01.2007 - 22:58, insgesamt 3-mal bearbeitet
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden AIM-Name
Folker
•---->
•---->


Anmeldedatum: 11.12.2000
Beiträge: 649
Wohnort: Holsteinische Schweiz

BeitragVerfasst am: 22.11.2004 - 16:02    Titel: Antworten mit Zitat

Hallo,

ja, Du kannst ja "try on error" auch verschachteln!

ZB. so

try
   say "Guten Tach"
   set tVar to mach_meldung() of me
   if tVar is 0 then
      error "Benutzer nicht mehr da!" number -128
   else if tVar is 1 then
      error "Benutzer bricht ab" number -128
   else if tVar is 2 then
      error "Benutzer ist nicht sicher!" number -31960
   end if
   -- tVar is 3
   say "Auf Wiedersehen!"
on error errmsg number errnum
   if errnum is not -128 then
      display dialog errmsg
   end if
end try


on mach_meldung()
   try
      set theButtonList to {"Abbruch", "Vielleicht", "Jawoll"}
      set temp to the button returned of (display dialog "Moin" buttons theButtonList default button 3 with icon 1 giving up after 5)
      set theButtonNr to get_replyNr(theButtonList, temp, 0)
   on error errmsg number errnum
      if errnum = (-128) then
         set theButtonNr to 1
      else
         error errmsg number errnum
      end if
   end try
   return theButtonNr
   -- mögl. Ergebnisse: 0 bei gave up oder 1 bei Abbruch oder 2 und 3
end mach_meldung

on get_replyNr(theL, theButton, x)
   repeat with i from 1 to (count items of theL)
      log i
      if theButton is item i of theL then
         set x to i
         exit repeat
      end if
   end repeat
   return x
end get_replyNr

Ob das jetzt genau Dein Problem löst? Aber vielleicht ein Ansatz?

PS: Die Nr 31960 ist willkürlich gewählt! Ich weiß nicht, ob diese Nr. mittlerweile von Apple belegt ist - vor Jahren war das nicht der Fall, ist i.d.R. auch wurscht - nur ich wusste, dass bei -31960 und ff. meine eigenen errmsg kamen ...
_________________
Gruß,
Folker Brandt
=============================
Systemberatung · Datenbanken · Webdesign


Zuletzt bearbeitet von Folker am 22.11.2004 - 16:15, insgesamt einmal bearbeitet
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Folker
•---->
•---->


Anmeldedatum: 11.12.2000
Beiträge: 649
Wohnort: Holsteinische Schweiz

BeitragVerfasst am: 22.11.2004 - 16:07    Titel: Antworten mit Zitat

Nachtrag: Der "gave up" Parameter taucht nur auf, wenn ich ein "giving up after" definiere - brauche ich in der obigen Lösung aber nicht - der "button returned" ist in dem Fall ja leer und mit der Funktion zur gedrückten Button-Nr. erhalten wir in dem Fall eine 0 zurück - also nix gedrückt worden ...

Ach ja, und das Verschachteln kannst Du demonstrieren/simulieren indem Du die Zeile:

      error "Programmcrash der übelsten Sorte" number 1


im Handler "mach_meldung() in die Zeile vor on error errmsg number errnum setzt ...

   set theButtonNr to get_replyNr(theButtonList, temp, 0)
      error "Programmcrash der übelsten Sorte" number 1
   on error errmsg number errnum
      if errnum = (-128) then
   


Ja, und das wichtigste zum Schluss (hätte das nicht an den Anfang gehört?) Wenn wir den Button Abbruch z.B. Stoppen! nennen, dann braucht es im "mach_meldung()" Handler nicht die Frage nach errnum -128 - AS hat da nämlich so manches vorkonfiguriert, also ein Knopf im deutschen mit Abbruch generiert den Fehler "User cancelled" (ebenso wie "Cancel") - aber mit Interface Guidelines ist es natürlich eleganter - man muss es nur wissen ... Wink
_________________
Gruß,
Folker Brandt
=============================
Systemberatung · Datenbanken · Webdesign
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Folker
•---->
•---->


Anmeldedatum: 11.12.2000
Beiträge: 649
Wohnort: Holsteinische Schweiz

BeitragVerfasst am: 22.11.2004 - 18:39    Titel: Antworten mit Zitat

Gerade nochmal durchgelesen - da ist mir noch einer durchgerutscht:

Bei

on get_replyNr(theL, theButton, x)
   repeat with i from 1 to (count items of theL)
      log i
      if theButton is item i of theL then
         set x to i
         exit repeat
      end if
   end repeat
   return x
end get_replyNr


darf das "log i" rausgenommen werden - ich brauchte das nur, um im Event-Protokoll die Variable i auszulesen - das hilft im Übrigen bei der Script-Programmierung enorm, sich Inhalte von Variablen "loggen" zu lassen - manch Fehler fällt da schnell ins Auge!

Hm, mit dem Code-Formatter ist es wirklich ein Spaß Scriptfragmente zu posten Smile Smile Smile Applaus Juchuu
_________________
Gruß,
Folker Brandt
=============================
Systemberatung · Datenbanken · Webdesign
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
spirigwi
•----->
•----->


Anmeldedatum: 10.07.2003
Beiträge: 1517
Wohnort: Olten-CH

BeitragVerfasst am: 22.11.2004 - 19:46    Titel: Antworten mit Zitat

hier winkt einer freundlich

Edit, da sonst nichts substanzielles darin 25.1.07
_________________
 Skript-Fan => ein � -Fan =>Scr¿¿-KongFuSius_Kurpfusius


Zuletzt bearbeitet von spirigwi am 25.01.2007 - 23:04, insgesamt 2-mal bearbeitet
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden AIM-Name
Folker
•---->
•---->


Anmeldedatum: 11.12.2000
Beiträge: 649
Wohnort: Holsteinische Schweiz

BeitragVerfasst am: 22.11.2004 - 20:01    Titel: Antworten mit Zitat

Hallo Willy,

also vermute ich mal, dass Du noch mit einem OS vor X unterwegs bist - right? Denn Apple's ScriptEditor (Vers. 2.0 v43) beherrscht Suchen und Ersetzen und Alles Ersetzen usw. Smile

Der Kompilierfehler wg. zu langer Zeile taucht bei mir nicht auf - geht wie 'ne 1, habe ich extra ausprobiert. Ich werde mich bemühen, zu lange Zeilen sauber zu umbrechen Wink

Ja, die Nomenklatur von Handlern und Variablen ist eine über lange Jahre gewachsene Geschichte - werde den div. Editoren-Herstellern für Suchen/Ersetzen Features danken Cool

Weißt - ich sitze als "Exot" in einer 4ma mit lauter Kreativen um mich herum. Die stehen dann öfter mal mit ausgedruckten "Farbklecksen" vor mir und sind begierig zu erfahren, wie ihre neueste Komposition auf den Betrachter wirkt - wenn ich sage, wie ein bunter Farbklecks aber ganz nett, sind die meist etwas weniger freundlich Twisted Evil - will sagen, was andere mit Photoshop und Konsorten in die Dateien zaubern, da steh ich mit offenem Mund daneben und frage mich, wie kommen die auf so etwas Very Happy
_________________
Gruß,
Folker Brandt
=============================
Systemberatung · Datenbanken · Webdesign
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
spirigwi
•----->
•----->


Anmeldedatum: 10.07.2003
Beiträge: 1517
Wohnort: Olten-CH

BeitragVerfasst am: 22.11.2004 - 20:08    Titel: Antworten mit Zitat

EDIT betr.OS9:
Noch auf OSX - CLASSIC kann man "now-menu", ein Kontrollfeld-Programm, einrichten und dann Tastatur-kürzel einfach neben einen Menupunkt setzen und damit "verewigen". Könnt Ihr das mit OS >9?
_________________
 Skript-Fan => ein � -Fan =>Scr¿¿-KongFuSius_Kurpfusius


Zuletzt bearbeitet von spirigwi am 25.01.2007 - 23:08, insgesamt einmal bearbeitet
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden AIM-Name
Folker
•---->
•---->


Anmeldedatum: 11.12.2000
Beiträge: 649
Wohnort: Holsteinische Schweiz

BeitragVerfasst am: 22.11.2004 - 21:05    Titel: Antworten mit Zitat

Zitat:
Könnt Ihr das mit OS über 9?


Äh, ehrlich, ich weiß es net Confused Habe ich auch unter OS 7,8,9 nicht genutzt, wobei ich gerade OS X in Bezug auf Tastaturkürzel als besser empfinde als die "alten" Mac OSs. Dazu muss ich aber auch sagen, dass z.Zt. der Umbruch in unserer Agentur stattfindet, also von OS 9 auf X. Und ich bin SAUFROH endlich das 9er loszuwerden (bin selbst jetzt seit 10.1.3 - seit Question Jahren nahezu nur noch auf X unterwegs)! Wenn ich mal kurz an die zugegebenermaßen schwer malträtierten Kisten (die Kreativen "doktorn" mal gerne an x00 MB PhotoShop-Dateien 'rum) herangehe, friert mir die Kiste bei jedem 2. mal ein - muss an meiner Ausstrahlung liegen Razz

Aber ja, unter 9 gibt es nahezu nix besseres als Smile. War immer mein bevorzugter Editor. Unter X war das Scripten dann anfänglich nicht so prickelnd, vieles ging nicht, anderes wirkte buggy. Da habe ich lange Zeit AS etwas weniger betrieben (etwas mehr mit Unix auseinandergesetzt), aber mittlerweile läuft es unter X klasse und vor allem schnell. Und wo ich so lange ausgesetzt habe und ja eigentlich auch wieder "Anfänger" bin Rolling Eyes , reicht mir Apples Editor vollauf - ich finde es im Gegenteil sehr angenehm, dass der Editor nicht so viiiiel bietet wie Smile - lässt mir mehr Konzentration für die Aufgaben. Außerdem finde ich die gleiche Umgebung auf den anderen Agentur-Rechnern direkt nach der OS-Installation vor und muss nicht Sorge tragen, dass diese oder jene Scripting Addition wirklich installiert wurde bzw. mit den Rechten des Praktikanten auch ausgeführt werden darf . Wink
_________________
Gruß,
Folker Brandt
=============================
Systemberatung · Datenbanken · Webdesign
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
spirigwi
•----->
•----->


Anmeldedatum: 10.07.2003
Beiträge: 1517
Wohnort: Olten-CH

BeitragVerfasst am: 22.11.2004 - 21:11    Titel: Antworten mit Zitat

EDIT Embarassed war viel zu lange
_________________
 Skript-Fan => ein � -Fan =>Scr¿¿-KongFuSius_Kurpfusius


Zuletzt bearbeitet von spirigwi am 25.01.2007 - 23:09, insgesamt einmal bearbeitet
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden AIM-Name
spirigwi
•----->
•----->


Anmeldedatum: 10.07.2003
Beiträge: 1517
Wohnort: Olten-CH

BeitragVerfasst am: 22.11.2004 - 22:10    Titel: Antworten mit Zitat

EDIT Embarassed war viel zu lange
_________________
 Skript-Fan => ein � -Fan =>Scr¿¿-KongFuSius_Kurpfusius


Zuletzt bearbeitet von spirigwi am 25.01.2007 - 23:10, insgesamt einmal bearbeitet
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden AIM-Name
Folker
•---->
•---->


Anmeldedatum: 11.12.2000
Beiträge: 649
Wohnort: Holsteinische Schweiz

BeitragVerfasst am: 22.11.2004 - 22:14    Titel: Antworten mit Zitat

Hallo Willy,

obacht! Niemals aus "leichtfertigen" Gründen "error" nutzen. Error bedeutet Fehler (wobei die Definition natürlich Auslegungssache bleibt Wink ) - und im Hinblick auf die Verständlichkeit eines Scriptes sollte "error" einen Fehler kennzeichnen. Wenn ich heute meine ersten Scriptexperiemente sichte, ist mir heute vieles unverständlich. Auch Dritte sollen diese Scripte vielleicht in Jahren lesen und verstehen können.

Fehlernummern: Je kürzer, je besser! Aber nach Möglichkeit an Apples "Vorrat" ausrichten - also ein "gave up" kann in bestimmten Situationen als "User cancelled" gedeutet werden ("Wollen Sie Ihre Festplatte löschen?" buttons {"Abbruch", "Ja Sofort!"} - also immer gerne die -128 auch ohne das irgend Einer auf Abbruch klickt. Eigene Nummern habe ich, wie schon gesagt, auf alle Nummern > 31960 gelegt (dürfen ja auch positiv sein). Diese waren zu der Zeit frei, d.h. Apple benutzte diese Nummern nicht. Dann kann ich schon zur Laufzeit anhand der Nummer erkennen, ob ein "artfremdes" Problem besteht oder ob ein kalkuliertes Risiko wie berechnet auftaucht (und vor allem welches! und wo! im Script)

Der ScriptEditor rennt Scripte mit Befehl-R auf jeden Fall los! Dann gibt es im Fenster auf Wunsch auch noch die Tool-Bar mit Button "Ausführen". Und das Kontext-Menü im Script-Fenster ist ein absoluter Hit ...

Doch icon beeinflussen geht latürnich! icon 0, 1, 2 - (stop/note/caution) - weiter können installiert sein - in OS 9 hilft ResEdit zum nachgucken im System, welche icons (mit welchen Nummern) als Resource vorhanden sind.

Deine Lektion 2 - sehe gerade, Du bist mir zuvor gekommen, naja dieser Text hier ist ja lang genug Razz
_________________
Gruß,
Folker Brandt
=============================
Systemberatung · Datenbanken · Webdesign
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Folker
•---->
•---->


Anmeldedatum: 11.12.2000
Beiträge: 649
Wohnort: Holsteinische Schweiz

BeitragVerfasst am: 22.11.2004 - 22:24    Titel: Antworten mit Zitat

Lektion 2 - da ist noch ein Bug!

on error errmsg number errnum
   if errnum = (-128) then
      set theButtonNr to 1
   else
      error errmsg & " Error Number ist: " & errnum number errnum
   end if
end try


So würde ich es lieber scripten:

   error "aaaaaaaaaaaaaaaa ist keine Variable!" number -31960
on error errmsg number errnum
   if errnum = (-128) then
      set theButtonNr to 1
   else
      set errmsg to (errmsg & " Error Number ist: " & (errnum as string))
      (* wobei, falls wir den folgenden Aufruf "error" an die ¬
      nächsthöhere Ebene eines try on error "weiterspielen", ¬
      das zusammenrechnen "(errmsg & " Error Number ist: " & (errnum as string))" ¬
      nicht hier im Script machen müssen - das bleibt der obersten Ebene ¬
      des Scripts vorbehalten ...
*)
      error errmsg number errnum
   end if
end try
return theButtonNr

_________________
Gruß,
Folker Brandt
=============================
Systemberatung · Datenbanken · Webdesign
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
spirigwi
•----->
•----->


Anmeldedatum: 10.07.2003
Beiträge: 1517
Wohnort: Olten-CH

BeitragVerfasst am: 23.11.2004 - 15:18    Titel: Antworten mit Zitat

EDIT 21.1.07 um ASSER nicht unnötig zu belasten lasse ich:
Smile Rolling Eyes Idea
Danke Folker, hier mal die "LANGFASSUNG" von LEKTION 3

"Ich Kurpfuscher!!!!!!!! gottseidank existiert kein smili darüber "
_________________
 Skript-Fan => ein � -Fan =>Scr¿¿-KongFuSius_Kurpfusius


Zuletzt bearbeitet von spirigwi am 21.01.2007 - 15:08, insgesamt 4-mal bearbeitet
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden AIM-Name
Beiträge der letzten Zeit anzeigen:   
Dieses Forum ist gesperrt, du kannst keine Beiträge editieren, schreiben oder beantworten.   Dieses Thema ist gesperrt, du kannst keine Beiträge editieren oder beantworten.    Fischer-Bayern.de Foren-Übersicht -> AppleScript-Forum Alle Zeiten sind GMT + 2 Stunden
Gehe zu Seite 1, 2  Weiter
Seite 1 von 2

 
Gehe zu:  
Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.


Powered by phpBB © 2001, 2002 phpBB Group
Deutsche Übersetzung von phpBB.de


AppleScript für absolute Starter