Forenindex » Programme » Print/Bildbearbeitung » Adobe InDesign » [Javascript] Einstellungen eines Skripts speichern

[Javascript] Einstellungen eines Skripts speichern

Wolfgang Reszel
Beiträge gesamt: 4170

4. Okt 2007, 15:06
Bewertung:

gelesen: 22371

Beitrag als Lesezeichen
Hi,

gibt es eine plattformübergreifende Möglichkeit aus Javascripts vorgenommene Einstellungen auf Festplatte zu speichern und wieder einzulesen? Ich meine einen offiziellen Weg, der ggf. nicht im gleichen Verzeichnis speichert, wo das Skript liegt. Es geht mir darum, dass sich ein Skript in einer GUI vorgenommene Einstellungen merkt.
Wolfgang


Mach mit bei Illustrator Praxis, dem Wiki rund um Illustrator.

[Javascript] Einstellungen eines Skripts speichern

Gerald Singelmann
  
Beiträge gesamt: 6211

4. Okt 2007, 15:11
Bewertung:

gelesen: 22322

Beitrag als Lesezeichen
Man kann Labels im Dokument einfügen, die dann aber nur im gleichen Dokument wieder zu lesen sind.
Ab CS3 kann man Labels auch im application-Objekt speichern, aber ich glaube nicht, dass die persistent sind.
Wenn das also dokument- und sessionübergreifend sein soll, bleibt nur die Verwaltung einer config-Datei.
Von Ole gibt es eine Bibliothek dafür (CS3)

http://forum.adobe.com/...bin/webx/.3bc44567/0

[Javascript] Einstellungen eines Skripts speichern

zaphodbeeblebroxx
Beiträge gesamt: 408

4. Okt 2007, 15:28
Bewertung:

gelesen: 22311

Beitrag als Lesezeichen
 
Hallo,

ein Beispiel für das Speichern + Einlesen von Einstellungen eines Skripts in eine config-Datei gibt es hier:

http://www.hilfdirselbst.ch/..._P253076.html#253076


Matthias

[Javascript] Einstellungen eines Skripts speichern

Wolfgang Reszel
Beiträge gesamt: 4170

5. Okt 2007, 10:59
Bewertung:

gelesen: 22261

Beitrag als Lesezeichen
Danke für die Antworten. Sehr hilfreich. Ich war mittlerweile selber dabei so was zu schreiben und es so kompakt wie möglich zu machen. Habt ihr eine Idee, wie man die Datei in der Skripten-Palette verstecken kann? Ein Punkt am Anfang des Namens bringt's am Mac leider nicht. Gibt es eine systemübergreifende Möglichkeit ins Benutzerverzeichnis zu schreiben. Beim Mac könnte man ja z. B. "~/Preferences/file.prefs" verwenden. Geht das auch unter Windows.
Wolfgang


Mach mit bei Illustrator Praxis, dem Wiki rund um Illustrator.

[Javascript] Einstellungen eines Skripts speichern

Martin Fischer
  
Beiträge gesamt: 12091

5. Okt 2007, 11:18
Bewertung:

gelesen: 22257

Beitrag als Lesezeichen
Verwende für die Datei einfach einen Namen, der nicht mit ".js" oder ".jsx" endet.

Viele Grüße
Martin


[Javascript] Einstellungen eines Skripts speichern

Wolfgang Reszel
Beiträge gesamt: 4170

5. Okt 2007, 11:23
Bewertung:

gelesen: 22254

Beitrag als Lesezeichen
Die Palette zeigt leider alles an, ob .txt, .prefs, .cfg, .ini oder auch ohne Erweiterung. In der Palette steht dein ein i-Symbol vor dem Namen.
Wolfgang


Mach mit bei Illustrator Praxis, dem Wiki rund um Illustrator.

[Javascript] Einstellungen eines Skripts speichern

Gerald Singelmann
  
Beiträge gesamt: 6211

5. Okt 2007, 11:28
Bewertung:

gelesen: 22252

Beitrag als Lesezeichen
In CS3 ist es eine Option in der Scripte Palette, ob "nicht unterstützte Dateien" angezeigt werden sollen oder nicht. Wahrscheinlich kann man die Option aber nicht per Script umstellen. Diese Vermutung habe ich jetzt nicht überprüft...

[Javascript] Einstellungen eines Skripts speichern

Martin Fischer
  
Beiträge gesamt: 12091

5. Okt 2007, 11:46
Bewertung:

gelesen: 22243

Beitrag als Lesezeichen
WR> In der Palette steht dein ein i-Symbol vor dem Namen.

Entschuldige.
Hatte das erwartete Verhalten ungeprüft von CS2 auf CS3 übertragen.

GS> In CS3 ist es eine Option in der Scripte Palette, ob "nicht unterstützte Dateien" angezeigt
GS> werden sollen oder nicht. Wahrscheinlich kann man die Option aber nicht per Script umstellen.

Letzteres wäre auch unanständig.
Oder?

Viele Grüße
Martin


[Javascript] Einstellungen eines Skripts speichern

Gerald Singelmann
  
Beiträge gesamt: 6211

5. Okt 2007, 12:00
Bewertung:

gelesen: 22233

Beitrag als Lesezeichen
Zitat Letzteres wäre auch unanständig.


Nicht wenn du in einer Arbeitsumgebung wie z.B. einer Redaktion oder Agentur wohnst, in der alle Mitarbeiter ihre Rechner eh von der IT konfiguriert bekommen.

[Javascript] Einstellungen eines Skripts speichern

Wolfgang Reszel
Beiträge gesamt: 4170

5. Okt 2007, 17:28
Bewertung:

gelesen: 22189

Beitrag als Lesezeichen
Hi,

ah, habe gar nicht bemerkt, dass es da eine Einstellung gibt. Ich habe das jetzt aber so gelöst, dass die Einstellungen eine Hierarchiestufe höher gespeichert werden:

Code
// Voreinstellungen laden und speichern  
// 2007-10-05 Wolfgang Reszel
//
// - Am Anfang eines Skripts muss initPreferences() aufgerufen werden
// - Danach können mit Preferences.xxx = yyy, Preferences.yyy = zzz ...
// die Standardeinstellungen festgelegt werden
// - Es folgt readPreferences(), welches die Einstellungsdatei ausliest
// und das Object Preferences entsprechend ändert
// - Es können nun Preferences-Objekte verändert und auch neue angelegt werden
// - Mit writePreferences() wir das komplette Preferences-Objekt in die
// Einstellungsdatei geschrieben
//
// Die Einstellungsdatei befindet sich eine Hierarchiestufe höher als das
// Skript und dort im Preferences-Ordner. Hier ein Beispiel:
// Skript: ~/Library/Preferences/Adobe InDesign/Version 5.0/Scripts/Scripts Panel/Skript.jsx
// Einstellungsdatei: ~/Library/Preferences/Adobe InDesign/Version 5.0/Scripts/Preferences/Skript.preferences

function initPreferences() {
scriptFile = File($.fileName);
scriptName = scriptFile.name.match(/^.*\./g).toString();
preferencesFile = File(scriptFile.parent.path.toString() + "/Preferences/" + scriptName + "preferences");
preferencesFile.encoding = "UTF-8";
Preferences = new Object();
}

function readPreferences() {
if (preferencesFile.open("r")) {
try {
var evaluated = eval(preferencesFile.read());
if (evaluated) Preferences = evaluated;
} catch (e) {}
}
preferencesFile.close();
}

function writePreferences( ) {
if (!preferencesFile.parent.exists) {preferencesFile.parent.create();}
if (preferencesFile.open("w")) {
preferencesFile.writeln(Preferences.toSource());
}
preferencesFile.close();
}

Wolfgang


Mach mit bei Illustrator Praxis, dem Wiki rund um Illustrator.