• Es ist bereits Apfeltalk-Tradition und wir möchten sie auch in diesem Jahr fortsetzen: Unser Apfeltalk-Weihnachtslogo-Wettbewerb hat begonnen! Gestaltet für uns das Weihnachtsbanner, das im Monat Dezember bis zum Weihnachtsfest unsere Webseite schmücken soll. Lasst Eurer Kreativität freien Lauf! Hier geht es zum Wettbewerb --> Klick
  • November - das bedeutet oftmals Herbstblues, grauer Himmel, Tristesse und Wetter, bei dem man gern im Warmen bleibt. Aber nur oftmals! Wir fordern Euch gern auf, gegen den Herbstblues anzukämpfen und hoffen, dabei hilft Euch unser aktuelles Monatsthema. Neugierig geworden? --> Zum Mitmachen bitte hier klicken

Ich habe ein Verständnisproblem mit Klassen, Coercion und dem Auslesen von Dateien aus Listen...

mi.k

Erdapfel
Registriert
12.02.15
Beiträge
2
Ich habe ein Script, bei dem Dateien eingelesen werden:

Entweder ein ganzer Folder:

set theFolder to choose folder-- ergibt alias

oder einzelne Files:

set allFiles to (choose file with multiple selections allowed) -- ergibt liste mit aliases

Wenn ich einen Folder habe, kann ich einfach die Dateien nach Typ sortieren:

tell application "Finder"
set theLabeledJPGs to every file of theFolder whose (name extension is "jpg" and the label index is not equal to 0) -- ergibt liste mit document files

Wenn ich aber mit

set allFiles to (entire contents of theFolder) -- ergibt liste mit document files

eine Liste erstelle, kann ich nicht mit z.B.

set theLabeledJPGs to every item of allFiles whose (name extension is "jpg" and the label index is not equal to 0)

die Dateien nicht auswerten. Ich könnte jetzt eine Schleife nutzen aber
meine Frage bezieht sich auf das "Warum" es nicht geht und ich wäre dankbar für eine Erklärung.

Ich stehe gerade auf dem Schlauch...

Danke

mik
 
So geht's:

set allFiles to a reference to entire contents of theFolder

Das dürfte daran liegen, dass entire contents eine Property ist (erkennbar an der violetten Farbe). Auf macscripter.net gibt's einen Haufen Beiträge zum Thema reference objects und properties
 
Hallo,

in AppleScript ist es nicht möglich, Listen mit every ...whose zu durchsuchen.

Gruß
 
@Pill: set allFiles to entire contents of theFolder funktioniert ja, aber Danke.

@sedna: Dankeschön, das ist es und hat mir geholfen!

Ich habe nach Deinem Posting in Applescript 1-2-3 auch den schönen Satz gefunden: "The most widely bemoaned omission in the current version of AppleScript is the inability to use the filter reference form with AppleScript lists. AppleScript lists simply don’t support whose clauses."

Gruß
mik