[GastForen Programmierung/Entwicklung AppleScript Bestimmten Text aus Textrahmen löschen

  • Suche
  • Hilfe
  • Lesezeichen
  • Benutzerliste
Themen
Beiträge
Moderatoren
Letzter Beitrag

Bestimmten Text aus Textrahmen löschen

MarionHaller
Beiträge gesamt: 13

22. Feb 2016, 09:32
Beitrag # 1 von 15
Bewertung:
(5981 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo zusammen,

ich bräuchte Eure Hilfe und zwar muss ich einen bestimmten Text aus einem Textrahmen löschen.
Es handelt sich um den Text "Endtab (^y) xx Min." das xx steht für verschiedene Minutenangaben in verschiedenen Dokumenten.

Könnt ihr mir helfen?

Gruß
X

Bestimmten Text aus Textrahmen löschen

Hans Haesler
  
Beiträge gesamt: 5805

22. Feb 2016, 11:22
Beitrag # 2 von 15
Beitrag ID: #547277
Bewertung:
(5956 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Marion,

dazu braucht es kein Script. Die Aufgabe kann mit Suchen/Ersetzen manuell gelöst werden.

1. Die Einfügemarke in den Text setzen;
2. Befehl+F, um den Dialog zu öffnen;
3. Klick auf den Reiter "GREP";
4. Im Eingabefeld "Suchen nach" folgendes eingeben:

Code
Endtab \(\^y\) [0-9]+ Min.( )? 

5. Das Feld "Ändern in" leer lassen.
6. Auf "Suchen" klicken;
7. Auf "Alle ändern" klicken.

Die Backslashes sind notwendig, um die Bedeutung der nachfolgenden Zeichen zu deaktivieren.
Das [0-9] steht für eine beliebige Zahl. Das Pluszeichen dahinter: eine oder mehrere.

Das Ende des Suchmusters ( )? bedeutet: Nach Min. kann ein Leerschlag sein. Oder auch nicht.

Gruss, Hans


als Antwort auf: [#547263]

Bestimmten Text aus Textrahmen löschen

Hans Haesler
  
Beiträge gesamt: 5805

22. Feb 2016, 11:40
Beitrag # 3 von 15
Beitrag ID: #547279
Bewertung:
(5954 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Marion,

gut, weil es verschiedene Dokumente sind, könnte es mit einem Script schon komfortabler sein.

Code
tell application "Adobe InDesign CS6" 
activate
-- die GREP-Vorgaben löschen ...
set find what of find grep preferences to nothing
set change to of change grep preferences to nothing

-- das GREP-Muster definieren
set find what of find grep preferences to "Endtab \\(\\^y\\) [0-9]+ Min.( )?"

-- das Suchen/Ersetzen ausführen
tell document 1
change grep
end tell

-- die GREP-Vorgaben zurücksetzen ...
set find what of find grep preferences to nothing
set change to of change grep preferences to nothing

-- die Anwenderin benachrichtigen
display dialog "Fertig." buttons "OK" default button 1 with icon 1 giving up after 1

end tell

Das Such-Muster ist dasselbe. Aber die Backslashes müssen verdoppelt sein, weil sie
im Script eine besondere Bedeutung haben, z.B. das Aufheben von Anführungszeichen.

Gruss, Hans


als Antwort auf: [#547263]

Bestimmten Text aus Textrahmen löschen

MarionHaller
Beiträge gesamt: 13

24. Feb 2016, 10:36
Beitrag # 4 von 15
Beitrag ID: #547342
Bewertung:
(5829 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Hans,

vielen Dank für deine Antworten.
Das Skript läuft ohne Fehlermeldung - mein Text wird aber leider nicht entfernt.
Das Skript macht einfach gar nichts. Kann das an der InDesign Version liegen? Ich arbeite in CS4.

LG Marion


als Antwort auf: [#547279]

Bestimmten Text aus Textrahmen löschen

Hans Haesler
  
Beiträge gesamt: 5805

24. Feb 2016, 11:07
Beitrag # 5 von 15
Beitrag ID: #547344
Bewertung:
(5823 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Marion,

bitte sehr.

Nun, an der InDesign-Version sollte es nicht liegen.

Hast Du es auch mit der manuellen Aktion in meiner ersten Antwort versucht?
Dabei darauf achten, dass nach dem Fragezeichen kein Leerschlag folgt (dieser wurde von der Serversoftware eingefügt).

Wenn es so auch nicht geht, dann kopiere dich bitte einen Textrahmen in ein neues Dokument und stelle es mir zu.

Gruss, Hans


als Antwort auf: [#547342]

Bestimmten Text aus Textrahmen löschen

MarionHaller
Beiträge gesamt: 13

25. Feb 2016, 11:43
Beitrag # 6 von 15
Beitrag ID: #547393
Bewertung:
(5716 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Die Abfrage funktioniert auch schon nicht… :(
Datei kommt in Extra-Mail.


als Antwort auf: [#547344]

Bestimmten Text aus Textrahmen löschen

Hans Haesler
  
Beiträge gesamt: 5805

25. Feb 2016, 11:59
Beitrag # 7 von 15
Beitrag ID: #547395
Bewertung:
(5711 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Marion,

dann ist es wenigstens ein übereinstimmendes Ergebnis ...

Danke für die Datei. Doch ich muss gleich weg, werde mir die Sache
aber noch heute Nachmittag vornehmen.

Gruss, Hans


als Antwort auf: [#547393]

Bestimmten Text aus Textrahmen löschen

Hans Haesler
  
Beiträge gesamt: 5805

25. Feb 2016, 19:52
Beitrag # 8 von 15
Beitrag ID: #547416
Bewertung:
(5652 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Marion,

jetzt ist der Fall klar.

Die Textkette "Endtab" ist nur die Beschreibung für das Zeichen "Zeilenspalter", welches im GREP-Suchen-nach-Feld als ~y einzusetzen ist.

Die Klammern sind ebensowenig vorhanden. Dafür ist ein "ab " eingefügt, welches Du nicht erwähnt hattest.

Das Muster für die manuelle GREP-Suche ist demnach:

Code
~y(ab )?[0-9]+ Min. 

So wird der Text gefunden und entfernt. Das Fragezeichen nach (ab ) bedeutet: "ab " kann vorhanden sein. Oder nicht.

Per Script ist es ähnlich:

Code
tell application "Adobe InDesign CS6" 
activate
-- die GREP-Vorgaben löschen ...
set find what of find grep preferences to nothing
set change to of change grep preferences to nothing

-- das GREP-Muster definieren
set find what of find grep preferences to "~y(ab )?[0-9]+ Min."
set change to of change grep preferences to ""

-- das Suchen/Ersetzen ausführen
tell document 1
change grep
end tell

-- die GREP-Vorgaben zurücksetzen ...
set find what of find grep preferences to nothing
set change to of change grep preferences to nothing

-- die Anwenderin benachrichtigen
display dialog "Fertig." buttons "OK" default button 1 with icon 1 giving up after 1

end tell

Auch mit dem Unicode-Wert (= 0x0008) für den Zeilenspalter klappt es:

Code
set find what of find grep preferences to "<0008>(ab )?[0-9]+ Min." 

Gruss, Hans


als Antwort auf: [#547393]

Bestimmten Text aus Textrahmen löschen

MarionHaller
Beiträge gesamt: 13

29. Feb 2016, 15:40
Beitrag # 9 von 15
Beitrag ID: #547477
Bewertung:
(5564 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Hans,

vielen Dank für die Hilfe.
Jetzt hab ich noch ein Problem: Ich brauche die Abfrage nur für Seite 66, 77 und 78. Wo muss ich das in der Abfrage eintragen?


als Antwort auf: [#547416]

Bestimmten Text aus Textrahmen löschen

Hans Haesler
  
Beiträge gesamt: 5805

29. Feb 2016, 17:33
Beitrag # 10 von 15
Beitrag ID: #547478
Bewertung:
(5530 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Marion,

ich bin im Skiurlaub. Vor Samstag, 5. März,
kann ich Dir leider nicht behilflich sein.

Doch vielleicht springt ein interessierter Mitleser ein.

Gruss, Hans


als Antwort auf: [#547477]

Bestimmten Text aus Textrahmen löschen

Hans Haesler
  
Beiträge gesamt: 5805

4. Apr 2016, 06:36
Beitrag # 11 von 15
Beitrag ID: #548532
Bewertung:
(5093 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Marion,

hier kommt endlich eine Antwort.

Die Seitenzahlen könnten per Dialog eingegeben werden. Im Eingabefeld müssen die Zahlen durch Kommas getrennt werden.
Eventuelle Leerschläge werden durch die anschliessende Behandlung entfernt.

Es wird nicht geprüft, ob die Seiten vorhanden sind. Ein 'try'-Wickel verhindert eine Fehlermeldung, aber es kommt keine Meldung.

Ein 'change grep' kann nicht direkt an die Seite gerichtet werden. Deshalb wird 'tell every text frame' eingesetzt.

Code
set pageNumbers to text returned of (display dialog "Seitennummern eingeben:" default answer "") 

set AppleScript's text item delimiters to " "
set tmpList to every text item of pageNumbers as list
set AppleScript's text item delimiters to {""}
set tmpString to every text item of tmpList as string
set AppleScript's text item delimiters to ","
set defList to every text item of tmpString as list
set AppleScript's text item delimiters to {""}

tell application "Adobe InDesign CS4"
activate
-- die GREP-Vorgaben löschen ...
set find what of find grep preferences to nothing
set change to of change grep preferences to nothing

-- das GREP-Muster definieren
set find what of find grep preferences to "~y(ab )?[0-9]+ Min."
set change to of change grep preferences to ""

-- das Suchen/Ersetzen ausführen
tell document 1
repeat with p from 1 to count of defList
set curNumber to item p of defList
try
tell page curNumber
tell every text frame
change grep
end tell
end tell
end try
end repeat
end tell

-- die GREP-Vorgaben zurücksetzen ...
set find what of find grep preferences to nothing
set change to of change grep preferences to nothing

-- die Anwenderin benachrichtigen
display dialog "Fertig." buttons "OK" default button 1 with icon 1 giving up after 1

end tell

Eine andere Möglichkeit: Die Liste der Seitenzahlen als Liste im Script definieren.

Code
set defList to {"66", "77", "78"} 

Diese Zeile ersetzt den obigen Dialogaufruf und die nachfolgenden sieben Zeilen, in welchen das Ergebnis mithilfe der 'AppleScript's text item delimiters in eine Liste umgewandelt wird.

Wenn die Seitenzahlen von Anführungszeichen umgeben sind, entspricht die Nummer der automatischen Seitenzahl. Ohne Anführungszeichen ist es die Position der Seiten im Dokument. Und dann muss die erste Seite die Nummer 1 haben und es dürfen keine Seiten durch einen Kapitelanfang ausgelassen werden.

Gruss, Hans


als Antwort auf: [#547477]
(Dieser Beitrag wurde von Hans Haesler am 4. Apr 2016, 06:36 geändert)

Bestimmten Text aus Textrahmen löschen

MarionHaller
Beiträge gesamt: 13

10. Mai 2016, 12:16
Beitrag # 12 von 15
Beitrag ID: #549493
Bewertung:
(4745 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo,

funktioniert einwandfrei…

SUPER - VIELEN DANK!

Marion


als Antwort auf: [#548532]

Bestimmten Text aus Textrahmen löschen

NEU!
Beiträge gesamt: 179

12. Mai 2016, 10:34
Beitrag # 13 von 15
Beitrag ID: #549614
Bewertung:
(4699 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Moinmoin,

kurz dazwischengefragt:
Warum kann man GREP-Vorgaben nicht speichern/wiederherstellen?

Code
set MyGREPstore to find grep preferences 
set MyGREPstore2 to change grep preferences

set find grep preferences to MyGREPstore
set change grep preferences to MyGREPstore2


error "„Adobe InDesign CS5.5“ hat einen Fehler erhalten: Ungültiger Wert für Einrichtung der Eigenschaft \"find grep preferences\". nothing erwartet, aber find grep preference erhalten." number 30477


als Antwort auf: [#549493]

Bestimmten Text aus Textrahmen löschen

Martin Fischer
Beiträge gesamt: 12494

12. Mai 2016, 11:14
Beitrag # 14 von 15
Beitrag ID: #549616
Bewertung:
(4686 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo,

versuch's mal über die properties:

Code
set MyGREPstore to properties of find grep preferences 
set MyGREPstore2 to properties of change grep preferences

set properties of find grep preferences to MyGREPstore
set properties of change grep preferences to MyGREPstore2


Geht das?

Viele Grüße
Martin




als Antwort auf: [#549614]

Bestimmten Text aus Textrahmen löschen

NEU!
Beiträge gesamt: 179

12. Mai 2016, 11:25
Beitrag # 15 von 15
Beitrag ID: #549618
Bewertung:
(4682 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Danke, das wars schon :-) Hat geklappt!


als Antwort auf: [#549616]
X

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
05.02.2021 - 05.11.2021

Digicomp Academy AG, Limmatstrasse 50, 8005 Zürich
Freitag, 05. Feb. 2021, 13.00 Uhr - Freitag, 05. Nov. 2021, 17.00 Uhr

Lehrgang

Bilden Sie sich zum zertifizierten Publishing-Multimedia-Profi aus. Neben Fotografie und Video befassen Sie sich mit der Medienproduktion, digitalen Publikationen und dem Webdesign für Desktop- und mobile Endgeräte.

Preis: CHF 10'500.-
Dauer: 30 Tage (ca. 210 Lektionen) – Unterricht findet jeweils am Freitag von 13 - 19 Uhr und Samstag von 09 - 17 Uhr statt

Ja

Organisator: Digicomp Academy AG

Kontaktinformation: Kundenberater-Team, E-Mailkundenberatung AT digicomp DOT ch

digicomp.ch/d/9PM

Veranstaltungen
09.09.2021 - 17.12.2021

Digicomp Academy, Zürich
Donnerstag, 09. Sept. 2021, 13.00 Uhr - Freitag, 17. Dez. 2021, 19.00 Uhr

Lehrgang

Steigen Sie in die Welt des Publishings ein und erlangen Sie die Zertifizierung von Publishing NETWORK. Lernen Sie in diesem Lehrgang Druckmedien professionell zu erarbeiten, druckfertige PDFs zu erstellen und CI/CD-Vorgaben umzusetzen.

Preis: 6'300.– zzgl. 7.7% MWST
Dauer: 18 Tage(ca. 126 Lektionen) – Unterricht findet jeweils am Freitag von 13 - 19 Uhr und Samstag von 09 - 17 Uhr statt.

Ja

Organisator: Digicomp Academy AG

Kontaktinformation: Kundenberater-Team, E-Mailkundenberater AT digicomp DOT ch