bereinigende Zwischenablage

Textbausteine und Erweiterungen, die von Anwendern für die Allgemeinheit bereitgestellt werden.
Post Reply
low
Posts: 30
Joined: 21 Jul 15, 07:37

bereinigende Zwischenablage

Post by low » 08 May 19, 08:33

Hallo miteinander,

Peter Stotz und ich haben vor einer Weile gemeinsam an einem Problem getüftelt (https://www.bartelsmedia.com/forum/view ... 47&t=17279).
Es ging dabei darum eine Zwischenablage zu erstellen, die es ermöglicht Texte zu kopieren und um unnötige Silbentrennungen und Zeilenumbrüche zu bereinigen.

Dies spart einem viel Arbeit, wenn man z.B. größere Textpassagen aus einem pdf in eine andere Anwendung kopieren will.
Dabei werden die Silbentrennungen und Umbrüche die der Originalformatierung des pdf entsprechen mitkopiert.
Diese muss man dann normalerweise umständlich per Hand entfernen.

Die beiden unten stehenden Makrovarianten erledigen dies automatisch.

Beispiel zur Erläuterung:

Kopie aus dem Stammdokument:
Wenn man sich intensiv mit dem Thema "Validierung" beschäftigt, gerät man leicht in das
Philosophische oder aber man diskutiert lange über Kommastellen. Beides kann wichtig
sein - solange das Eine nicht den Blick für das Andere versperrt. Ich denke, das Hinterfra-
gen von Allem und die klare Zielsetzung machen eine zeitgemäße Validierung aus.
Ausgabe des Makros:
Wenn man sich intensiv mit dem Thema "Validierung" beschäftigt, gerät man leicht in das Philosophische oder aber man diskutiert lange über Kommastellen. Beides kann wichtig sein - solange das Eine nicht den Blick für das Andere versperrt. Ich denke, das Hinterfragen von Allem und die klare Zielsetzung machen eine zeitgemäße Validierung aus.
Umsetzung Variante 1:
Ihr markiert den zu bereinigenden Text und aktiviert dann den Baustein.
Anschließend habt ihr die Möglichkeit den Text per Klick auf den Balloon-Hinweis direkt beireinigt wieder auszugeben, oder ihn per "Einfügen" aus der Zwischenablage zu holen.

Code: Select all

(* 20190428 • Zeilenwechsel, Silbentrennungen, alle Leerzeilen und alle mehrfach aufeinanderfolgenden whitespaces 
              aus der Textmarkierung entfernen 
*){#setclipboard}{#clipboard -copy}(* 
  1. Den Zeilenwechsel CRLF ggf. mit Silbentrennungszeichen und whitespace-Zeichenfolgen vor und/oder nach dem Zeilenwechsel
  mit einem Leerzeichen ersetzen 
  2. Leerzeilen und mehrfach aufeinanderfolgende whitespaces mit einem whitespace ersetzen
*){#setclipboard {#regexrep -text {#regexrep -text {#insertclipboard} -expr \s*-\s*(?<!.)\s* -repexpr } -expr \s+ -repexpr  }}(* 
  Balloonmeldung und optionale Ausgabemöglichkeiten
*){#balloon -title Alle Zeilenwechsel entfernt! -text Ausgabe an der Cursorposition: Anklicken oder STGR+v ... -onclick {#insertclipboard}}
Umsetzung Variante 2:
Ihr markiert den zu bereinigenden Text in die Zwischenablage und aktiviert den Baustein. Dieser gibt dann automatische den bereinigten Text an Cursorposition aus.

Code: Select all

(* 20190428 • Zeilenwechsel, Silbentrennungen, alle Leerzeilen und alle mehrfach aufeinanderfolgenden whitespaces 
              aus der Textmarkierung entfernen 
*){#set -name t1 -content {#regexrep -text {#insertclipboard} -expr \s*-\s*(?<!.)\s* -repexpr }}{#set -name t2 -content {#regexrep -text {{t1}} -expr \s+ -repexpr  } -output}
Hinweis:
Da die Bereinigung des kopierten Textes auf RegEx beruht, funktionieren beide Makros nur mit Phraseexpress ab Version 14.

Post Reply