[GastForen Programme Print/Bildbearbeitung Adobe InDesign Skriptwerkstatt Bitte um Unterstützung bei FindChang....

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

Bitte um Unterstützung bei FindChang....

JoPo
Beiträge gesamt: 539

2. Mai 2024, 16:22
Beitrag # 1 von 3
Bewertung: |||
(4223 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hi zusammen,

kann mir jemand unter die Arme greifen bei folgendem Problem in der FinChangeList?

Hier mein Basistext:
Bieten Sie Praktika in Ihrem Unternehmen an?(tab)x(tab)Ja(tab) (tab)Nein
Bieten Sie Praktika in Ihrem Unternehmen an?(tab) (tab)Ja(tab)x(tab)Nein
Bieten Sie Praktika in Ihrem Unternehmen an?
Wenn ja: Siehe Ausschreibung in unserer Jobbörse(tab)x(tab)Ja(tab) (tab)Nein


Es gibt also drei Versionen des Textes. Für die beiden ersten funktioniert als "text"
text {findWhat:"Bieten Sie Praktika in Ihrem Unternehmen an\?\tx\tJa\t \tNein"} {changeTo:"Bieten Sie Praktika in Ihrem Unternehmen an\?\tJa\r"} {includeFootnotes:true, includeMasterPages:true, includeHiddenLayers:true, wholeWord:false}
text {findWhat:"Bieten Sie Praktika in Ihrem Unternehmen an\?\t \tJa\tx\tNein"} {changeTo:"Bieten Sie Praktika in Ihrem Unternehmen an\?\tNein\r"} {includeFootnotes:true, includeMasterPages:true, includeHiddenLayers:true, wholeWord:false}

Alles wunderbar.

Meine Einstellung für Version 3 versagt:
grep {findWhat:"Bieten Sie Praktika in Ihrem Unternehmen an\? \rWenn ja: (Siehe Ausschreibung in unserer Jobbörse)\tx\tJa\t \tNein"} {changeTo:"Bieten Sie Praktika in Ihrem Unternehmen an\? \r$1\tx\tJa\t \tNein\r"} {includeFootnotes:true, includeMasterPages:true, includeHiddenLayers:true, wholeWord:false}

Der Lext "Siehe Ausschreibung in unserer Jobbörse" soll übernommen werden.
Auch bei "ja" den Doppelpunkt zu escapen habe ich versucht.

Wo liegt mein (Denk-)Fehler?

Vielen Dank für Tipps.

Salü
Joachim
X

Bitte um Unterstützung bei FindChang....

Rudix
Beiträge gesamt: 52

3. Mai 2024, 07:57
Beitrag # 2 von 3
Beitrag ID: #588172
Bewertung:
(4147 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo!

Wenn ich es richtig sehe, dann möchtest du lediglich die nicht gewählte Option rausbereinigen, richtig? Das wäre auch gleich der erste Tipp: Bitte gib genau bekannt, was du eigentlich erreichen möchtest, ohne dass jemand anders sich das aus deinen Suchstrings (ggf. mühsam) erschließen muss.

Nehmen wir also an, es wäre so. Dann sind deine Abfragen von vornherein unnötig kompliziert resp. umfangreich; konzentriere dich nur auf den Teil des Textes, der wirklich einer Änderung bedarf, also alles zwischen "(tab)...(tab)Ja...Nein". Hintergrund: Suchen/Ersetzen und erst recht GREP ist ohnehin langsam genug, und A durch A zu ersetzen ist nicht nur eine Aktion, die grundsätzlich mit allen Fehlerarten behaftet ist, sondern auch eine, die unnötig Zeit kostet. Und die Strings werden unübersichtlich.

Bei deinem GREP-String ist mir ehrlich gesagt nicht ganz klar, was du überhaupt erreichen willst - das Einzige, was den Ersetzen-String unterscheidet, ist das abschließende Absatzzeichen.

Zum Syntaktischen: In der Original-"findChangeList.txt", zu finden im Skripte-Bedienfeld unter "Anwendung > Samples > JavaScript" steht unter Anderem:

//If you enter backslashes in the findWhat property of the findGrepPreferences object, they must be "escaped"
//as shown in the example below:
//
//{findWhat:"\\s+"}

Hilft das schonmal weiter? Also in Kürze:
- Nur den Text suchen/ersetzen, in dem auch Such- und Ersetz-Vorgänge stattfinden sollen - im Zweifel mit Lookaheads/Lookbehinds Fehler 2. Art minimieren;
- bei GREP-Abfragen via FindChangeByList insbes. o.g. Syntax beachten.
- bei GREP-Suchabfragen immer wenn möglich sinnvoll Gruppen bilden und diese beim Ersetzen referenzieren.
- Wenn Gruppen bei der GREP-Abfrage, dann möglichst, allein schon der Übersichtlichkeit wegen, alles gruppieren.


Und hier noch eine Möglichkeit, die nicht gewählte Option mit nur einer Abfrage per GREP
rauszubereinigen:
Suche nach einem Leerzeichen zwischen den Tabs:
Suche nach: (\t)( )(\t)(Ja|Nein)
Ersetze durch:

Oder: Suche nach "nicht x" zwischen den Tabs:
Suche nach: (\t)([^x])(\t)(Ja|Nein)

Und nicht vergessen, innerhalb der findChangeList.txt die Backslashes zu verdoppeln.


als Antwort auf: [#588170]

Bitte um Unterstützung bei FindChang....

JoPo
Beiträge gesamt: 539

6. Mai 2024, 09:37
Beitrag # 3 von 3
Beitrag ID: #588174
Bewertung:
(2528 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Rudix,

vielen Dank für Deine Antwort.
Damit komme ich schon mal ein gutes Stück weiter.
Du hast Recht, ein vorher-nachher-Vergleich wäre natürlich angebracht gewesen.
Nach der Breinigung wird das Ganze übersichtlicher sowie schneller.

Salü
Joachim


als Antwort auf: [#588172]