hilfdirselbst.ch
Facebook Twitter gamper-media
Mac OS X enthält verschiedene integrierte Werkzeuge und Technologien, mit denen sich gängige Aufgaben schnell und einfach automatisieren lassen.
Hans Haesler  M  p
Beiträge: 5414
13. Okt 2003, 16:28
Beitrag #1 von 2
Bewertung:
(700 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen

abfrage in eine einzige if then-schleife packen


hans-gerd classen wollte wissen: kann man die abfrage in eine einzige if then-schleife packen?
- - - - -
if (aFile as string) contains "4c" then
tell application "Adobe Photoshop 7.0" to do script "farbe"
end if
if (aFile as string) does not contain "4c" then
tell application "Adobe Photoshop 7.0" to do script "sw"
end if
- - - - -

Ja, man kann:
---
if (aFile as string) contains "4c" then
  tell application "Adobe Photoshop 7.0" to do script "farbe"
else
  tell application "Adobe Photoshop 7.0" to do script "sw"
end if
---
Das Wort 'else' (= sonst) wird immer bei "entweder/oder"-Fällen eingesetzt. Das bedeutet, dass ein Script ausgeführt wird, auch wenn das zweite Kriterium (hier "sw") nicht im Namen steht.

Wenn man deshalb auf sicher gehen will und drei Fälle abdecken will (oder auch, wenn mehr als zwei Dinge zur Auswahl stehen) schreibt man:
---
if (aFile as string) contains "4c" then
  tell application "Adobe Photoshop 7.0" to do script "farbe"
else if (aFile as string) contains "sw" then
  tell application "Adobe Photoshop 7.0" to do script "sw"
else
  display dialog "Datei " & (name of (info for file aFile)) ":
Weder schwarzweiß noch farbig."
end if
---

Wenn die Tests einzeln mit 'if-end if' eingepackt sind, muss dass Script alle ausführen, auch wenn längst schon eine Übereinstimmung gefunden worden ist.

Mit einer 'else-if'-Konstruktion kann man beliebig viele Tests zusammenketten. Das Script geht sie der Reihe nach durch, und steigt aus, sobald eine Übereinstimmung gefunden wurde. Man tut deshalb gut daran, die Tests nach zu erwartender Häufigkeit zu ordnen. Damit kann man den Ablauf nochmals beschleunigen.

Am Ende sollte man immer mit einem 'else' jene Fälle abdecken, welche nicht auf eine genannte Bedingung zutreffen.

Hans Haesler <hsa@ringier.ch> Top
 
X
Anonym
Beiträge: 22827
13. Okt 2003, 18:22
Beitrag #2 von 2
Beitrag ID: #418350
Bewertung:
(699 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen

abfrage in eine einzige if then-schleife packen


hallo hans!

ich hatte auch mit else "hantiert", aber wiedermal nicht die richtige syntax gefunden &#133;

durch die ausfuehrungen bin ich aber jetzt mehr im bilde als wenn es bei mir schon geklappt haette!

cu

hans-gerd
als Antwort auf: [#418349] Top