[GastForen Programme Print/Bildbearbeitung Adobe InDesign Skriptwerkstatt Die Paragraphen um eine GREP Fundstelle herum ansprechen?

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

Die Paragraphen um eine GREP Fundstelle herum ansprechen?

Stephan_M
Beiträge gesamt: 480

6. Sep 2011, 16:27
Beitrag # 1 von 7
Bewertung:
(2852 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo,

Ich habe eine GrepSuche und das Resultat mit den Fundstellen.
Code
var _result = _dok.findGrep(); 

Ich muss zunächst eine Liste erstellen mit allen GREP-Fundstellen. Kein Problem:
Code
for (var i = _result.length-1; i >= 0; i--) { 
_string += _result[i].contents + "\r";}

Nun muss ich hinter jede Fundstelle den letzten Paragraph (also den Text des Absatzes der VOR der Grepfundstelle liegt) hinkopieren. Leider geht das nicht mit:
Code
_string += _result[i].paragraphs[-1].contents + "\r"; 

Was mir sehr helfen würde ist die Paragraphennummer der Fundstelle innerhalb der Story. Also die Fundstelle liegt in Paragraph XX innerhalb der Parentstory. Wenn ich XX hätte könnte ich alle Paragraphen um die Fundstelle herum greifen.
Hat jemand eine Idee, wie?

Herzliche Grüße,
Stephan


[b]Die Aufgabe im Hintergrund:

Folgendes Ausgangsmaterial in einer Liste mit 20.000 Einträgen wir folgt umwandeln:

Code
Plectrums-Picks 
Dunlop Picks - Nylon Standard 44P
185 200 White
185 205 Cream
185 210 Light grey

Zu:
Code
185 200 
Plectrums-Picks
Dunlop Picks - Nylon Standard 44P
White

185 205
Plectrums-Picks
Dunlop Picks - Nylon Standard 44P
Cream

185 210
Plectrums-Picks
Dunlop Picks - Nylon Standard 44P
Light grey

X

Die Paragraphen um eine GREP Fundstelle herum ansprechen?

WernerPerplies
Beiträge gesamt: 2693

6. Sep 2011, 18:29
Beitrag # 2 von 7
Beitrag ID: #479708
Bewertung:
(2815 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Stephan,

ich hatte vorhin Deine Frage nicht richtig verstanden, deshalb meine unvollständige Antwort.

Eine direkte Anwort weiß ich nicht, ich hätte vermutet, dass das Property index auf den Absatz in der Story.Paragraphs - Collection verweist, aber dem ist wohl nicht so. Keine Ahnung, was das für ein Index ist.

Falls niemand eine bessere Antwort liefert, würde ich die Suche über die Story.Paragraphs - Collection als Schleife laufen lassen.

In etwa so:

Code
// story enthält drei Absätze: 1. Absatz, 2. Absatz, 3. Absatz 
main();

function main()
{

var story = app.activeDocument.stories[1];
var paraPointers = new Array();
for (var i = 0; i<story.paragraphs.length; i++)
{
var match = findGrep(story.paragraphs[i], "2. Absatz");
if ((match!=null) && (match.length>0) )
{
paraPointers.push(i);
}
}
alert(paraPointers);
}


function findGrep(object, searchString)
{
app.findGrepPreferences = NothingEnum.nothing;
app.changeGrepPreferences = NothingEnum.nothing;
app.findGrepPreferences.findWhat = searchString;
var founds = object.findGrep();
app.findGrepPreferences = NothingEnum.nothing;
app.changeGrepPreferences = NothingEnum.nothing;
return founds;
}


Anschließend kannst Du dann in der Absatzliste relative adressieren.


als Antwort auf: [#479701]

Die Paragraphen um eine GREP Fundstelle herum ansprechen?

Martin Fischer
  
Beiträge gesamt: 12664

6. Sep 2011, 20:55
Beitrag # 3 von 7
Beitrag ID: #479711
Bewertung:
(2798 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Stephan,

zähle die Absätze im Textabschnitt bis zum Index der Fundstelle, wie von Gerald in http://www.hilfdirselbst.ch/..._P365169.html#365169 angegeben oder verwende previousItem(), wie in dem besagten Thread wenig später von Matthias vorgeschlagen.

Siehe auch die entsprechenden Funktionen previousPara() und nextPara() in http://www.hilfdirselbst.ch/..._P365188.html#365188.


als Antwort auf: [#479701]
(Dieser Beitrag wurde von Martin Fischer am 6. Sep 2011, 21:02 geändert)

Die Paragraphen um eine GREP Fundstelle herum ansprechen?

Stephan_M
Beiträge gesamt: 480

7. Sep 2011, 08:10
Beitrag # 4 von 7
Beitrag ID: #479716
Bewertung:
(2754 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo und VIELEN Dank Werner und Martin.

Werner, Dein Script hätte mir auch schon geholfen, wenn nicht Martin noch mit einer leicht besseren Lösung gekommen wäre. Ich bin jetzt auf dem besten Wege die mir gestellte Aufgabe zu erledigen.

Hey, ehrlich, wer kommt schon darauf das funktioniert:
Code
var myPara = myFoundItems[i]; 

...das also die Fundstelle schon den jetzigen Absatz in der Story markiert.

Vielen Dank,
Stehpan


als Antwort auf: [#479711]

Die Paragraphen um eine GREP Fundstelle herum ansprechen?

WernerPerplies
Beiträge gesamt: 2693

7. Sep 2011, 09:07
Beitrag # 5 von 7
Beitrag ID: #479721
Bewertung:
(2739 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Stephan,

ja, durch Martins Vorschlag habe ich endlich gelernt, was es mit dem Index eines Absatzes auf sich hat.

Und das werde ich sicherlich gebrauchen können.

Dennoch werde ich in manchen Situationen meine Lösung vorziehen, aber das hängt von der Verteilung der Fundstellen ab.


als Antwort auf: [#479716]

Die Paragraphen um eine GREP Fundstelle herum ansprechen?

Marco Morgenthaler
Beiträge gesamt: 2474

7. Sep 2011, 12:38
Beitrag # 6 von 7
Beitrag ID: #479741
Bewertung:
(2702 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Stephan

Dein Ausgangsmaterial lässt sich auch mit einem einfachen Grep umwandeln, vorausgesetzt, dass die 20’000 Einträge immer den gleichen Aufbau haben (Klammern gruppieren die Einheiten):
(2 Zeilen Text), dann drei Zeilen mit jeweils einer (sechsstelligen Nummer) sowie (Farbe).

Folgender Grep löst die Aufgabe (vgl. Screenshot: vorher [oben]/nachher [unten]):
Suchen nach:
(.+\r.+\r)(\d\d\d \d\d\d )(.+\r)(\d\d\d \d\d\d )(.+\r)(\d\d\d \d\d\d )(.+\r)

Ändern in:
$2\r$1$3\r$4\r$1$5\r$6\r$1$7

Geht aber nur, wenn keine Formatierungen wie kursiv usw. vorhanden sind. Wie hier auch schon diskutiert, transportiert Grep keine Formatierungen bei Textumstellungen.

Dies nur als Idee und Ergänzung zum Skript, das sicher viel eleganter die Aufgabe löst!

Gruss, Marco


als Antwort auf: [#479701]
Anhang:
Bildschirmfoto 2011-09-07 um 12.32.02.png (30.9 KB)

Die Paragraphen um eine GREP Fundstelle herum ansprechen?

Stephan_M
Beiträge gesamt: 480

7. Sep 2011, 13:00
Beitrag # 7 von 7
Beitrag ID: #479744
Bewertung:
(2691 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Marco,
hach, wenn es nur so einfach wäre und die Daten so gut vorbereitet. Leider muss ich eine Menge Ausnahmeregelungen programmieren. Danke Dir trotzdem, das hätte ja die totale Bombe sein können.

viele Grüße,
Stephan


als Antwort auf: [#479741]
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
01.12.2022

Online
Donnerstag, 01. Dez. 2022, 10.00 - 10.45 Uhr

Webinar

Die drei ColorLogic-Programme ZePrA, CoPrA und ColorAnt sind in neuen Versionen mit vielen neuen Funktionen im Jahr 2022 veröffentlich worden oder werden in Kürze veröffentlicht (ColorAnt 9). In unserem ca. 45 minütigen kostenlosen Webinar zeigen wir Ihnen einige dieser neuen Funktionen mit dem Schwerpunkt auf Automatisierung und Produktivitätssteigerungen.

Ja

Organisator: Impressed GmbH

Kontaktinformation: Silvia Noack, E-Mailsnoack AT impressed DOT de

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

ColorLogic Update-Webinar ZePrA 10, CoPrA 9 und ColorAnt 9
Veranstaltungen
02.02.2023

Prozesse optimieren und effizient gestalten

Zürich
Donnerstag, 02. Feb. 2023, 08.00 - 10.00 Uhr

Digitalisierung, Webauftritt

Digitalisierung mitgestalten - Worauf kommt es an? Wie wichtig ist die Webseite? Webseite mit Word Press? Interne Prozesse optimieren

Ja

Organisator: B. Isik - SNF Academy

Kontaktinformation: Birol Isik, E-Mailinfo AT bkcc DOT ch

https://digitalisierung-heute.ch/digitalisierung-informationstag-schweiz/