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.
Goar S
Beiträge: 317
14. Mai 2003, 11:23
Beitrag #1 von 7
Bewertung:
(1269 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen

zur Auflistung eines Ordnerinhaltes


Um vorbereitete XPress-Marken-Dateien später in XPress-Dokumente einzuladen, möchte ich die Pfade dieser Dateien in eine Liste speichern.
Das Skript (Ausschnitt) beginnt so:

global ordXT -- Pfad zum Ordner der Importdateien
-- Ordner auswählen, in dem sich der ganze Job abspielt
set dblPath to choose folder with prompt "Bitte Ordner für Dbl-Aufbereitung wählen:"
set ordXT to (dblPath & "XTagsDaten:") as string -- hier liegen die konvertierten Dateien
set xtagsListe to every file of ordXT

Dann kommt die Fehlermeldung, dass er nicht jedes File aus (hier wird der korrekt zusammengesetzte Pfad aus der vorherigen Skriptzeile angezeigt) erhalten kann.

Im Kochbuch fand ich den Hinweis auf einige nützliche Funktionen der Skripterweiterung File Commands und versuchte es damit. Die drei Skriptzeilen lauten dann:

 set dblPath to choose folder with prompt "Bitte Ordner für Dbl-Aufbereitung wählen:"
 set ordXT to (dblPath & "XTagsDaten:") as string -- hier liegen die konvertierten Dateien
 set xtagsListe to list folder ordXT

Dann kommt aber die Fehlermeldung, Can’t make (korrekter Pfadname) into a item. Das konnte er aber an einem anderen Rechner (OS 8.6, AS 1.3.7).

Da habe ich doch sicher irgend etwas Grundsätzliches nicht richtig gemacht.

Gibt es Tricks, wie man hinter die Ursachen solcher Fehlermeldungen kommt? (Falls ja, wäre das eher was für einen separaten Beitrag) Dass das Resultat nicht im gewünschten Typ angezeigt werden kann, wird ja auch immer gerne genommen. Als Anfänger stehe ich da immer/meistens wie der Ochs am Berg, das ist sehr frustig.


Etwas später im selben Film:

Vermutlich ist es ein Pfad-Problem , wenn nämlich bei

  save document 1 in pdocName
  close document pdocName saving no

das Sichern tadellos klappt, beim Schließen aber das Dokument nicht gefunden wird (Can’t get document…). Aber wo liegt der Hund begraben? Top
 
X
Anonym
Beiträge: 22827
14. Mai 2003, 13:23
Beitrag #2 von 7
Beitrag ID: #418127
Bewertung:
(1268 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen

zur Auflistung eines Ordnerinhaltes


Hi Goar,

versuchs mal mit dem Zusatz "as string", da die Liste "Aliasse" enthält und nicht den Pfad als string.

happy filemaking

Armin
als Antwort auf: [#418126] Top
 
Hans Haesler  M  p
Beiträge: 5414
14. Mai 2003, 22:36
Beitrag #3 von 7
Beitrag ID: #418128
Bewertung:
(1268 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen

zur Auflistung eines Ordnerinhaltes


Hallo Goar,

mit dem Befehl 'choose folder' wird der Anwqender aufgefordert, den Ordner mit den XPress-Tags-Dateien zu lokalisieren.
Die Fehlermeldung zeigt den vermeintlich korrekten Pfad. Aber wenn Du genau hinschaust, dann ist der Ordner-Name
"XTagsDaten" zweimal im Pfad vorhanden. Einmal, weil der Anwender ihn ausgewählt hat und ein zweites Mal weil Du ihn
im Script an den Pfad anhängst. Die zweite Zeile ist demnach überflüssig.

Eine weitere Bemerkung: der Befehl 'list folder' listet alle Dateien auf. Auch die unsichtbaren wie das Icon des Ordners.
Damit das Resultat nicht so...
{"datei_1.xtg", "datei_2.xtg", "Icon
"}
... sondern so lautet...
Code
{"datei_1.xtg", "datei_2.xtg"}

... muss der Zusatz 'without invisibles' angefügt werden:
---
set ordXT to choose folder with prompt "Bitte Ordner für Dbl-Aufbereitung wählen:"
set xtagsListe to list folder ordXT without invisibles
---

Deine Schlussfolgerung, dass es am Pfad liegen muss, ist korrekt. Das Problem ist aber, dass nur beim Sichern der komplette
Pfad benötigt wird. Beim Schliessen aber nur der Name des Dokuments. Der Einfachheit halber kann man ihn aber auch
durch den Index ersetzen. Dabei ist mit 'document 1' immer das aktive, vorderste Dokument gemeint, egal wie es heisst:
---
tell application "QuarkXPress 4.11"
  save document 1 in pdocName
  close document 1 saving no
end
---
Das 'saving no' ist nur notwendig, wenn die Version nicht übereinstimmt: wenn ein 3.32-Dokument mit QXP 4.11 geöffnet wird
und ohne Versionswechsel gesichert wird.

Hans Haesler, hsa@ringier.ch
als Antwort auf: [#418126] Top
 
Goar S
Beiträge: 317
15. Mai 2003, 10:02
Beitrag #4 von 7
Beitrag ID: #418129
Bewertung:
(1268 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen

zur Auflistung eines Ordnerinhaltes


Hallo Hans,

jetzt sind wir doch noch nicht fertig mit dieser Etappe.

Vorausgeschickt: Das gesamte Skript (nach den ersten drei o.g. Zeilen folgen noch 5 Handler) funktionierte auf meinem Heimrechner (OS8.6, AS1.3.7) einwandfrei! Jetzt versuche ich das Skript auf meinem Bürorechner (OS9.2.2, AS1.6) zum Laufen zu kriegen und bleibe an der dritten Zeile hängen
---
set dblPath to choose folder with prompt "Bitte Ordner für Dbl-Aufbereitung wählen:"
set ordXT to (dblPath & "XTagsDaten:") as string -- hier liegen die konvertierten Dateien
set xtagsListe to list folder ordXT
---

Mit 'choose folder' soll der !übergeordnete! Ordner ausgewählt werden; er enthält u.a. den Unterordner 'XTagsDaten' mit den automatisch aufbereiteten XPress-Marken-Dateien, außerdem noch Ablageordner für die fertigen XPress-Dokumente (jeweils getrennt für deutsch und englisch) und Ablageordner für daraus erzeugte ps-Dateien.
TricAS
- ps_Dbl_d
- ps_Dbl_e
- XP_Dbl_d
- XP_Dbl_e
- XTagsDaten
Die Ermittlung des Hauptpfades und spätere Ergänzung der teils automatisch erzeugten Namen der jeweils benötigten Unterordner schien mir die einfachste Lösung.
Zur Kontrolle habe ich das Ergebnis aus
---
 set dblPath to choose folder with prompt "Bitte Ordner für Dbl-Aufbereitung wählen:"
 set ordXT to (dblPath & "XTagsDaten:") as string -- hier liegen die konvertierten Dateien
Code
aus dem Eventprotokoll in TexEdit kopiert und als Gegenprobe mit

 set dblPath to choose folder with prompt "Bitte Ordner für Dbl-Aufbereitung wählen:"
---
direkt den Unterordner ausgewählt. Den dabei erhaltenen Pfad habe ich zu dem ersten in TexEdit kopiert und beide Pfade genau untereinander gestellt: Sie waren absolut identisch. Ich habe jetzt gezählt, dass es sich um neun (9) Ordnerebenen handelt. Ist das vielleicht zu viel? Eine Gegenprobe ergab, dass auch bei vier Ebenen keine Besserung eintritt.

Unter AS 1.3.7 hatte ich 'set xtagsListe to every file of ordXT' nicht zum Laufen bekommen und bin auf 'list folder' ausgewichen, auch wenn da die unsichtbaren Dateien mit gelistet werden. Damit hatte ich mich auch befasst, finde jetzt aber im Skript nichts diesbezügliches wieder, es hat aber auch nicht gestört.
Code
set xtagsListe to list folder ordXT

führt nach wie vor zu der Meldung 'Can’t make (Pfad) into a item', egal, ob die Skript-Erweiterung 'File Commands' im Systemordner liegt oder nicht (Sind die Funktionen dieser Erweiterung inzwischen alle 'ins System' übernommen?)
Code
set xtagsListe to every file of ordXT

bringt die Meldung 'Can't get every file of (Pfad)'

Die beiden Zeilen
---
 set ordXT to (dblPath & "XTagsDaten:") as string -- hier liegen die konvertierten Dateien
 set xtagsListe to every file of ordXT
---
habe ich mit allen möglichen Varianten von 'as alias' und 'as string' getestet (da bin ich manchmal nicht so sicher in der Verwendung), aber das hat mich auch nicht weiter gebracht.
Jetzt suche ich mir bald ein Handtuch zum Werfen.

Habe ich vielleicht beim Löschen von AS1.7 oder bei der Installation von AS 1.6 etwas übersehen? Muss noch eine Datei entfernt/ergänzt werden?

In den Skripterweiterungen liegen aktuell:
AirPort Scripting
Desktop Printer Manager
FileSharing Commands
Keyboard Addition
MonitorDepth
Network Setup Scripting
Schlüsselbund Scripting
Sound Scripting
Standard Additions
URL Access Scripting
(File Commands habe ich gerade mal entfernt)

In den Systemerweiterungen:
AppleScript - D1-1.6
AppleScriptLib - 1.1, von 1994

Gibt es sonst noch etwas?
als Antwort auf: [#418126] Top
 
Hans Haesler  M  p
Beiträge: 5414
15. Mai 2003, 11:19
Beitrag #5 von 7
Beitrag ID: #418130
Bewertung:
(1268 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen

zur Auflistung eines Ordnerinhaltes


Hallo Goar,

das kriegen wir schon hin! Sorry, ich hatte vorher nicht kapiert, dass der übergeordnete Ordner gewählt werden muss.

Ich habe hier ein Mac OS 9.2.1 (mit AS 1.6) und Deine drei Zeilen funktionieren problemlos.

Kleine Korrektur (macht allerdings keinen Unterschied von wegen Funktionieren oder Nichtfunktionieren): ich würde die
Umwandlung des Hauptpfades in einen String in der ersten Zeile vornehmen. Der Grund: so geschieht es nur einmal (und
nicht bei jedem Unterordner) und ist "sauberer" als das Zusammenfügen von einem Alias und einem String.
---
set dblPath to (choose folder with prompt "Bitte Ordner für Dbl-Aufbereitung wählen:") as string
set ordXT to (dblPath & "XTagsDaten:") -- hier liegen die konvertierten Dateien
set xtagsListe to list folder ordXT without invisibles
---
Die Option 'without invisibles' würde ich einsetzen.

Die Scripting Addition "File Commands" ist in die "Standard Additions" integriert worden. Unter Mac OS 9.2.2 sollte
die Datei "File Commands" also nicht mehr vorhanden sein.

Wenn nach dem Installieren des Mac OS die schlimme AppleScript-Version 1.7 vorhanden ist, dann muss diese nicht komplett
gelöscht werden. Zum Downgrade auf Version 1.6 müssen nur zwei Dateien ausgetauscht werden: die Systemerweiterung
"AppleScript" und die Scripting Addition "Standard Additions".

Erstere befindet sich im Ordner Systemerweiterungen, letztere im Ordner Scripting Additions. Bei beiden kann die Version
abgefragt werden: Icon auswählen, Befehl-I und im Informations-Fenster die Versions-Nummer kontrollieren.

Nun: steht bei beiden "D1-1.6" ?

Hans Haesler, hsa@ringier.ch
als Antwort auf: [#418126] Top
 
Goar S
Beiträge: 317
16. Mai 2003, 09:29
Beitrag #6 von 7
Beitrag ID: #418131
Bewertung:
(1268 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen

zur Auflistung eines Ordnerinhaltes


Hallo Hans,

da fühlte ich mich richtig an die Hand genommen!
Es WAREN die Standard Additions.

Deine Ergänzungen in den drei Skriptzeilen habe ich umgesetzt.
Das ganze Skript lief sofort sauber durch mit 5 Handlern:
- Sprache identifizieren (Kennung im Namen der XT-Datei)
- entsprechendes XP-Formular öffnen
- gleich unter richtigem Namen in den richtigen Ablageordner speichern
- Text importieren
- Datei schließen (mit Sichern)
Und das als Schleife mit allen Dateien der o.g. Liste.

Super, vielen Dank
Goar
als Antwort auf: [#418126] Top
 
Hans Haesler  M  p
Beiträge: 5414
16. Mai 2003, 11:27
Beitrag #7 von 7
Beitrag ID: #418132
Bewertung:
(1268 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen

zur Auflistung eines Ordnerinhaltes


Hallo Goar,

bitte sehr. Schön zu hören, dass es nun funktioniert. Ich nehme an, dass Du das Handtuch
wieder im Schrank versorgt hast...

Hans Haesler, hsa@ringier.ch
als Antwort auf: [#418126] Top
 
X