[GastForen Programmierung/Entwicklung AppleScript Nummerierung QXP 4.11

  • Suche
  • Hilfe
  • Lesezeichen
  • Benutzerliste
Themen
Beiträge
Moderatoren
Letzter Beitrag

Nummerierung QXP 4.11

Gast
Beiträge gesamt:

13. Mär 2003, 17:49
Beitrag # 1 von 9
Bewertung:
(2560 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo!
Ich muß für unsere Feuerwehr eine Festzeitschrift erstellen,DinA5,möchte diese auch Audrucken.Wie geht das,wie bekomme ich zwei seiten auf eine Dina4 Seite??
Bei der Druckereinstellung sind die wichtigsten Einstellungen nicht einstellbar HILFE
Ich habe version 4.1
X

Nummerierung QXP 4.11

Gast
Beiträge gesamt:

27. Feb 2003, 14:07
Beitrag # 2 von 9
Beitrag ID: #418059
Bewertung:
(2557 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Ich möchte bei Scriptaufruf in eine gewählte Textbox eine 3-stellige Ziffer ausgeben.
Diese Ziffer soll aus einer normalen Text-Datei geholt werden und anschliessend in der Text-Datei um eins erhöht werden.
Die Darstellung soll generell 3-stellig sein.
Somit kann ich für jedes neu erstellte Dokument einen individuellen
Zähler platzieren.

Wie läßt sich soetwas realisieren?

Gruss
Christoph


als Antwort auf: [#418058]

Nummerierung QXP 4.11

Hans Haesler
  
Beiträge gesamt: 5826

27. Feb 2003, 17:45
Beitrag # 3 von 9
Beitrag ID: #418060
Bewertung:
(2557 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Christoph,

mir ist nicht ganz klar, weshalb Du die Textdatei brauchst. Die Ziffer kann auch
im Script definiert und nach jedem Abspielen um eins erhöht werden:
---
property aCounter : 1
set aNumber to text -3 thru -1 of ("00" & aCounter)

tell document 1 of application "QuarkXPress 4.11"
  activate
  tell current box
    set story 1 to aNumber
  end tell
end tell

set aCounter to aCounter + 1
---
Weil 'aCounter' als 'property' definiert ist, wird dessen Wert im Script
gespeichert. Dies funktioniert, bis das Script erneut kompiliert wird.

Die führenden Nullen (von "001" bis "099") werden in der zweiten Zeile hinzugefügt.
Auch bei Werten über "100". Aber dann werden sie ganz einfach ignoriert, weil der
Variablen 'aNumber' nur die die Kette vom drittletzten bis zu letzten Zeichen
zugewiesen wird.

Der Vorteil mit der Textdatei: der Wert bleibt erhalten, wird nicht auf "1" zurück-
gesetzt, wenn das Script neu kompiliert wird Aber das Ganze ist dann schon einiges
komplizierter, weil der Pfad zur Datei bekannt sein muss. Man könnte es so lösen,
dass die Datei beim ersten Abspielen erzeugt wird, nachdem der Anwender den
Zielordner bestimmt hat.

Ein zweiter Vorteil: bei einem Irrtum oder so, kann der "Zählerwert" einfacher
korrigiert werden: die Textdatei öffnen, die Zahl ändern, sichern.

Aber ein Nachteil: was tun, wenn die Textdatei verloren geht? Eventuell den Wert
immer als property speichern und im Notfall heranziehen...

Falls die obige Lösung genügt: okay. Sonst werde ich ein Script entwickeln, welches
die Textdatei einbezieht.

Hans Haesler, <a href="mailto:hsa@ringier.ch">hsa@ringier.ch</a>


als Antwort auf: [#418058]

Nummerierung QXP 4.11

Gast
Beiträge gesamt:

28. Feb 2003, 09:08
Beitrag # 4 von 9
Beitrag ID: #418061
Bewertung:
(2557 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Ahh, das wusste ich nicht, dass man auch Daten in ein laufendes Script ablegen kann.
Drum kam mir der Gedanke eine Textdatei zu verwenden, die den Zähler verwaltet.
Aber so ists ausreichend.
Besten Dank

Gruss
Christoph


als Antwort auf: [#418058]

Nummerierung QXP 4.11

Hans Haesler
  
Beiträge gesamt: 5826

28. Feb 2003, 17:42
Beitrag # 5 von 9
Beitrag ID: #418062
Bewertung:
(2557 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Christoph,

Gut, dass es funktioniert. Hier, zur Ergänzung, wie man eine Textdatei einsetzen kann.
Beim ersten Aufruf wird der Anwender gebeten, den Zielordner für die Datei zu wählen.
Dann wird nur die Ziffer "1" in dieses Datei geschrieben, zurück in eine Variable
gelesen, in die Textbox gesetzt, die Zahl wird um eins erhöht und wieder in die Datei
geschrieben. Dies erreicht man durch 'set eof of file counterFile to 0'. Mit diesem
Setzten von 'eof' (= end of file) auf Null wird der Inhalt gelöscht.

Wenn die Datei mal nicht gefunden werden kann (verschoben, umbenannt, gelöscht), dann
erscheint ein Dialog, welcher den aktuellen Zählerstand anzeigt. Der Anwender kann
diesen Wert übernehmen oder einen neuen eingeben.
---
property saveCounter : 1
property counterFile : ""

if counterFile = "" then
 set counterFile to &not;
  ((choose folder with prompt &not;
   "Zielordner für Zählerdatei auswählen") as string) & "counter.txt"
 writeFile("" & saveCounter)
end if

try
 counterFile as alias
 readFile()
 writeFile(saveCounter)
on error
 set bR to button returned of (display dialog "Die Zähler-Datei ist unauffindbar.
 
Der Zählerstand wäre:  " & text -3 thru -1 of ("00" & saveCounter) & "
Neue Datei erzeugen?" buttons &not;
  {"Abbruch", "Neuer Wert", "Alter Wert"} default button 3 with icon 2)
 if bR = "Alter Wert" then
  writeFile(saveCounter)
  readFile()
  writeFile(saveCounter)
 else if bR = "Neuer Wert" then
  set okay to 0
  repeat while okay = 0
   set ctrVal to text returned of (display dialog &not;
    "Neuer Wert für den Zähler:" default answer "")
   if ctrVal is not "" then
    set okay to 1
    repeat with i from 1 to count ctrVal
     if character i of ctrVal is not in "0123456789" then
      set okay to 0
      exit repeat
     end if
    end repeat
   end if
  end repeat
  writeFile(ctrVal)
  readFile()
  writeFile(saveCounter)
 else
  error number -128
 end if
end try

on writeFile(ctr)
 try
  open for access file counterFile with write permission
  set eof of file counterFile to 0
  write ctr to file counterFile
  close access file counterFile
 on error
  try
   close access file counterFile
  end try
 end try
end writeFile

on readFile()
 set aCounter to read file counterFile
 set aNumber to text -3 thru -1 of ("00" & aCounter)
 importCounter(aNumber)
 set saveCounter to "" & (aCounter + 1)
end readFile

on importCounter(aNumber)
 tell document 1 of application "QuarkXPress 4.11"
  activate
  tell current box
   set story 1 to aNumber
  end tell
 end tell
end importCounter
---
Man könnte den Code mit Error-Handling ergänzen, damit die Meldungen etwas verständlicher
ausfallen, wenn kein XPress-Dokument geöffnet, oder eine Musterseite angezeigt oder keine
Textbox ausgewählt ist.

Und beim Überschreiten von "999" könnte man eine Dialog anzeigen lassen...

Hans Haesler, <a href="mailto:hsa@ringier.ch">hsa@ringier.ch</a>


als Antwort auf: [#418058]

Nummerierung QXP 4.11

Gast
Beiträge gesamt:

7. Mär 2003, 09:44
Beitrag # 6 von 9
Beitrag ID: #418063
Bewertung:
(2557 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Hans,

leider tut das Script nicht, so wie es soll.
Diese Meldung tritt schon beim erstenmal auf, wenn ich den Zielordner
für die counter-Datei wähle.
Counter-Datei ist unauffindbar

Woran kann es liegen?

Gruss
Christoph


als Antwort auf: [#418058]

Nummerierung QXP 4.11

Hans Haesler
  
Beiträge gesamt: 5826

9. Mär 2003, 15:40
Beitrag # 7 von 9
Beitrag ID: #418064
Bewertung:
(2557 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Christoph,

dies deutet auf ein Problem mit dem Pfad hin. Sehr wahrscheinlich liegt es an der
Version des bei Dir installierten AppleScript-Systems. Ich tippe mal auf "1.7".

Dies ist ganz einfach nachzuprüfen: in einem  Script-Editor-Fenster das Wort "version"
tippen (ohne Anführungszeichen) und dieses Mini-Script ausführen. Im Ergebnis-Fenster
erscheint die Versionsnummer, etwa so: "D1-1.7".

Die 1.7 wird von Experten als die schlechteste je veröffentlichte Version bezeichnet.
Sie ist unbrauchbar für einen seriösen Einsatz von Scripts.

Abhilfe: downgraden auf Version 1.6 (problemlos) oder die Flucht nach vorn zur Version
1.8.3. Doch deren Updater funktioniert nicht mit nicht-englischen Systemen. Einzige
Möglichkeit: im Mac OS X die Partition bestimmen, deren System im Classic-Modus benutzt
werden soll. Dann werden fehlende Dateien hinzugefügt, die AppleScript-Erweiterung und
die "Standard Additions" werden auf 1.8.3 upgedatet.

Aber: die Version 1.6 kann ich Dir zustellen, wenn Du sie nicht auftreiben kannst.

Die "Installation" ist einfach. Es müssen nur zwei Dateien ausgetauscht werden: die
Systemerweiterung "AppleScript" und die Scripting Addition "Standard Additions".

Hans Haesler, <a href="mailto:hsa@ringier.ch">hsa@ringier.ch</a>


als Antwort auf: [#418058]

Nummerierung QXP 4.11

Gast
Beiträge gesamt:

13. Mär 2003, 15:35
Beitrag # 8 von 9
Beitrag ID: #418065
Bewertung:
(2557 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Hans,

ich setze Version "D1-1.5.5" ein.
Sollte diese auch Probleme bereiten, bitte ich um die Zusendung
der Version 1.6. Das wäre nett.

Dankeschön

Christoph


als Antwort auf: [#418058]

Nummerierung QXP 4.11

Hans Haesler
  
Beiträge gesamt: 5826

13. Mär 2003, 17:49
Beitrag # 9 von 9
Beitrag ID: #418066
Bewertung:
(2557 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Christoph,

ja, die Version 1.5.5 bereitet anscheinend auch Probleme. Aber der vermutete
Konflikt mit dem Datei-Pfad wurde erst für die Version 1.7 rapportiert.

Ich nehme an, dass Du Mac OS 9.1 benutzt. Dieses sollte keine Probleme mit der
AppleScript-Version 1.6 ergeben. Ich stelle Dir deshalb die beiden Dateien zu.

Würdest Du mir bitte, im Gegenzug, die Version 1.5.5 senden? Damit könnte ich
eventuell herausfinden, weshalb das Script damit nicht läuft.

Hans Haesler, <a href="mailto:hsa@ringier.ch">hsa@ringier.ch</a>


als Antwort auf: [#418058]
X