[GastForen Programme Print/Bildbearbeitung Adobe InDesign Skriptwerkstatt Suchergebnis als Datei / Text ausgeben

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

Suchergebnis als Datei / Text ausgeben

rhj
Beiträge gesamt: 51

1. Nov 2009, 11:52
Beitrag # 1 von 10
Bewertung:
(4623 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo,

gibt es ein Script, welches (Text/GREP-)Suchergebnisse in eine (neue) Datei oder neuen Textrahmen schreibt ?

Also etwa so: Ich suche nach dem Wort "Haus" oder ich durchsuche ein Dokument mit einem GREP-Ausdruck und möchte diese Ergebnisse MIT Seitenzahl ausgelesen haben. ===> "Haus" = S. 13, 15, 21 ...

Schönen Sonntag und Danke,

Rainer
X

Suchergebnis als Datei / Text ausgeben

Gerald Singelmann
  
Beiträge gesamt: 6269

1. Nov 2009, 20:22
Beitrag # 2 von 10
Beitrag ID: #413261
Bewertung:
(4566 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Ja, es gibt ein Script, das eine Wörterliste in den Index aufnimmt. Das sollte hier über die Suchenfunktion zu finden sein.


als Antwort auf: [#413221]

Suchergebnis als Datei / Text ausgeben

rhj
Beiträge gesamt: 51

1. Nov 2009, 22:09
Beitrag # 3 von 10
Beitrag ID: #413266
Bewertung:
(4544 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Herr Singelmann,

meinten Sie das hier: http://indesign.hilfdirselbst.ch/...zdatei-erzeugen.html ?

Ich gehe nochmal auf die genauere Suche, heut oder morgen.

Danke.

Rainer


als Antwort auf: [#413261]

Suchergebnis als Datei / Text ausgeben

Gerald Singelmann
  
Beiträge gesamt: 6269

2. Nov 2009, 00:04
Beitrag # 4 von 10
Beitrag ID: #413272
Bewertung:
(4515 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Das oder dieses sollten, wenn ich die Aufgabenstellung verstanden habe, weiterhelfen können.


als Antwort auf: [#413266]

Suchergebnis als Datei / Text ausgeben

Martin Fischer
  
Beiträge gesamt: 12783

2. Nov 2009, 10:40
Beitrag # 5 von 10
Beitrag ID: #413302
Bewertung:
(4403 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Gerald,

ich habe die Aufgabe eher so verstanden, dass die Treffer eines regulären Ausdrucks ausgegeben werden sollten; und zwar mit Angabe der Seite(n) auf der sie auftauchen.

So etwas Ähnliches hatten wir mal zumAufstöbern von verwendeten Zeichen eines Fonts: usedCharsOfAppliedFont.jsx.

Aber die Trefferanzeige von einem regulären Ausdruck hatten wir meines Wissens noch nicht.

Hier eine Studie, die noch ausgebaut werden könnte.
Code
// listGrep.jsx 

var myGrep = prompt ('GREP', app.findGrepPreferences.findWhat );

//==============================================
if (myGrep == null || myGrep == '')
exit();
app.findGrepPreferences = app.changeGrepPreferences = null;
app.findGrepPreferences.findWhat = myGrep;

var myArray = new Array;
var myFound = app.documents.firstItem().findGrep();
var myResult = new Array;

for ( var i = 0; i < myFound.length; i++ )
{
var myContents = myFound[i].contents;
if (myArray[myContents] == null)
{
myArray[myContents] = new Array
}
var myPage = findPage(myFound[i])
if (myPage == null)
myArray[myContents].push('Übersatz');
else if (myPage.constructor.name == 'Spread')
myArray[myContents].push(myPage.pages.item(0).name + ' (Montagefläche)');
else
myArray[myContents].push(myPage.name);
}

for ( var n in myArray)
myResult.push(n + ':\t' + (trimArray (myArray[n])).join(', '));

makeInfoFrame('Ergebnis für »' + myGrep + '«\r==============\r' + myResult.join('\r'));


// ===============================================================
// Funktionen
// ===============================================================
function makeInfoFrame ( aData )
{
var myFrame = app.activeDocument.textFrames.add( {contents: aData, geometricBounds: [0, -75, 210, 0] } );
selectIt(myFrame);
}

function trimArray ( array )
{
var str = array.sort( ).join('\r')+'\r';
str = str.replace(/([^\r]+\r)(\1)+/g, '$1');
str = str.replace(/\r$/,'');
return str.split('\r');
}

function findPage(theObj)
{
var thePage = theObj;
if (thePage.hasOwnProperty("baseline"))
{
thePage = thePage.parentTextFrames[0];
if (thePage == null) {return null }
}
while (thePage.constructor.name != "Page" && thePage.constructor.name != "Spread")
{
var whatIsIt = thePage.constructor.name;
switch (whatIsIt)
{
case "Character" :
thePage = thePage.parentTextFrames[0];
break;
case "Application" :
// must be off page, so ignore
return null;
}
thePage = thePage.parent;
}
return thePage;
}

function selectIt( theObj )
{
// wählt das übergebene Objekt aus und zoomt es heran (wechselt dabei ggf. die Seite)
var myZoom = app.activeWindow.zoomPercentage; // Zoomfaktor bei Bedarf auch fester Wert: 400;
app.select(theObj,SelectionOptions.replaceWith);
app.activeWindow.zoomPercentage = myZoom;

// Option zum Abbruch, falls innerhalb einer Schleife aufgerufen
return app.selection[0];
}


Dieses Skript fordert zur Eingabe eines regulären Ausdrucks auf.
Als Voreinstellung wird der aktuelle Ausdruck im GREP-Suchfenster übernommen (so kann man diesen z.B. einmal direkt suchen bevor man das Skript ausführt).

Die Treffer werden in einem neuen Textrahmen auf der Montagefläche links neben der ersten Seite ausgegeben (abhängig vom Nullpunkt des Lineals, den ich hier nicht eigens justiert habe).
Jeder neuer Aufruf des Skripts erzeugt einen neuen Textrahmen.
Das Ergebnis wird unsortiert ausgegeben.

Treffer in Übersatz werden als 'Übersatz' angegeben.
Treffer in Textrahmen auf der Montagefläche als '[Seitenzahl der *ersten' Seite des Druckbogens] (Montagefläche)'.


als Antwort auf: [#413272]
(Dieser Beitrag wurde von Martin Fischer am 2. Nov 2009, 15:27 geändert)

Suchergebnis als Datei / Text ausgeben

rhj
Beiträge gesamt: 51

2. Nov 2009, 11:52
Beitrag # 6 von 10
Beitrag ID: #413322
Bewertung:
(4377 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Martin,

bei mir läuft es nicht, siehe Anlage.
Du hast die Aufgabenstellung besser formuliert als ich in meiner Anfrage! :-)

Danke.

Rainer


als Antwort auf: [#413302]
Anhang:
error.JPG (29.6 KB)

Suchergebnis als Datei / Text ausgeben

Uwe Laubender
Beiträge gesamt: 5319

2. Nov 2009, 12:00
Beitrag # 7 von 10
Beitrag ID: #413328
Bewertung:
(4374 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo, Martin!
Bei mir läuft das Script.
Sehr schöne Studie. Ausbaufähig, insofern, daß man:

1. das Ergebnis sortiert erhält
2. einen Link von der Liste zum Treffer erhält

3. jeden einzelnen Treffer listet:
Das kann man erreichen, indem man zwei Zeilen auskommentiert:
Code
function trimArray ( array )   
{
var str = array.sort( ).join('\r')+'\r';
// str = str.replace(/([^\r]+\r)(\1)+/g, '$1');
// str = str.replace(/\r$/,'');
return str.split('\r');
}

4. die Gesamtzahl der Treffer anzeigt wird


als Antwort auf: [#413302]

Suchergebnis als Datei / Text ausgeben

Martin Fischer
  
Beiträge gesamt: 12783

2. Nov 2009, 12:17
Beitrag # 8 von 10
Beitrag ID: #413332
Bewertung:
(4362 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Uwe,

danke für die Rückmeldung.
Antwort auf: 1. das Ergebnis sortiert erhält
2. einen Link von der Liste zum Treffer erhält


Beides wäre möglich.
Aber bei der Sortierung wäre ggf. in Kauf zu nehmen, dass nur alphabetisch sortiert würde.
Es sei denn, man würde sich Mühe geben für eine Differenzierung der Sortierfunktion. ;-)

Antwort auf: 3. jeden einzelnen Treffer listet:


Dass ggf. mehrere Treffer auf einer Seite nur einmal aufgelistet werden, sollte ein besonderes Feature sein. Dazu habe ich die trimArray()-Funktion von Peter Kahrel geliehen.

Antwort auf: 4. die Gesamtzahl der Treffer anzeigt wird


Die Gesamtzahl aller Treffer ist einfach zu ermitteln: myFound.length.
Meintest Du die Gesamtzahl aller Treffer je ermittelten String?


als Antwort auf: [#413328]
(Dieser Beitrag wurde von Martin Fischer am 2. Nov 2009, 15:43 geändert)

Suchergebnis als Datei / Text ausgeben

Martin Fischer
  
Beiträge gesamt: 12783

2. Nov 2009, 12:20
Beitrag # 9 von 10
Beitrag ID: #413333
Bewertung:
(4360 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Rainer,

> bei mir läuft es nicht, siehe Anlage.

Im Moment habe ich keine Erklärung für den Fehler.
Könntest Du mir den GREP-Ausdruck und Dein Dokument zur Verfügung stellen (email-Adresse im Profil)?

Versuche es mal mit einem ganz einfachen Dokument und einem einfachen GREP: \d


als Antwort auf: [#413322]
(Dieser Beitrag wurde von Martin Fischer am 2. Nov 2009, 12:21 geändert)

Suchergebnis als Datei / Text ausgeben

rhj
Beiträge gesamt: 51

5. Nov 2009, 10:55
Beitrag # 10 von 10
Beitrag ID: #413807
Bewertung:
(4276 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
In einem Privatissimum mit Martin fand er eine Lösung, die ich hier gerne poste:

Wenn im oben zitierten Script die 1. Zeile mit folgender ausgetauscht wird,
Code
var myGrep = prompt ('GREP', app.findGrepPreferences.findWhat ); 

läuft es auch auf meinem Windows 7 RC (obwohl nicht klar ist, ob der Fehler vom Betriebssystem abhängt).

Ein Kommentar // in der Zeile
Code
app.findGrepPreferences = app.changeGrepPreferences = null; 

verhindert die Löschung der Formatabfragen in der Suchmaske, so daß man bequem mit den einmal eingestellten Formaten weitere Suchen ausführen kann.
Um die gefundenen Textstellen augenfälliger zu machen, gab mir Martin noch den Tip, beim zu ersetzenden Format die Unterstreichungsoptionen zu aktivieren und mit Offset und Farbe eine Art Textmarkerfunktion einzusetzen, die man später einfach wieder rückgängig macht.


Am Tollsten an diesem Skript wäre noch die Möglichkeit, die ausgegebenen Stellen mit der entsprechenden Seite zu verlinken (ähnlich wie in Martins listHyphenedWords.jsx http://indesign.hilfdirselbst.ch/...fung-darstellen.html

Aber das muß nicht sein!

Danke nochmals, Martin.

Grüße
Rainer


als Antwort auf: [#413333]
X

Aktuell

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
14.05.2024

Online
Dienstag, 14. Mai 2024, 10.00 - 10.30 Uhr

Webinar

Prozessoptimierung ist ein Teamsport! Keine Software und keine Maschine allein kann Ihnen helfen, die Effizienzpotenziale Ihres Betriebes maximal auszuschöpfen. Von der Auftragsannahme über die Vorstufe und den Druck bis hin zur Weiterverarbeitung – alles muss optimal ineinandergreifen. Apropos Weiterverarbeitung – in vielen Druckbetrieben fristet sie in Sachen Prozessoptimierung immer noch ein Schattendasein. Dabei liegen hier mittlerweile die größten Einsparpotenziale! In einem Webinar von Horizon und Impressed erfahren Sie, wie Sie diese Einsparungen realisieren können. Horizon, bekannt für innovative Lösungen in der Druckweiterverarbeitung, bietet mit iCE LiNK eine Workflowlösung für die Weiterverarbeitung. iCE LiNK überwacht, visualisiert und analysiert Produktionsabläufe und unterstützt bei der Wartung – damit immer alles reibungslos läuft. Den gleichen Anspruch hat der von Impressed entwickelte Impressed Workflow Server – er ist die smarte PDF-Workflow-Lösung für Druckereien, die Datenmanagement, Preflight und Produktionssteuerung übernimmt. Im Webinar zeigen Ihnen die Experten von Horizon und Impressed, wie beide Lösungen im Team die Effizienz und Produktivität Ihres Betriebes steigern können. Melden Sie sich am besten gleich an, wir freuen uns auf Sie! PS: Melden Sie sich in jedem Fall an – sollten Sie zum Termin verhindert sein, erhalten Sie die Aufzeichnung.

kostenlos

Ja

Organisator: Impressed / Horizon

https://www.impressed.de/schulung.php?c=sDetail&sid=327

Einsparpotenziale in der Weiterverarbeitung
Veranstaltungen
16.05.2024

Online
Donnerstag, 16. Mai 2024, 10.00 - 10.30 Uhr

Webinar

Komplizierte, kleinteilige Aufträge; alles sehr speziell; seit Jahren bewährte Prozesse – da können wir nichts standardisieren und automatisieren! Das sagen viele Großformatdrucker – aber stimmt das wirklich, ist dem tatsächlich so? Günther Business Solutions und Impressed treten in einem Webinar den Gegenbeweis an. Experten beider Unternehmen zeigen, wie Großformatdrucker vom Einsatz zweier bewährter Lösungen profitieren können: • von advanter print+sign von Günther Business Solutions, dem ERP-System für den Großformatdruck, dass alle Phasen der Wertschöpfung im Large Format Printing abdeckt • von Impressed Workflow Server, der smarten PDF-Workflow-Lösung für Druckereien, die Datenmanagement, Preflight und Produktionssteuerung übernimmt Über die Kombination beider Lösungen können Großformatdrucker ihre Prozesse mit modernen Workflows Schritt für Schritt automatisieren – und so zügig deutliche Zeit- und Kosteneinsparungen realisieren. Das Webinar sollten Sie sich nicht entgehen lassen – damit Sie keine Effizienzpotenziale mehr liegen lassen. Melden Sie sich am besten gleich an, wir freuen uns auf Sie! PS: Melden Sie sich in jedem Fall an – sollten Sie zum Termin verhindert sein, erhalten Sie die Aufzeichnung.

kostenlos

Nein

Organisator: Impressed / Günther Business Solutions

https://www.impressed.de/schulung.php?c=sDetail&sid=326

Und es geht doch: Automatisierung im Großformatdruck!