[GastForen Programme Print/Bildbearbeitung Adobe InDesign RecordFindChange.jsx unter CS3

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

RecordFindChange.jsx unter CS3

Martin Fischer
  
Beiträge gesamt: 12691

26. Jun 2008, 17:56
Beitrag # 16 von 21
Beitrag ID: #355963
Bewertung:
(7235 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Die von Rübi erwähnte erweiterte Version RecordFindChange_CS3.jsx ist im Premium-Bereich unter [InDesign CS3 JS] Einstellungen des Suchen/Ersetzen-Dialogs in Textdatei speichern zu finden.

Das Skript zeichnet die aktuellen Einstellungen im Suchen/Ersetzen Dialog auf und schreibt sie in eine TXT-Datei.

Dabei sind zwei Darstellungen möglich:
1. Befehlszeilen für findChangeByList.jsx
2. Listendarstellung

In einem Voreinstellungsbereich können diese und andere Parameter den eigenen Bedürfnissen angepasst werden:
Code
// =================== Preferences / Voreinstellungen ================ 

// singleLine = true -> Befehlszeilen für findChangeByList.jsx
// singleLine = false -> Listendarstellung
var singleLine = true;

// fileSelect = true -> Ausgabedatei selbst bestimmen
// fileSelect = false -> Ausgabedatei: 'Schreibtisch/findChangeStrings.txt'
var fileSelect = false;

// TXT-Datei nach Ausführung des Skripts öffnen
var fileOpen = true;

// Schlussmeldung ausgeben
var finalMessage = true;

// findChangeTextOptions und findChangeGrepOptions aufzeichnen
var catchOptions = true;
// ===============================================================



als Antwort auf: [#355810]
X

RecordFindChange.jsx unter CS3

Quarz
Beiträge gesamt: 3508

26. Jun 2008, 18:05
Beitrag # 17 von 21
Beitrag ID: #355964
Bewertung:
(7229 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Ihr Lieben,

wer noch keinen Zugang zum Premium-Bereich hat, sollte
schnellstens seinen Obulus dafür leisten, um dieses Script
zu bekommen.
(Man kann auch eine Quittung anfordern.)

Es ist das beste, was jemand, der sich mit Scripts und
FindChangeByList beschäftigt, zur Zeit auf dem Markt findet.

Tausend Dank an Martin!!!

Gruß
Quarz

------------------------
WinXP | CS3


als Antwort auf: [#355963]

RecordFindChange.jsx unter CS3

Ralf Hobirk
Beiträge gesamt: 5957

23. Mai 2010, 17:09
Beitrag # 18 von 21
Beitrag ID: #442792
Bewertung:
(6929 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo zusammen,

nach knapp zwei Jahren greife ich diesen alten Thread mal wieder auf. Ich habe heute meinen ersten "ernsthaften" Job in CS5 angefangen und wollte einfache Text-Ersetzungen mit RecordFindChange_CS3.jsx aufnehmen. Es funktioniert grundsätzlich, aber im Gegensatz zur CS4 erhalte ich jetzt ganze Romane (siehe anliegende Beispieldatei).

Hat jemand schon ähnliche Erfahrungen mit InDesign CS5 gemacht?


als Antwort auf: [#355964]
Anhang:
findChangeStrings.txt (14.2 KB)

RecordFindChange.jsx unter CS5

Martin Fischer
  
Beiträge gesamt: 12691

30. Mai 2010, 15:32
Beitrag # 19 von 21
Beitrag ID: #443359
Bewertung:
(6837 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Ralf,

Du hast es schon getestet.

Zitat von Ralf Hobirk Ich habe das Script natürlich sofort mit Text & GREP S&E getestet und das aufgezeichnete Ergebnis mit FindChangeByList getestet. Läuft einwandfrei!


Wenn das gegenüber der CS3-Version etwas erweiterte Skript weitere Tests besteht, dann kommt es ins Skriptarchiv.

Code
//RecordFindChange_CS3-CS5.jsx  
//
//An InDesign CS3--CS5 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;
// split parameters
s = s.replace( /, /g, '\r' );
// delete breaks at start and end
s = s.replace( /^\({/, '' );
s = s.replace( /\}\)$/, '' );

// delete undefined
s = s.replace( /[\w]+:1851876449\r/g, '' );
s = s.replace( /[\w]+:\"\"\r/g, '' );
s = s.replace( /[\w]+:null\r/g, '' );
// delete some dirty or useless parameters
s = s.replace( /[^\r]+\/@find-[^\r]+\r+/g, '' );
s = s.replace( /[^\r]+\/@change-[^\r]+\r+/g, '' );
s = s.replace( /parent:resolve\(\"\/\"\)/g, '' );
s = s.replace(/\b\w+\b\:\(\{\}\)/g,'');

// column or single line
if ( _param.single_line == true )
{
s = s.replace( /\r\r*/g, ', ' );
s = '{' + s + '}';
s = s.replace( /, }/g, '}' );
}
else
s = s.replace( /\r\r+/g, '\r' );
return s;
}

// =================== Preferences / Voreinstellungen ================
var _param = get_param();
app.documents.firstItem().insertLabel('FindChangeByList', _param.toSource());
// ===============================================================


// ===============================================================
// main / Hauptprogramm
// ===============================================================
var myResult;
var myFindTextProperties = app.findTextPreferences.properties.toSource().cleanProps();
var myChangeTextProperties = app.changeTextPreferences.properties.toSource().cleanProps();
var myFindChangeTextOptions = ( _param.catch_options == true )
? app.findChangeTextOptions.properties.toSource().cleanProps()
: '{}';

var myFindGrepProperties = app.findGrepPreferences.properties.toSource().cleanProps();
var myChangeGrepProperties = app.changeGrepPreferences.properties.toSource().cleanProps();
var myFindChangeGrepOptions = ( _param.catch_options == true )
? app.findChangeGrepOptions.properties.toSource().cleanProps()
: '{}';

var myFile = myGetFileName();
var myData = collectData();
writeData ( myData );
if ( _param.final_message == true )
alert('Fertig!');

// ===============================================================
// functions / Funktionen
// ===============================================================
function myGetFileName()
{
if ( _param.file_2desk == true )
{
var myFile = new File( '~/Desktop/findChangeStrings.txt' )
}
else
{
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:' )
}
if ( myFile == null )
exit();
}
return myFile;
}

function collectData()
{
if ( _param.single_line == true )
{
if ( myFindTextProperties == '{}' && myChangeTextProperties == '{}' )
{
var myText = '';
}
else
{
var myText = 'text' + '\t' +
myFindTextProperties + '\t' +
myChangeTextProperties + '\t' +
myFindChangeTextOptions +
'\t//' + _param._comment + '\r';
}
if ( myFindGrepProperties != '{}' || myChangeGrepProperties != '{}' )
{
myText += 'grep' + '\t' +
myFindGrepProperties + '\t' +
myChangeGrepProperties + '\t' +
myFindChangeGrepOptions +
'\t//' + _param._comment + '\r';
}
}
else
{
var myText = '//' + _param._comment + '\r\r';
if ( myFindTextProperties != '' )
{
myText += '//FindTextProperties\r' +
myFindTextProperties + '\r\r' +
'//ChangeTextProperties\r' +
myChangeTextProperties + '\r\r' +
'//FindChangeTextOptions\r' +
myFindChangeTextOptions + '\r\r';
}
if ( myFindGrepProperties != '' || myChangeGrepProperties != '' )
{
myText += '//FindGrepProperties\r' +
myFindGrepProperties + '\r\r' +
'//ChangeGrepProperties\r' +
myChangeGrepProperties + '\r\r' +
'//FindChangeGrepOptions\r' +
myFindChangeGrepOptions;
}
}
return myText;
}

function writeData ( aData )
{
if( myFile!='' )
{
//Open the file for writing.
myResult = myFile.open( 'w', undefined, undefined );
}
if( myResult != false )
{
myFile.writeln( aData );
myFile.close();
if ( _param.file_open == true )
myFile.execute();
}
}

function get_param()
{
var _pref_string = app.documents.firstItem().extractLabel('FindChangeByList');
if (_pref_string == '')
_pref_string ="({single_line:true, catch_options:true, file_2desk:true, file_open:true, _comment:'Kommentar', final_message:true})";
var _pref = eval(_pref_string);
var _pref_rc = (_pref.single_line == true)
? true
: false;
var myDialog = app.dialogs.add({name:"Record FindChange Properties"});
var min_width = 300;
with(myDialog.dialogColumns.add()){
with(dialogRows.add()){
staticTexts.add( {staticLabel: "Ausgabe:"} );
}
with(dialogRows.add()){
var single_multi = radiobuttonGroups.add();
with(single_multi) {
radiobuttonControls.add({staticLabel: "einzeilig (für FindChangeByList.jsx)", checkedState: _pref_rc, minWidth: min_width});
radiobuttonControls.add({staticLabel: "mehrzeilig (Listendarstellung)", checkedState: !_pref_rc, minWidth: min_width});
}
}
with(dialogRows.add()){
staticTexts.add( {staticLabel: "-----"} );
}
with(dialogRows.add()){
staticTexts.add( {staticLabel: "Weitere Optionen:"} );
}
with(dialogRows.add()){
var the_cb_options = checkboxControls.add({staticLabel: "findChangeTextOptions und findChangeGrepOptions aufzeichnen", checkedState: _pref.catch_options, minWidth: min_width});
}
with(dialogRows.add()){
var the_cb_file2desk = checkboxControls.add({staticLabel: "Ergebnis auf Schreibtisch (findChangeStrings.txt)", checkedState: _pref.file_2desk, minWidth: min_width});
}
with(dialogRows.add()){
var the_cb_open = checkboxControls.add({staticLabel: "TXT-Datei nach Ausführung des Skripts öffnen", checkedState: _pref.file_open, minWidth: min_width});
}
with(dialogRows.add()){
var the_cb_final = checkboxControls.add({staticLabel: "Schlussmeldung ausgeben", checkedState: _pref.final_message, minWidth: min_width});
}
with(dialogRows.add()){
staticTexts.add( {staticLabel: "Kommentar: "} );
var x = _pref._comment;
var the_cb_comment = textEditboxes.add({staticLabel: "Kommentar", editContents: x, minWidth: min_width});
}
}
var myResult = myDialog.show();
var mySingleLine = (single_multi.selectedButton == 0)
? true
: false;

var myCatchOptions = the_cb_options.checkedState;
var myFile2Desk = the_cb_file2desk.checkedState;
var myFileOpen = the_cb_open.checkedState;
var myComment = the_cb_comment.editContents;
var myFinalMessage = the_cb_final.checkedState;
myDialog.destroy();
if(myResult == false)
exit();
else
return {single_line: mySingleLine, catch_options: myCatchOptions, file_2desk: myFile2Desk, file_open: myFileOpen, _comment: myComment, final_message: myFinalMessage};
}


Antwort auf [ Ralf Hobirk ] Ich verstehe nur folgende aufgezeichneten Parameter nicht:

kanaSensitive:true, widthSensitive:true, ignoreKashidas:true

wobei "ignoreKashidas" bei GREP nicht mit ausgegeben wird.


Das hängt mit den (versteckten) MiddleEast-Funktionen von InDesign zusammen.
Es handelt sich um Eigenschaften für arabischen Satz.
Bernd Meißner könnte Dir mehr dazu sagen – wenn er nicht in Urlaub wäre.


als Antwort auf: [#442792]
(Dieser Beitrag wurde von Martin Fischer am 30. Mai 2010, 15:38 geändert)

RecordFindChange.jsx unter CS5

MarkusD
Beiträge gesamt: 29

4. Nov 2020, 18:45
Beitrag # 20 von 21
Beitrag ID: #577444
Bewertung:
(2011 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Martin,

funktioniert das Script eigentlich auch unter ID2020?

Viele Grüße
Markus


als Antwort auf: [#443359]

RecordFindChange.jsx unter CS5

Martin Fischer
  
Beiträge gesamt: 12691

4. Nov 2020, 20:38
Beitrag # 21 von 21
Beitrag ID: #577447
Bewertung:
(1981 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Markus,

ich weiß es nicht.
Hast Du es probiert?


als Antwort auf: [#577444]
X