[GastForen Programme Print/Bildbearbeitung Adobe InDesign Skriptwerkstatt Frage zu #include

  • Suche
  • Hilfe
  • Lesezeichen
  • Benutzerliste
Print/Bildbearbeitung - Photos, Layout, Design
Themen
Beiträge
Moderatoren
Letzter Beitrag

Frage zu #include

JuMayr
Beiträge gesamt: 96

6. Dez 2012, 09:10
Beitrag # 1 von 10
Bewertung:
(12560 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo zusammen,

ich kämpfe nun schon seit ein paar Stunden mit eine #include Anweisung rum.

Konkret möchte ich eine Datei mit Sprachvariablen in meine Scripte einbinden.

Code
#include File(Folder(Folder.userData.fullName+'/Sprachfiles/Sprachdaten.jsx')); 


Wenn ich in der Konsole
File(Folder(Folder.userData.fullName+'/Sprachfiles/Sprachdaten.jsx')).length eingebe, dann wird mir die korrekte Größe der Datei angezeigt.

Die #include Anweisung sagt mir aber "Datei oder Ordner existiert nicht".

Hat evtl. jemand einen Tipp für mich wo mein Problem liegt?

Viele Grüße
Jürgen
X

Frage zu #include

WernerPerplies
Beiträge gesamt: 2386

6. Dez 2012, 09:44
Beitrag # 2 von 10
Beitrag ID: #505183
Bewertung:
(12498 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Jürgen,

Include-Anweisungen können relativ oder absolut sein.

Einige Beispiele gibt es hier in Screenshots der Beiträge:
WpsIncludesInCludes

HTH

Einen schönen Tag wünscht

Werner Perplies
Auftragsprogrammierung und Skripte für Adobe InDesign
neu: WpsProjectHandler 15.06.2018, Version 1.75, neue Funktionen
Aktuelles
XING


als Antwort auf: [#505177]

Frage zu #include

JuMayr
Beiträge gesamt: 96

6. Dez 2012, 09:59
Beitrag # 3 von 10
Beitrag ID: #505186
Bewertung:
(12483 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Werner,

vielen Dank für den Link.
Noch eine Frage: Wenn ich nur #include "Sprachdaten.jsx" angebe, in welchem Ordner wird dann gesucht?
Gibt es einen Betriebssystem- und InDesignversion unabhängigen Ordner der dann als Basis genommen wird?

Schade eigentlich, dass man nicht mit den definierten Pfaden wie Folder.userData.fullName o.ä. arbeiten kann:(

Gruß
Jürgen


als Antwort auf: [#505183]

Frage zu #include

WernerPerplies
Beiträge gesamt: 2386

6. Dez 2012, 10:06
Beitrag # 4 von 10
Beitrag ID: #505188
Bewertung:
(12470 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Jürgen,

wenn Du keinen Basispfad angibst, gilt der Pfad des aufrufenden Skripts.

Hast Du eigentlich gesehen, das mein Beispielskript unter anderem auch bereits die Behandlung unterschiedlicher Sprachdateien behandelt?

Einen schönen Tag wünscht

Werner Perplies
Auftragsprogrammierung und Skripte für Adobe InDesign
neu: WpsProjectHandler 15.06.2018, Version 1.75, neue Funktionen
Aktuelles
XING


als Antwort auf: [#505186]

Frage zu #include

JuMayr
Beiträge gesamt: 96

6. Dez 2012, 10:19
Beitrag # 5 von 10
Beitrag ID: #505189
Bewertung:
(12461 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Werner,

ja, das hatte ich gesehen.
Ich verwende in meinen Scripten bisher die YALT 2 Engine.

http://www.indiscripts.com/...-localization-engine

Gruß
Jürgen


als Antwort auf: [#505188]

Frage zu #include

WernerPerplies
Beiträge gesamt: 2386

6. Dez 2012, 10:30
Beitrag # 6 von 10
Beitrag ID: #505190
Bewertung:
(12441 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Jürgen,

ich habe da mal kurz reingesehen, ich denke, da widerspricht sich nichts, dass müsste auch direkt in meinem Framework einsetzbar sein, außer dass ich alle Meldungen in einer globalen Variable verwalte und bei Meldungen zwischen dem individuellen Teil und dem globalen Teil des gesamten Skripts unterscheide.

Insgesamt ist das Beispiel ein Framework für fast beliebige Skripts, die je nach Bedarf mit separaten Indcludedateien oder durch Einsatz meines IncludesIncludes-Skript als Gesamtdatei ausgeliefert werden können.

Einen schönen Tag wünscht

Werner Perplies
Auftragsprogrammierung und Skripte für Adobe InDesign
neu: WpsProjectHandler 15.06.2018, Version 1.75, neue Funktionen
Aktuelles
XING


als Antwort auf: [#505189]

Frage zu #include

Martin Braun
Beiträge gesamt: 78

6. Dez 2012, 20:19
Beitrag # 7 von 10
Beitrag ID: #505233
Bewertung: ||
(12343 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Jürgen,

versuch's mal so:

Code
eval("#include " + Folder.userData + '/Sprachfiles/Sprachdaten.jsx'); 


#include ist keine gewöhnliche Javascript-Funktion sondern eine "Präprozessoranweisung" und kann nicht Variablen oder Ausdrücke als Argument annehmen. Der einzuschließende Dateipfad muss buchstäblich hinter include stehen. Mit eval() kann man das quasi simulieren.

Sauberer wäre es in diesem Fall aber, die Sprachdatei mit app.doScript() auszuführen:

Code
app.doScript(File(Folder.userData + '/Sprachfiles/Sprachdaten.jsx')); 


LG
Martin


als Antwort auf: [#505177]

Frage zu #include

Dirk Becker
Beiträge gesamt: 169

12. Dez 2012, 00:11
Beitrag # 8 von 10
Beitrag ID: #505485
Bewertung:
(12241 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Noch einige Ansätze:

- #include arbeitet relativ zur aktuellen Quelle
- es gibt da eine Variable $.includePath ...
- $.evalFile() schluckt auch File-Objekte
- app.doScript hat einige Problemchen beim Debuggen und bei verschachtelten Aufrufen

Grüße,
Dirk


als Antwort auf: [#505233]

Frage zu #include

Martin Braun
Beiträge gesamt: 78

12. Dez 2012, 07:49
Beitrag # 9 von 10
Beitrag ID: #505488
Bewertung:
(12224 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
und:

- mit #includepath lassen sich weitere Pfade hinzufügen

LG
Martin


als Antwort auf: [#505485]

Frage zu #include

WernerPerplies
Beiträge gesamt: 2386

12. Dez 2012, 07:58
Beitrag # 10 von 10
Beitrag ID: #505489
Bewertung:
(12223 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Ich denke, der beste Ansatz für Sprachanpassungen ist nicht der Include-Weg, sondern das Einlesen der Meldungen beim Start des Skriptes.
Die Meldungen können dann in einer einfachen Testdatei gespeichert sein und damit zu jeder Zeit angepasst werden.

Damit entfallen dann auch die Verzeichnisprobleme.

Ich persönlich würde die Sprachdateien so speichern:
Code
Folder.userData+"/"+companyName + "/" + scriptName+"/"+$.locale+"/"+ groupName + ".msg" 


Code
Folder.userData:    Systemvariable, 
companyName: Scriptvariable mit der Entwicklerfirma,
scriptName: Scriptvariable
$.locale: Systemvaiable
groupName Scriptvariable mit Meldungsgruppe


Zur Laufzeit würde ich die Existenz der Datei prüfen, und ggf., wenn nicht vorhanden, eine Standardsprache verwenden.

Die Meldungsdatei könnte z. B. so aussehen:

Code
fileNotFound;Die Datei {0} wurde nicht gefunden 
selectFirstDir;Bitte zuerst ein Verszeichnis auswählen
...


Solche eine Datei kann zeilenweise eingelesen, bei ";" gesplittet und in ein Meldungsobjekt gespeichert werden.

Ein Vorteil des Verfahrens wäre es, dass Anwender oder Vertreiber des Skriptes die Meldungen leicht in der gewünschten Sprache ergänzen können.

Einen schönen Tag wünscht

Werner Perplies
Auftragsprogrammierung und Skripte für Adobe InDesign
neu: WpsProjectHandler 15.06.2018, Version 1.75, neue Funktionen
Aktuelles
XING


als Antwort auf: [#505485]
X

Aktuell

PDF / Print
PitStop_2019

Veranstaltungskalender

Hier können Sie Ihre Anlässe eintragen, welche einen Zusammenhang mit den Angeboten von HilfDirSelbst.ch wie z.B. Adobe InDesign, Photoshop, Illustrator, PDF, Pitstop, Affinity, Marketing, SEO, Büro- und Rechtsthemen etc. haben. Die Einträge werden moderiert freigeschaltet. Dies wird werktags üblicherweise innert 24 Stunden erfolgen.

pdf-icon Hier eine kleine Anleitung hinsichtlich Bedeutung der auszufüllenden Formularfelder.

Veranstaltungen
21.10.2019 - 22.10.2019

München
Montag, 21. Okt. 2019, 09.30 Uhr - Dienstag, 22. Okt. 2019, 17.30 Uhr

Schulung, Seminar

Wer hochwertige und farbechte Ergebnisse im Digitaldruck erzielen will, der braucht umfassende Colormanagemement- und PDF-Kenntnisse. Selbst wenn die Maschine kalibriert und das Rip richtig konfiguriert ist, lassen die Ergebnisse oft zu wünschen übrig. Der Grund hierfür liegt zu 90 % in den Daten und in falsch eingestellten Anwendungsprogrammen, auch in falschen Einstellungen im Druckmenü.

Nein

Organisator: Cleverprinting.de

https://www.cleverprinting.de/zweitaegige-weiterbildung-zum-digitaldruck-operator/

Zweitägige Weiterbildung zum Digitaldruck-Operator
Veranstaltungen
21.10.2019 - 23.10.2019

Riga, die Hauptstadt Lettlands
Montag, 21. Okt. 2019, 09.32 Uhr - Mittwoch, 23. Okt. 2019, 09.33 Uhr

VIP-Event

Jedes Jahr haben Sie die Möglichkeit, beim VIP-Event mehr über die Produkte von axaio software, callas software und andere Lösungen zu erfahren, die Four Pees anbietet.

Diejenigen, die uns bereits kennen, wissen, dass wir gerne Business mit Genuss kombinieren. Wir sind schon sehr gespannt und wollen Ihnen deshalb gern einen Blick hinter die Kulissen gewähren ...

Die Stadt der gotischen Türme
Das diesjährige Ziel ist Riga, die Hauptstadt Lettlands. Die gotischen Türme, die das Stadtbild Rigas dominieren, haben den Anschein von Strenge, aber das trifft nicht zu. Diese pulsierende, kosmopolitische Stadt ist die größte der drei baltischen Hauptstädte und beherbergt einige Szenebars und experimentelle Restaurants. Das klingt doch nach einem perfekten Rahmen für unser nächstes VIP-Event, oder?

Nein

Organisator: callas

https://www.callassoftware.com/de/events/2019/10/vip-event-riga

Sind Sie für das nächste VIP-Event bereit?
Hier Klicken