hilfdirselbst.ch
Facebook Twitter gamper-media

Forenindex » Programme » Print/Bildbearbeitung » Adobe InDesign » JSFindschange vereinfachen

 



meistroM
Beiträge: 13

8. Aug 2007, 13:23

Beitrag #1 von 12
Bewertung:

(7084 mal gelesen)
URL zum Beitrag

Beitrag als Lesezeichen

JSFindschange vereinfachen


Hallo Leute,

wie kann man die Routinen (TextCleanup) vereinfachen, hier ein Beispiel. Derzeit wird jede Zahl einzeln abgefragt. Alles in einer Zeile abzufragen wäre natürlich super...

Code
{findText:"0m"}	{changeText:"0^<m"}	once	Find all m and replace with 1/8m 
{findText:"1m"} {changeText:"1^<m"} once Find all m and replace with 1/8m
{findText:"2m"} {changeText:"2^<m"} once Find all m and replace with 1/8m
{findText:"3m"} {changeText:"3^<m"} once Find all m and replace with 1/8m
{findText:"4m"} {changeText:"4^<m"} once Find all m and replace with 1/8m
{findText:"5m"} {changeText:"5^<m"} once Find all m and replace with 1/8m
{findText:"6m"} {changeText:"6^<m"} once Find all m and replace with 1/8m
{findText:"7m"} {changeText:"7^<m"} once Find all m and replace with 1/8m
{findText:"8m"} {changeText:"8^<m"} once Find all m and replace with 1/8m
{findText:"9m"} {changeText:"9^<m"} once Find all m and replace with 1/8m


Danke für eure Hilfe
Gruß
MM
_________

Meine Config:
OSX 10.4.11, 2.1 GHz PowerPC Imac G5, Speicher 2.5 GB DDR2 SDRAM,
Creative Suite Professional CS3
Top

Martin Fischer  M  p
Beiträge: 9424

8. Aug 2007, 13:51

Beitrag #2 von 12
Beitrag ID: #306992

Bewertung:

(7070 mal gelesen)
URL zum Beitrag

Beitrag als Lesezeichen

JSFindschange vereinfachen


Hallo Manfred,

mit "alles-in-einer-Zeile" ist in CS2 noch nicht drin (in CS3 ginge das über GREP).

Aber Du könntest statt dem TextCleanup.jsx das Skript ReplaceInStringProWithConfig.jsx von Matthias verwenden.

Gesuchter String "^9m"
ersetze: "m"
durch: "^<m"

Zur Funktion:
Zunächst werden alle Kombinationen zwischen einer beliebigen Zahl und "m" mit einer temporären Farbe markiert. Anschließend werden alle markierten "m"s durch "^>m" ersetzt.


Martin Fischer

Skripte für InDesign im Skriptarchiv von HilfDirSelbst.ch

als Antwort auf: [#306982] Top

zaphodbeeblebroxx p
Beiträge: 396

8. Aug 2007, 23:41

Beitrag #3 von 12
Beitrag ID: #307104

Bewertung:

(7029 mal gelesen)
URL zum Beitrag

Beitrag als Lesezeichen

JSFindschange vereinfachen


 
Hallo MM, Hallo Martin,

wenn Du nur schwarzen Text durchsuchst kannst Du folgendes machen:

Im InDesign-Dokument eine temporäre Farbe anlegen z.B. die Farbe "Gefunden" in RGB-Rot.

In Deiner Suchen/Ersetzen-Liste suchen nach "^9m" (beliebige Zahl + m) ersetzen mit der temporären Farbe.
Nach "m" in der temporären Farbe suchen und durch "^<m" in der Farbe schwarz ersetzen.

Somit wären es noch zwei Zeilen. Habe momentan keine Scripting-Referenz zur Hand, aber es müsste in etwa wie folgt lauten:

Code
{findText:"^9m"} {fillColor:"Gefunden"} once	 
{findText:"m", fillColor:"Gefunden"} {changeText:"^<m", fillColor:"Black"} once



Matthias

als Antwort auf: [#306992] Top

Marco Morgenthaler p
Beiträge: 2181

9. Aug 2007, 10:48

Beitrag #4 von 12
Beitrag ID: #307153

Bewertung:

(7012 mal gelesen)
URL zum Beitrag

Beitrag als Lesezeichen

JSFindschange vereinfachen


Hallo Matthias

Ohne es jetzt getestet zu haben: Bleiben mit deiner zweizeiligen Liste nicht die Zahlen in RGB-Rot? Oder wo werden die wieder umgestellt auf Farbe Schwarz?

Gruss Marco
iMac 3.06 GHz | 8 GB RAM | OS X 10.6.8 | Indesign 7.0.4 (CS5 Design Premium)

als Antwort auf: [#307104] Top

zaphodbeeblebroxx p
Beiträge: 396

9. Aug 2007, 12:25

Beitrag #5 von 12
Beitrag ID: #307170

Bewertung:

(6996 mal gelesen)
URL zum Beitrag

Beitrag als Lesezeichen

JSFindschange vereinfachen


 
Hallo Marco,

Du hast natürlich recht. Ich habe vergessen zu erwähnen, dass ich in so einem Fall am Ende die temporäre Farbe wieder manuell lösche und im darauffolgenden Menü [schwarz] als "Ersetzungsfarbe" auswähle.

Alternativ benötigt man in der Suchen/Ersetzen-Liste noch eine weitere Zeile, in der alle Zahlen in der temporären Farbe wieder durch schwarz ersetzt werden.

Man benötigt also statt der 10 Zeilen (für alle Zahlen von 0 bis 9) 3 Zeilen, um das Problem zu lösen. Immerhin 7 Zeilen für das Textcleanup-Skript eingespart.


Matthias

als Antwort auf: [#307153] Top

Quarz  M  p
Beiträge: 2368

9. Aug 2007, 17:27

Beitrag #6 von 12
Beitrag ID: #307264

Bewertung:

(6965 mal gelesen)
URL zum Beitrag

Beitrag als Lesezeichen

JSFindschange vereinfachen


Hallo Matthias,

JSFindchange mit CS3

Ich hatte vor einiger Zeit Schwierigkeiten
mit einem Script "fillColor" zuzuweisen.
Ich habe dann statt einer Farbe ein
ZF "dummy" zugewiesen.

Weißt Du denn vielleicht, wie der Code
für "Farbe" in CS3 lauten muss?

Gruß
Quarz

als Antwort auf: [#307170] Top

Martin Fischer  M  p
Beiträge: 9424

9. Aug 2007, 17:37

Beitrag #7 von 12
Beitrag ID: #307265

Bewertung:

(6961 mal gelesen)
URL zum Beitrag

Beitrag als Lesezeichen

JSFindschange vereinfachen


Quarz,

fillColor ist schon richtig.
Aber Du bist einem Bug auf die Schliche gekommen.

Die Farbe, nach der Du im Dokument suchst, muß - für das Script - auch auf Programmebene vorhanden sein (also da, wo kein Dokument geöffnet ist).

Wenn sie auch dort vorhanden ist, kannst Du sie im Dokument suchen - wahrscheinlich auch mit JSFindChange.

Diesem Bug sind wir vor ca. 2 Wochen im InDesign Scripting-Forum auf die Schliche gekommen (Dave Saunders hat den workaround gefunden).


Martin Fischer

Skripte für InDesign im Skriptarchiv von HilfDirSelbst.ch

als Antwort auf: [#307264] Top

Quarz  M  p
Beiträge: 2368

9. Aug 2007, 18:33

Beitrag #8 von 12
Beitrag ID: #307272

Bewertung:

(6948 mal gelesen)
URL zum Beitrag

Beitrag als Lesezeichen

JSFindschange vereinfachen


Hallo Martin,

ja, es funktioniert, so wie Du es beschrieben hast.
Jetzt kann ich meine alten Textdateien wieder benutzen.

Ich danke Dir.

Gruß
Quarz

als Antwort auf: [#307265] Top

Martin Fischer  M  p
Beiträge: 9424

9. Aug 2007, 20:40

Beitrag #9 von 12
Beitrag ID: #307281

Bewertung:

(6935 mal gelesen)
URL zum Beitrag

Beitrag als Lesezeichen

JSFindschange vereinfachen


Hallo Quarz,

fein, daß es so geht.

((Christoph, bitte mal diskret wegschauen))
Das folgende Skript addiert den Überfluß der Farben im Dokument (gebenüber der Applikation) zu den Farben der Applikation (es erweitert also die Farbfelderpalette um die Farben, die nur im Dokument, nicht aber in der Applikation definiert sind).

Code
// addDocSwatchesSurplus2App.jsx 

var myCols = app.activeDocument.swatches;
var newCols = new Array;
for ( i = 0; i< myCols.length; i++ )
try
{
eval ( 'app.colors.add' + eval( 'myCols[i].properties.toSource()' ) );
app.swatches.item(myCols[i].name).label = 'temp';
newCols.push( myCols[i].name );
}
catch( e ){}

if ( newCols.length > 0 )
alert( 'Hinzugefügte Farben (Programmebene):\r' + newCols.join( '\r' ) );

Das Skript oben markiert die der Applikation neu hinzugefügten Farben.
Auf diese Weise ist es möglich, diese temporär hinzugefügten (und markierten) Farben auch wieder von der Applikation zu entfernen:
Code
// removeTempSwatches.jsx 

var myCols = app.swatches;
var delCols = new Array;

for ( i = myCols.length -1; i >= 0; i-- )
{
if (myCols[i].label == 'temp')
{
delCols.push(myCols[i].name);
myCols[i].remove();
}
}

if ( delCols.length > 0 )
alert( 'Gelöschte temporäre Farben (Programmebene):\r' + delCols.join( '\r' ) );



Martin Fischer

Skripte für InDesign im Skriptarchiv von HilfDirSelbst.ch

als Antwort auf: [#307272]

(Dieser Beitrag wurde von Martin Fischer am 9. Aug 2007, 20:46 geändert)
Top

Quarz  M  p
Beiträge: 2368

10. Aug 2007, 10:47

Beitrag #10 von 12
Beitrag ID: #307349

Bewertung:

(6910 mal gelesen)
URL zum Beitrag

Beitrag als Lesezeichen

JSFindschange vereinfachen


Hallo Martin,

gestern beim Testen hatte ich nach dem Ausführen
von TextCleanup haufenweise neue, duplizierte und
durchnummerierte Farben in der Farbpalette.

Heute habe ich Deine beiden neuen Scripte testen.
Aber nach dem Durchlauf von TextCleanup war in
der Farbpalette nur eine neue Farbe "black"
aufgetaucht.

Diese wurde auch von Deinem ersten Script angezeigt
aber mit dem zweiten Script nicht gelöscht.

Gruß
Quarz

als Antwort auf: [#307281] Top

Martin Fischer  M  p
Beiträge: 9424

10. Aug 2007, 10:55

Beitrag #11 von 12
Beitrag ID: #307352

Bewertung:

(6907 mal gelesen)
URL zum Beitrag

Beitrag als Lesezeichen

JSFindschange vereinfachen


Hallo Quarz,

Antwort auf: gestern beim Testen hatte ich nach dem Ausführen
von TextCleanup haufenweise neue, duplizierte und
durchnummerierte Farben in der Farbpalette.

Der Teil vor der Nummer würde mich interessieren.
Ist es der Name Deiner temporäre Farbe?

Die duplizierten Farben waren im Dokument (also nicht auf Programmebene) - oder?

Antwort auf: Diese wurde auch von Deinem ersten Script angezeigt
aber mit dem zweiten Script nicht gelöscht.


Das zweite Skript löscht nur solche Farben, die über das erste Skript dem Programm (nicht dem Dokument) neu zugewiesen wurden und die dabei ein bestimmtes Etikett ('temp') verpaßt bekommen haben.

Wenn "black" über TextCleanup im Dokument angelegt worden ist, dann gehört das Aufräumen dieser Farbe aus zweierlei Gründen nicht mehr zum Job des zweiten Skripts:
1. "black" ist eine Farbe des Dokuments;
2. "black" ist nicht durch das erste Skript angelegt worden und trägt deswegen auch nicht das genannte Label.


Martin Fischer

Skripte für InDesign im Skriptarchiv von HilfDirSelbst.ch

als Antwort auf: [#307349] Top

Quarz  M  p
Beiträge: 2368

10. Aug 2007, 12:22

Beitrag #12 von 12
Beitrag ID: #307385

Bewertung:

(6891 mal gelesen)
URL zum Beitrag

Beitrag als Lesezeichen

JSFindschange vereinfachen


Hallo Martin,

auch bei einer Wiederholung kommen nicht mehr die vielen Farben.
Ich kann Dir also leider nichts dazu sagen, denn gestern habe ich
die Datei nicht abgespeichert.

Aber, wenn das "Programm" die benötigten Farben hat, brauchen
sie im "Dokument" nicht aufgeführt zu werden.
Sie werden dann automatisch mit dem Script erstellt.

Gruß
Quarz

als Antwort auf: [#307352] Top


Forenindex » Programme » Print/Bildbearbeitung » Adobe InDesign » JSFindschange vereinfachen


^