hilfdirselbst.ch
Facebook Twitter gamper-media

Forenindex » Programme » Print/Bildbearbeitung » Adobe InDesign » RecordFindChange.jsx unter CS3

 

« « 1 2 » »  


Kai Rübsamen  M  p
Beiträge: 3189

25. Jun 2008, 13:50

Beitrag #1 von 19
Bewertung:

(3816 mal gelesen)
URL zum Beitrag

Beitrag als Lesezeichen

RecordFindChange.jsx unter CS3


Hallo!

Für das Ersetzen per Grep habe ich ein Zeichenformat bold angelegt. Hier ist der einzigste Eintrag "75 bold". Das Format "bold" habe ich dann im Ersetzendialog von GREP angegeben und das Skript gestartet.

Ich hätte jetzt erwartet das in der erzeugten Textdatei unter "Change properties:"
ein Eintrag wie appliedCharacterStyle:"75 bold" oder so ähnlich steht.
Finden tut sich aber nur appliedCharacterStyle:""

1. Läuft das Skript richtig unter CS3? (Bei den anderen Werten stehen teilweise längere Nummern die ich in keinen Zusammenhang bringen kann)

2. Falls es richtig läuft, was habe ich falsch gemacht, das mein Wert nicht ausgelesen wurde?

Im Anhang noch meine erzeugte Textdatei.

Gruß Kai
_______________________

MacPro 2x2,66 GHZ, 3 GB | 10.5.8 | CS 5 (7.0.4) u. CS 5.5 (7.5.3) u. CS6

ruebiarts.de
– Ein Blog vom Designer für Designer

Das nächste Treffen der InDesign-User Group Rhein/Main findet im August statt.
Jetzt als Mitglied anmelden, um die automatische Einladung zu erhalten!
Top

Anhang:
VersuchRecordFindChange (5.65 KB)

Martin Fischer  M  p
Beiträge: 9698

25. Jun 2008, 14:00

Beitrag #2 von 19
Beitrag ID: #355697

Bewertung:

(3807 mal gelesen)
URL zum Beitrag

Beitrag als Lesezeichen

RecordFindChange.jsx unter CS3


Ohne es geprüft zu haben, wage ich zu behaupten, dass es unter CS3 nicht zuverlässig laufen kann.

Dieses Skript wertet Einstellungen der SearchEngine von CS2 aus.
Diese SearchEngine hat sich unter CS3 grundlegend geändert – was man ja auch an der Oberfläche deutlich erkennen kann: aus einem Suchtyp wurden vier gemacht (Text, GREP, Glyphe, Objekt).

appliedCharacterStyle meint das Zeichenformat.
Der Schriftschnitt wird mit fontStyle angesprochen.


Martin Fischer

Skripte für InDesign im Skriptarchiv von HilfDirSelbst.ch

als Antwort auf: [#355692] Top

Kai Rübsamen  M  p
Beiträge: 3189

25. Jun 2008, 14:11

Beitrag #3 von 19
Beitrag ID: #355703

Bewertung:

(3800 mal gelesen)
URL zum Beitrag

Beitrag als Lesezeichen

RecordFindChange.jsx unter CS3


Antwort auf: appliedCharacterStyle meint das Zeichenformat. Der Schriftschnitt wird mit fontStyle angesprochen.


Ich hatte das so verstanden, das ich im Ersetzendialog mein Format eingebe und das das dann auch als Format ausgelesen wird. Daher erscheint mir CharacterStyle der richtige Parameter, oder?

Gruß Kai
_______________________

MacPro 2x2,66 GHZ, 3 GB | 10.5.8 | CS 5 (7.0.4) u. CS 5.5 (7.5.3) u. CS6

ruebiarts.de
– Ein Blog vom Designer für Designer

Das nächste Treffen der InDesign-User Group Rhein/Main findet im August statt.
Jetzt als Mitglied anmelden, um die automatische Einladung zu erhalten!

als Antwort auf: [#355697] Top

Martin Fischer  M  p
Beiträge: 9698

25. Jun 2008, 14:50

Beitrag #4 von 19
Beitrag ID: #355715

Bewertung:

(3781 mal gelesen)
URL zum Beitrag

Beitrag als Lesezeichen

RecordFindChange.jsx unter CS3


Kai,

bitte teste mal die an CS3 angepasste Version.
Ich habe die Eigenschaften außerdem senkrecht (statt fortlaufend durch Komma getrennt) angeordnet.
Schließlich habe ich die Ziffer für undefined und ein paar andere für diese Zwecke uninteressante Dinge rausgefiltert.

Es werden die Eigenschaften von TEXT und GREP aufgezeichnet.

Code
//RecordFindChange_CS3.js  
//An InDesign CS3 JavaScript
//Writes the current find/change preferences to a text file so that you can copy/paste
//them into a find/change list file.

String.prototype.cleanProps = function ()
{
var s = this;
s = s.replace(/, /g,'\r');
s = s.replace(/\({/g,'');
s = s.replace(/}\)/g,'');
s = s.replace(/1851876449/g,'');
s = s.replace(/\"\"/g,'');
s = s.replace(/parent:resolve\(\"\/\"\)/g,'');
return s;
}


var myResult;
var myFindTextProperties = app.findTextPreferences.properties;
var myChangeTextProperties = app.changeTextPreferences.properties;
myFindTextProperties = myFindTextProperties.toSource().cleanProps();
myChangeTextProperties = myChangeTextProperties.toSource().cleanProps();

var myFindGrepProperties = app.findGrepPreferences.properties;
var myChangeGrepProperties = app.changeGrepPreferences.properties;
myFindGrepProperties = myFindGrepProperties.toSource().cleanProps();
myChangeGrepProperties = myChangeGrepProperties.toSource().cleanProps();

var myFile = myGetFileName();
if(myFile!=""){
//Open the file for writing.
myResult = myFile.open("w", undefined, undefined);
if(myResult != false){
myFile.writeln("//FindTextProperties:");
myFile.writeln(myFindTextProperties);
myFile.writeln("\r//ChangeTextProperties:");
myFile.writeln(myChangeTextProperties);
myFile.writeln("\r\r\r//FindGrepProperties:");
myFile.writeln(myFindGrepProperties);
myFile.writeln("\r//ChangeGrepProperties:");
myFile.writeln(myChangeGrepProperties);
myFile.close();
}
}
function myGetFileName(){
if(File.fs != "Macintosh"){
//Filter files by extension.
var myFile = File.saveDialog("Save Text File As:", "Text Files:*.txt;All Files:*")
}
else{
var myFile = File.saveDialog("Save Text File As:")
}
return myFile;
}



Martin Fischer

Skripte für InDesign im Skriptarchiv von HilfDirSelbst.ch

als Antwort auf: [#355703]

(Dieser Beitrag wurde von Martin Fischer am 25. Jun 2008, 14:58 geändert)
Top

Martin Fischer  M  p
Beiträge: 9698

25. Jun 2008, 15:19

Beitrag #5 von 19
Beitrag ID: #355729

Bewertung:

(3766 mal gelesen)
URL zum Beitrag

Beitrag als Lesezeichen

RecordFindChange.jsx unter CS3


Hier noch eine etwas überarbeitete cleanProps()-function (quick & dirty) für eine etwas kompaktere Darstellung der tatsächlich genutzten Suche/Ersetze Einstellungen.


Code
String.prototype.cleanProps = function ()  
{
var s = this;
s = s.replace(/, /g,'\r');
s = s.replace(/\({/g,'');
s = s.replace(/}\)/g,'');
s = s.replace(/[\w]+:1851876449/g,'');
s = s.replace(/[\w]+:\"\"/g,'');
s = s.replace(/[\w]+:null/g,'');
s = s.replace(/\r\r+/g,'\r');
s = s.replace(/\"\"/g,'');
s = s.replace(/parent:resolve\(\"\/\"\)/g,'');
return s;
}


Kann mir jemand einen sichereren GREP-Ausdruck zum Löschen einer ganzen Zeile, in der am Ende '1851876449' steht, nennen als diesen etwas unsauberen Ausdruck:
Code
[\w]+:1851876449 


Vor der genannten Zahl gibt es nur ein paar Buchstaben, keine Zahlen oder Leerräume oder Sonderzeichen und genau einen Doppelpunkt vor der Zahl.


Martin Fischer

Skripte für InDesign im Skriptarchiv von HilfDirSelbst.ch

als Antwort auf: [#355715]

(Dieser Beitrag wurde von Martin Fischer am 25. Jun 2008, 15:32 geändert)
Top

Kai Rübsamen  M  p
Beiträge: 3189

25. Jun 2008, 18:09

Beitrag #6 von 19
Beitrag ID: #355759

Bewertung:

(3726 mal gelesen)
URL zum Beitrag

Beitrag als Lesezeichen

RecordFindChange.jsx unter CS3


Antwort auf: als diesen etwas unsauberen Ausdruck:


Welche Bedenken hast du damit?

Dein Grep sucht alle Wortzeichen direkt gefolgt von dem ":" und der Zahl. Da du keine Leerzeichen, Sonderzeichen u. Zahlen drin hast findet er also die ganze Zeile. Er würde die Zahl natürlich auch finden, wenn doch mal mehr in der Zeile steht als nur ein Wort.

Ist das das Problem?

Gruß Kai
_______________________

MacPro 2x2,66 GHZ, 3 GB | 10.5.8 | CS 5 (7.0.4) u. CS 5.5 (7.5.3) u. CS6

ruebiarts.de
– Ein Blog vom Designer für Designer

Das nächste Treffen der InDesign-User Group Rhein/Main findet im August statt.
Jetzt als Mitglied anmelden, um die automatische Einladung zu erhalten!

als Antwort auf: [#355729] Top

Martin Fischer  M  p
Beiträge: 9698

25. Jun 2008, 18:15

Beitrag #7 von 19
Beitrag ID: #355760

Bewertung:

(3720 mal gelesen)
URL zum Beitrag

Beitrag als Lesezeichen

RecordFindChange.jsx unter CS3


Ja, und der folgende Ausdruck, mit dem mir wohler wäre, greift nicht:


Code
^[\w]+:1851876449$ 


Außerdem suche ich noch nach einem Ausdruck, der mit die ganze Zeile ersetzt, wenn ein bestimmtest Zeichen ein- oder mehrmals in dieser Zeile vorkommt.

Beispiel: Sobald ein Klammeraffe einfach oder mehrfach in einer Zeile auftaucht, soll die ganze Zeile (= der ganze Absatz) gelöscht werden.
Die zu löschende Zeile könnte so aussehen:
Code
bulletChar:resolve("/@find-text-preferences/@bullet-char") 



Martin Fischer

Skripte für InDesign im Skriptarchiv von HilfDirSelbst.ch

als Antwort auf: [#355759]

(Dieser Beitrag wurde von Martin Fischer am 25. Jun 2008, 18:19 geändert)
Top

Kai Rübsamen  M  p
Beiträge: 3189

25. Jun 2008, 18:44

Beitrag #8 von 19
Beitrag ID: #355766

Bewertung:

(3705 mal gelesen)
URL zum Beitrag

Beitrag als Lesezeichen

RecordFindChange.jsx unter CS3


Antwort auf: der folgende Ausdruck greift nicht:

hast du es nur im skript oder auch im dialog probiert?

>> dieser grep findet die Zahl nur wenn sie am Ende steht und am Anfang nur ein Wort vorkommt. >>> Bei mir geht das!

Gruß Kai
_______________________

MacPro 2x2,66 GHZ, 3 GB | 10.5.8 | CS 5 (7.0.4) u. CS 5.5 (7.5.3) u. CS6

ruebiarts.de
– Ein Blog vom Designer für Designer

Das nächste Treffen der InDesign-User Group Rhein/Main findet im August statt.
Jetzt als Mitglied anmelden, um die automatische Einladung zu erhalten!

als Antwort auf: [#355760] Top

Martin Fischer  M  p
Beiträge: 9698

25. Jun 2008, 18:48

Beitrag #9 von 19
Beitrag ID: #355767

Bewertung:

(3700 mal gelesen)
URL zum Beitrag

Beitrag als Lesezeichen

RecordFindChange.jsx unter CS3


Zitat >> dieser grep findet die Zahl nur wenn sie am Ende steht und am Anfang nur ein Wort vorkommt.


Das war meine Absicht.


Antwort auf: . >>> Bei mir geht das!

Bei mir ging das - im replace()-Befehl innerhalb des JavaScripts nicht.

Ich versuch's morgen wieder.
Da ist ein anderer Tag.


Martin Fischer

Skripte für InDesign im Skriptarchiv von HilfDirSelbst.ch

als Antwort auf: [#355766] Top

Kai Rübsamen  M  p
Beiträge: 3189

25. Jun 2008, 18:58

Beitrag #10 von 19
Beitrag ID: #355768

Bewertung:

(3694 mal gelesen)
URL zum Beitrag

Beitrag als Lesezeichen

RecordFindChange.jsx unter CS3


Antwort auf: Außerdem suche ich noch nach einem Ausdruck, der mit die ganze Zeile ersetzt, wenn ein bestimmtest Zeichen ein- oder mehrmals in dieser Zeile vorkommt.


hm.
.+@.+\r ist sicherlich zu einfach als das es die Lösung sein könnte ...

Wo ist der Haken dabei?

Gruß Kai
_______________________

MacPro 2x2,66 GHZ, 3 GB | 10.5.8 | CS 5 (7.0.4) u. CS 5.5 (7.5.3) u. CS6

ruebiarts.de
– Ein Blog vom Designer für Designer

Das nächste Treffen der InDesign-User Group Rhein/Main findet im August statt.
Jetzt als Mitglied anmelden, um die automatische Einladung zu erhalten!

als Antwort auf: [#355767] Top

Martin Fischer  M  p
Beiträge: 9698

25. Jun 2008, 19:29

Beitrag #11 von 19
Beitrag ID: #355770

Bewertung:

(3676 mal gelesen)
URL zum Beitrag

Beitrag als Lesezeichen

RecordFindChange.jsx unter CS3


Antwort auf: Wo ist der Haken dabei?


Vermutlich in der Gier.
Bei mir werden damit alle Zeilen gelöscht.


Martin Fischer

Skripte für InDesign im Skriptarchiv von HilfDirSelbst.ch

als Antwort auf: [#355768] Top

Martin Fischer  M  p
Beiträge: 9698

25. Jun 2008, 19:39

Beitrag #12 von 19
Beitrag ID: #355772

Bewertung:

(3675 mal gelesen)
URL zum Beitrag

Beitrag als Lesezeichen

RecordFindChange.jsx unter CS3


Rübi,

so komme ich der Sache näher:


Code
[^\r]+@[^\r]+ 



Martin Fischer

Skripte für InDesign im Skriptarchiv von HilfDirSelbst.ch

als Antwort auf: [#355770] Top

Kai Rübsamen  M  p
Beiträge: 3189

25. Jun 2008, 19:52

Beitrag #13 von 19
Beitrag ID: #355774

Bewertung:

(3659 mal gelesen)
URL zum Beitrag

Beitrag als Lesezeichen

RecordFindChange.jsx unter CS3


auch gut. Du scheinst heute ein anderes InDesign zu haben. Bei mir hat es nur die eine Zeile gelöscht.

Gruß Kai
_______________________

MacPro 2x2,66 GHZ, 3 GB | 10.5.8 | CS 5 (7.0.4) u. CS 5.5 (7.5.3) u. CS6

ruebiarts.de
– Ein Blog vom Designer für Designer

Das nächste Treffen der InDesign-User Group Rhein/Main findet im August statt.
Jetzt als Mitglied anmelden, um die automatische Einladung zu erhalten!

als Antwort auf: [#355772] Top

Martin Fischer  M  p
Beiträge: 9698

25. Jun 2008, 20:07

Beitrag #14 von 19
Beitrag ID: #355776

Bewertung:

(3645 mal gelesen)
URL zum Beitrag

Beitrag als Lesezeichen

RecordFindChange.jsx unter CS3


Rübi,

ich arbeite gerade nicht in InDesign, sondern in der Zwischenablage. ;-)


Martin Fischer

Skripte für InDesign im Skriptarchiv von HilfDirSelbst.ch

als Antwort auf: [#355774] Top

Kai Rübsamen  M  p
Beiträge: 3189

26. Jun 2008, 10:19

Beitrag #15 von 19
Beitrag ID: #355810

Bewertung:

(3504 mal gelesen)
URL zum Beitrag

Beitrag als Lesezeichen

RecordFindChange.jsx unter CS3


Aufgrund heftigen Chat- und Mailverkehrs hat Martin das o.g. Skript nochmal gravierend verbessert und ich bin begeistert :) :)

Das aktualisierte Skript stellt Martin später im Premium Bereich zur Verfügung.

Neuerungen gegenüber der alten Version:

1. Es funktioniert jetzt auch unter CS3
2. Es werden nur noch die Parameter ausgelesen die man auch im Suchenfeld eingibt
3. Die .txt wird automatisch erzeugt
4. und geöffnet
5. Es gibt einen Dialog für Voreinstellungen, bei dem 1.-4. selbst bestimmt werden können.

Für "Nicht-Skripter" erschließen sich hier zusammen mit der aufgebohrten Version von FindChangeList (liegt auch im PM-Bereich) völlig neue Möglichkeiten des Suchen & Ersetzens.

Danke!!!

Gruß Kai
_______________________

MacPro 2x2,66 GHZ, 3 GB | 10.5.8 | CS 5 (7.0.4) u. CS 5.5 (7.5.3) u. CS6

ruebiarts.de
– Ein Blog vom Designer für Designer

Das nächste Treffen der InDesign-User Group Rhein/Main findet im August statt.
Jetzt als Mitglied anmelden, um die automatische Einladung zu erhalten!

als Antwort auf: [#355776]

(Dieser Beitrag wurde von ruebi am 26. Jun 2008, 10:20 geändert)
Top
« « 1 2 » »  


Forenindex » Programme » Print/Bildbearbeitung » Adobe InDesign » RecordFindChange.jsx unter CS3


^