Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
Daniel •->

Anmeldedatum: 09.04.2001 Beiträge: 7
|
Verfasst am: 09.04.2001 - 14:52 Titel: Optimierung von AppleScripten |
|
|
Hallo,
ich lese eine Textdatei zeilenweise ein
und fuehre die darinstehenden Kommandos
dann in QuarkXPress aus.
Das ist ziemlich langsam.
Nur weiss ich nicht, was genau daran so langsam
ist. Das Einlesen der Zeilen sihet eigentlich recht fix aus, aber warum ist der Zugriff auf Quark so langsam ? Gibt es irgendeine Moeglichkeit dieses
schneller zu machen ?
Danke
Daniel |
|
Nach oben |
|
 |
Folker •---->


Anmeldedatum: 11.12.2000 Beiträge: 649 Wohnort: Holsteinische Schweiz
|
Verfasst am: 10.04.2001 - 12:35 Titel: Optimierung von AppleScripten |
|
|
Hallo Daniel,
um Dir zu helfen, sind die Angaben zu dünn. Was für Befehle (aus der Textdatei??) führst Du in QXP aus? Klar, QXP ist ein Layout-Programm und nicht auf Geschwindigkeit getrimmt wie z.B. eine Datenbank. Aber via AppleScript kann ich Inhalte in QXP immer noch schneller als unser Schriftsetzer per Hand aufbauen ;)
Vielleicht ein bißchen mehr Infos.
Gruß
Folker _________________ Gruß,
Folker Brandt
=============================
Systemberatung · Datenbanken · Webdesign |
|
Nach oben |
|
 |
Daniel •->

Anmeldedatum: 09.04.2001 Beiträge: 7
|
Verfasst am: 10.04.2001 - 12:45 Titel: Optimierung von AppleScripten |
|
|
Naja,
in der Textdatei steht z.B.
TEXT
1
name
inhalt
Dann liesst das AppleScript den Befehl 'TEXT' und weiss, dass es weitere 3 Zeilen einlesen muss.
In der ersten steht dann die Seitennummer, dann kommt der Box-Name und dann der Inhalt.
Das habe ich auch fuer Bilder gemacht, ich kann Seiten loeschen, anlegen. Bilder skaliert propoartional, etc einfuegen.
Also eben alle moegelichen Befehle.
Du startest das Script und es setzt diese Anweisungen um.
Aber das dauert ewig lansam. Es ist zwar schneller, als per Hand, sonst haette ich es ja nicht geschrieben,aber schnell kann man das ganze auch nicht nennen.
Tschuess
Daniel |
|
Nach oben |
|
 |
Folker •---->


Anmeldedatum: 11.12.2000 Beiträge: 649 Wohnort: Holsteinische Schweiz
|
Verfasst am: 10.04.2001 - 16:02 Titel: Optimierung von AppleScripten |
|
|
Hallo Daniel,
ich bin von Deinem Weg nicht 100% überzeugt. Du versuchst, neben QXP's Möglichkeit Texte mit spez. QXP-Import-Tags zu importieren und den AppleScript eigenen Möglichkeiten (z.B. Script-Libraries, Objekteigenschaften), eine eigene Kraft ins Spiel zu bringen - denn wenn Du über einen Begriff "TEXT" in einer TEXT-DATEI QXP anweist etwas zu tun, ja dann benötigst Du doch für jedes andere Dateiformat (Bilddatei?) eine Art Preferences-Datei? Ist das nicht zu aufwändig? Wäre das nicht Aufgabe einer Datenbank?
Das alleine kann in dem Einen, von Dir gelieferten Beispiel, eigentlich nicht für wirklich schlechte Performance sorgen - zumindest wenn die Handler zum Einlesen des Texts und zum Parsen der Inhalte schnell sind.
QXP ist natürlich langsamer als ein Texteditor - allerdings sind via AppleScript auf einem G3 in 1 Std. durchaus auch weit über 100 Seiten mit komplett formatiertem Text & Bildern zu füllen (das hängt natürlich auch v. Aufwand einer Bearbeitung ab).
Auch bietet QXP selbst einige Optimierungstricks, z.B. über 'do script'. Wichtig ist es, ein Update der Bildschirmdarstellung während eines Prozesses möglichst zu unterbinden. _________________ Gruß,
Folker Brandt
=============================
Systemberatung · Datenbanken · Webdesign |
|
Nach oben |
|
 |
Daniel •->

Anmeldedatum: 09.04.2001 Beiträge: 7
|
Verfasst am: 10.04.2001 - 16:32 Titel: Optimierung von AppleScripten |
|
|
Hi,
> ich bin von Deinem Weg nicht 100% überzeugt.
Naja, sag mir einen anderen.
Ich habe alle Daten in einer DB
und kann programmieren.
Z.Z. braucht das Script etwa fuer 12 Seiten (ca. 100 Bilder, 200 Texte, die mit StyleSheets formatiert werden) 20 Minuten (auf einem G3-300/MacOS 8.6).
Da ich aber so 50-60 Stueck davonmachen muss, ist jede Minute Geld.
Auf einem G4-400/MacOS9 dauert es etwa 14 Minuten, also wird demnaechst so ein Teil angeschafft.
Aber vielleicht schaffe ich es ja das Script an sich noch zu beschleunigen.
> Du versuchst, neben QXP's Möglichkeit Texte
> mit spez. QXP-Import-Tags zu importieren und
Das bringt mir nichts. Hatten wir am Anfang so gemacht, dass ich QXTs erzeuge und die per Hand einlade. Da hat man dann im Vorfeld mit dem Verknuepfen der Felder viel Arbeit.
> den AppleScript eigenen Möglichkeiten (z.B.
> Script-Libraries, Objekteigenschaften), eine
> eigene Kraft ins Spiel zu bringen - denn wenn Du
> über einen Begriff "TEXT" in einer TEXT-DATEI QXP
Nein, da AppleScript macht schon die ganz normalen Befehle. Beispiel:
<PRE>
tell application Quark XPress
// Zeilenweises Einlesen
..
else if haendl_cmd is "TEXT" then -- -------------- TEXT in eine BOX
set pageNum to (read F before (ASCII character 10)) as number
set boxName to (read F before (ASCII character 10))
set boxContent to (read F before (ASCII character 10))
try
tell document 1
tell page pageNum
tell text box (boxName)
tell story 1
set contents to boxContent
end tell
end tell
end tell
end tell
on error the error_message
beep 5
display dialog "Fehler (TEXT-Befehl): " & error_message
end try
..
end tell
</PRE>
> anweist etwas zu tun, ja dann benötigst Du doch
> für jedes andere Dateiformat (Bilddatei?) eine Art
> Preferences-Datei? Ist das nicht zu aufwändig?
Ichlade nur EPS-Bilder.
> Wäre das nicht Aufgabe einer Datenbank?
Und wie kriege ich Qaurk dazu auf die Datenbank zuzugreifen und sich den Dateinamen, etc darauszu holen ?
> zum Einlesen des Texts und zum Parsen der
> Inhalte schnell sind.
Am laengsten braucht der die Umsetzung in Quark. Ichhabe das Gefuehl, dass das MacOS 8.6 Quark keine Rechenpower zur Verfuegung stellt, weil im Hintergrund eben das Script laeuft.
> Auch bietet QXP selbst einige Optimierungstricks,
> z.B. über 'do script'. Wichtig ist es, ein Update der
was soll 'do script' sein ?
Ist das ein Unterschied, ob ich es als Script ausfuehre oder ueber do script aus einem anderen Script aufrufen lasse ?
Vielleicht sollte ich das mal testen.
> Bildschirmdarstellung während eines Prozesses
> möglichst zu unterbinden.
Die Bildschirmdarstellung steht immer auf 72 dpi,
aber ich kann es mal mit sehr viel weniger probieren. Vielleicht liegt es daran.
Tschuess
Daniel |
|
Nach oben |
|
 |
Folker •---->


Anmeldedatum: 11.12.2000 Beiträge: 649 Wohnort: Holsteinische Schweiz
|
Verfasst am: 10.04.2001 - 18:08 Titel: Optimierung von AppleScripten |
|
|
Hallo,
> Naja, sag mir einen anderen.
Anregung habe ich ja gegeben.
> Ich habe alle Daten in einer DB
Warum dann über Textfiles einlesen???
> und kann programmieren.
Ich nicht, bin nur ein Script-Autor :)
> Z.Z. braucht das Script etwa fuer 12 Seiten (ca. 100 Bilder, 200 Texte, die mit StyleSheets formatiert werden) 20 Minuten (auf einem G3-300/MacOS 8.6).
Ja, kommt auf die Aufwändigkeit und den Inhalt des Dokuments an. Erfahrungsgemäß wird sich ein noch nicht optimiertes Script/Programm aber bis auf einen Wert von 50 - 75 % Zeitaufwand herunterdrücken lassen (In Ausnahmefällen natürlich auch erheblich mehr oder weniger ). Allerdings wird ein Rest an Tempo dann mit erheblichem Programmieraufwand erkauft.
> Da ich aber so 50-60 Stueck davonmachen muss, ist jede Minute Geld.
Große Lösung: Alle auf einmal via AppleScript-Programm und das in der Nacht/ am Wochenende.
> die per Hand einlade.
Die Tags kann man natürlich wunderschön in einer DB berechnen lassen und Texte lassen sich auch via AppleScript in QXP importieren. Allerdings favorisiere ich bei meiner täglichen Arbeit auch Lösungen mit von AppleScript vergebenen Stilvorlagen.
> Verknuepfen der Felder viel Arbeit
Was meinst Du? Die Formelberechnungen in einer DB? Inbetween-Lösungen o.ä.? QXP Text Boxes lassen sich ohne weiteres per AppleScript verbinden.
> über einen Begriff "TEXT" in einer TEXT-DATEI QXP
Wenn nur Textdateien und EPSF kommen, wozu dann noch ein Steuerbefehl Text???
> weil im Hintergrund eben das Script laeuft.
Ja, da kann man manchmal einiges an Zeit gewinnen - da hilft nur der harte Weg "Jons Commands" Scripting Addition beherscht Ticks (1/60 sec), da muß man testen.
> Nein, da AppleScript macht schon die ganz normalen Befehle. Beispiel:
Okay, ich will Dir nicht verschweigen, daß das sicher noch optimaler geht - allerdings reden wir dann v. millisec. Na gut, die Masse machts - aber da will ich jetzt nicht dran drehen, da müssten wir Deinen ganzen workflow durchleuchten. Nur ein Tipp: QXP mag in manchen Situationen nicht richtig auf 'page' reagieren! Besser ist da, von vornherein QXP's eigene Struktur beizubehalten. Seiten sind Objekte eines 'spread(s)', also page 2 of spread 3 usw.
> Und wie kriege ich Qaurk dazu auf die Datenbank zuzugreifen und sich den Dateinamen, etc darauszuholen ?
Das hängt natürlich v.d. verwendeten Datenbank ab. Läuft diese DB auf dem Mac oder holst Du Dir Daten via Abfrage-Tools? FileMaker, Valentina und auch Excel (zähl ich mal zu den DB's) sind z.B. AppleScript-fähig.
> was soll 'do script' sein ?
> Die Bildschirmdarstellung steht immer auf 72 dpi,
Nein, damit war gemeint, daß die Darstellung dessen, was im QXP gerade passiert, unterdrückt wird. Genau dies erreicht man mit dem QXP-Befehl 'do script'. Um das neue Dokument in seiner Gänze zu bewundern gibt es den QXP-Befehl 'update'.
Folker _________________ Gruß,
Folker Brandt
=============================
Systemberatung · Datenbanken · Webdesign |
|
Nach oben |
|
 |
Daniel •->

Anmeldedatum: 09.04.2001 Beiträge: 7
|
Verfasst am: 11.04.2001 - 09:27 Titel: Optimierung von AppleScripten |
|
|
Hi,
> > Ich habe alle Daten in einer DB
> Warum dann über Textfiles einlesen???
Wie kann ich ueber AppleScript eine mySQL-DB ansteuern ?
> Große Lösung: Alle auf einmal via AppleScript-
> Programm und das in der Nacht/ am Wochenende.
Das ist der Trick an der Sache. GEnau das habe ich gemacht. Ich kann alle durchlaufen lassen, falls der Dreck-Mac nicht wieder nach 2 Stunden einpennt, obwohl ich alles auf volle Aktivitaet gestellt habe.
> > Verknuepfen der Felder viel Arbeit
> DB? Inbetween-Lösungen o.ä.? QXP Text Boxes
> lassen sich ohne weiteres per AppleScript
> verbinden.
Da brauche ich laenger fuer das Script, als, wenn ich das per Hand machen wuerde.
> Wenn nur Textdateien und EPSF kommen, wozu
> dann noch ein Steuerbefehl Text???
Weil ich auch neue Seiten anlegen kann, Seiten loeschen, Bilder skaliert/unskaliert/rotiert/etc. einbinden kann, Dokumente speichern, Dokumente oeffnen, Text mit Style-Sheets formatieren, etc.
Und dafuer muss ich eben sagen, was das Script nun machen muss, weil es allgemeingueltig und fuer alles moegliche wiederverwendbar sein soll.
> > weil im Hintergrund eben das Script laeuft.
> Ja, da kann man manchmal einiges an Zeit
> gewinnen - da hilft nur der harte Weg "Jons
> Commands" Scripting Addition beherscht Ticks
> (1/60 sec), da muß man testen.
Web-Adresse ?
> QXP's eigene Struktur beizubehalten. Seiten sind
> Objekte eines 'spread(s)', also page 2 of spread 3 > usw.
Werde ich testen. Ich greife ja bei jedem Befehl neu auch 'page' zu und das kann dann schon sein.
> Das hängt natürlich v.d. verwendeten Datenbank
> ab. Läuft diese DB auf dem Mac oder holst Du Dir
Du scherzt :-> Ich lasse doch keine Server, geschweige den eine DB, auf einem Mac laufen. Ich habe einen Linux-Server mit mySQL-DB.
> Daten via Abfrage-Tools? FileMaker, Valentina und > auch Excel (zähl ich mal zu den DB's) sind z.B.
> AppleScript-fähig.
Er will mich verkohlen
Du nennst Excel eine DB ? Ich bin am Boden zerstört.
> dessen, was im QXP gerade passiert, unterdrückt > wird. Genau dies erreicht man mit dem QXP-
> Befehl 'do script'. Um das neue Dokument in
> seiner Gänze zu bewundern gibt es den QXP-
> Befehl 'update'.
Schaun wir mal. Werde gleich mal ein paar Test mit den neuen Tips durchfuehren und dann meine Erfolge hier preisgeben.
Danke und Tschuess
Daniel |
|
Nach oben |
|
 |
Daniel •->

Anmeldedatum: 09.04.2001 Beiträge: 7
|
Verfasst am: 11.04.2001 - 10:32 Titel: Optimierung von AppleScripten |
|
|
Jawoll !
Der 'do script' Befehl war es.
Vielen Dank.
Ich bin jetzt von 20 Minuten auf 3 Minuten Produktionszeit mit dem selben Script.
Tschuess
Daniel |
|
Nach oben |
|
 |
Folker •---->


Anmeldedatum: 11.12.2000 Beiträge: 649 Wohnort: Holsteinische Schweiz
|
Verfasst am: 11.04.2001 - 12:22 Titel: Optimierung von AppleScripten |
|
|
Hallo Daniel,
freut mich das es nu' wirklich schnell ist! Zu Deinem vorhergehenden Posting aber noch folgendes:
> Wie kann ich ueber AppleScript eine mySQL-DB ansteuern ?
Nein, ich kenne mySQL nur vom Namen her. Da hätten wir uns einiges an Schreiberei sparen können. Ich vermute, die Abfragen werden nicht auf dem Macintosh gemacht oder? Denn mySQL ist meines Wissens auf Apple OS's nur für MacOS X vorhanden, und auch dann nicht AppleScript-fähig oder? Normalerweise bedient man sich in dem Fall mit Unix-Sprachen wie PHP oder Perl - aber das weißt Du sicher besser. Die Text-Dateien werden, ich vermute , von einem anderen System geliefert - und dann erübrigt sich obige Frage.
> 2 Stunden einpennt, obwohl ich alles auf volle Aktivitaet gestellt habe
Ja, ein unangenehmer Effekt, den ich kenne. Bei sehr langen Prozessen neigt AppleScript dazu immer langsamer zu werden. Allerdings sind die einzelnen Prozesse bei Dir ja nicht so lang. Da kann (ich weiß ja immer noch nicht was genau läuftÖ) regelmäßiges speichern der QXP-Docs helfen - und von Zeit zu Zeit ein QXP-Neustart und ein modulares Konzept einzelner Scriptobjecte. Unbenutzte große Variablen - insbesondere die oft unbeachtete vordef. Variable 'result' !! - auf 0 setzen. Übrigens - wenn denn so viele Druckvorlagen generiert werden - da rechnet sich ja fast ein eigener Rechner für den Job.
> Da brauche ich laenger fuer das Script, als, wenn ich das per Hand machen wuerde.
Wie - ich denke es soll möglichst flexibel und wiederverwendbar sein? Da relativiert sich doch die Entwicklungszeit. Ja, und Seiten anlegen, löschen, Bilder Ö - die Parameter dazu müssen nicht zwingend in den jeweiligen Texten stehen. Ich hob da mehr auf eine eigene Preferences-Datei ab. Aber da sind wir wieder beim Workflow Ö
> Web-Adresse ?
http://osaxen.com/
> Werde ich testen. Ich greife ja bei jedem Befehl neu auch 'page' zu und das kann dann schon sein
Nein, der Tipp hatte nix mit dem Tempo zu tun! Da ist schon eher darauf zu achten, mit v. QXP erzeugten Referenzen (aufgrund eines 'make Ö' -Befehls) zu nutzen und immer versuchen alles über den Property 'properties' zu nutzen. Beispiel:
('tell [Ref to Object] to make [Object] at [position] (with data) with properties {the properties}'.
> Du scherzt :-> Ich lasse doch keine Server, geschweige den eine DB
Oh - sorry, aber aus der Fragestellung ging nicht hervor, daß das DB-Projekt schon i.d. Pubertät angekommen ist. Die meisten Mac-User und AppleScripter nutzen den Kinderkram v. FileMaker Inc. usw. weil, um ein Streicholz zu schneiden braucht es keine Säge - da reicht ein Taschenmesser. Nun ja, so richtig Erwachsen ist mySQL ja auch noch nicht (Zitat: "keine foreign key-Prüfung" .
> Du nennst Excel eine DB ? Ich bin am Boden zerstört.
Nun, ich trage nur der Realität in diversen mir bekannten Einrichtungen, insbesondere der öffentlichen Hand, Rechnung. Um Tabellen im weitesten Sinne geht es in beiden Fällen - und wenn der Frager sich die Würmer einzeln aus der Nase ziehen läßt, ist es nicht immer genau zu bestimmen was der Frager kann und möchte. Logische Abfragetechnik ist doch eine der Großen SQL-Stärken, also bitte ;)
Folker _________________ Gruß,
Folker Brandt
=============================
Systemberatung · Datenbanken · Webdesign |
|
Nach oben |
|
 |
Daniel •->

Anmeldedatum: 09.04.2001 Beiträge: 7
|
Verfasst am: 11.04.2001 - 13:23 Titel: Optimierung von AppleScripten |
|
|
> freut mich das es nu' wirklich schnell ist! Zu
Und mich erst. Produktionszeit auf 15% verkuerzt. Das wird meinen Chef freuen :-)
> oder? Normalerweise bedient man sich in dem Fall > mit Unix-Sprachen wie PHP oder Perl - aber das
Exakt. Die Textdatei wird von PHP generiert.
> langsamer zu werden. Allerdings sind die
> einzelnen Prozesse bei Dir ja nicht so lang. Da
> kann (ich weiß ja immer noch nicht was genau
> läuftÖ) regelmäßiges speichern der QXP-Docs
Wir produzieren für Händler Beilagen. Die Daten werden über das Internet eingegeben.
> setzen. Übrigens - wenn denn so viele
> Druckvorlagen generiert werden - da rechnet sich > ja fast ein eigener Rechner für den Job.
Das kommt nur 4 Mal im Jahr vor, aber ansonsten hättest du recht.
> > Du scherzt :-> Ich lasse doch keine Server,
> > geschweige den eine DB
> Oh - sorry, aber aus der Fragestellung ging nicht
> hervor, daß das DB-Projekt schon i.d. Pubertät
Was heisst hier Pubertät ? Die DB läuft
ausgezeichnet. :-)
> angekommen ist. Die meisten Mac-User und
Ich bin glücklicherweise nur zum AppleScripten
ein Mac-User. Ansonsten habe ich nichts mit dem Mac zu tun, weil ich halt nur Internet-Applikationen programmiere.
> Taschenmesser. Nun ja, so richtig Erwachsen ist
> mySQL ja auch noch nicht (Zitat: "keine foreign
> key-Prüfung" .
Ok, das wäre schön und macht auch ein bischen Programmierarbeit, aber dafür ist die kostenlos und läuft stabil. Ist einfach zu installieren und zu bedienen.
> weitesten Sinne geht es in beiden Fällen - und
> wenn der Frager sich die Würmer einzeln aus der > Nase ziehen läßt, ist es nicht immer genau zu
> bestimmen was der Frager kann und möchte.
Sorry, ich dachte nicht, dass das von Belang wäre und das war es ja auch nicht. 'do script' ist die Turbo-Taste für AppleScript in Quark.
> Logische Abfragetechnik ist doch eine der Großen > SQL-Stärken, also bitte ;)
Stimmt. Immer nur das nötigste abgfragen :-)
Tschuess
Daniel |
|
Nach oben |
|
 |
|
|
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
|
|
|