Einen Text und die einzelnen Absätze dieses Textes in der Zwischenablage bereitstellen

Textbausteine und Erweiterungen, die von Anwendern für die Allgemeinheit bereitgestellt werden.
Post Reply
Peter Stotz
PhraseExpress Expert
Posts: 637
Joined: 27 Feb 08, 15:07

Einen Text und die einzelnen Absätze dieses Textes in der Zwischenablage bereitstellen

Post by Peter Stotz » 04 Nov 17, 20:35

Phrasenset-Beispiel:
Eine Textmarkierung wird insgesamt und in einzelnen Absätzen (Zeilen) in Form von
'Menüeinträgen' in der Zwischenablage bereitgestellt.

Die Absatzeinträge befinden sich zwischen der oberen und unteren Begrenzungslinie
▼ —— ... —— ▼
#a1 <absatzeintrag 1>
#a2 <absatzeintrag 2>
... usw.
▲ —— ... —— ▲
Inhalt der unteren Begrenzungslinie ▲ —— … —— ▲ mit Autotext #aa ist der gesamte Text,
Inhalt der oberen Begrenzungslinie ▼ —— … —— ▼ ist die Absatzanzahl mit Autotext aa# .
Jeder Eintrag kann durch Anklicken und/oder mit seinem Autotext #a<nr> ausgewählt/ausgegeben
werden.

Anwendungsbeispiele:
• Einen Adressblock in einzelne Adresszeilen separieren und in der Zwischenablage anbieten
• Die einzelnen Aufgaben einer ToDo-Liste separieren und in der Zwischenablage anbieten
• Absätze eines Vertrags separieren, in der Zwischenablage anbieten und neu kombiniert (und
ggf. überarbeitet) zu einem neuen Schriftstück zusammenstellen
• Absätze einer Ausarbeitung separieren, in der Zwischenablage anbieten und neu kombiniert
und (überarbeitet) zu einem Abstract zusammenstellen.
• usw., usw.
Die Makroprogrammierung ist ein "poor man's Dokumentengenerator" - der Dokumentengenerator
der PhraseExpress Enterprise Edition (http://www.phraseexpress.com/de/dokumen ... rieren.htm)
ist ein wenig leistungsfähiger ;-)

Das Phrasenset besteht aus drei Textbausteinen:
- 'Hauptphrase' (ohne Autotext, die Verwendung einer Tastenkombination wird empfohlen)
- Phrase *Absaetze_separieren Subroutine der Hauptphrase, separiert die einzelnen Absätze
- Phrase reset#ax Subroutine der Hauptphrase (optional auch mit autotext verwendbar)
Bereinigt die Zwischenablage von vorangehenden Absatzeinträgen

WICHTIGE Voraussetzung für die Phrasenverwendung:
Die Zwischenablage benötigt einen Autotext - im Beispiel ist dies: ##clpbrd
Dies bitte unbedingt einrichten/anpassen!

Bereitstellung des Phrasensets
Das Phrasenset kann in PhraseExpress-Installationen ab Version 13.x als pxp-Datei importiert
werden (siehe Dateianhang). Bitte dabei beachten:
Die Textbausteindatei von PhraseExpress V13 ist NICHT kompatibel mit älteren Programmversionen!

Für 'Noch-Anwender' von PhraseExpress 12.x hier deshalb die kopierbaren Phrasen:
3.1 Hauptphrase

Code: Select all

(* 20171103 • Absätze einer Textmarkierung in der Zwischenablage bereitstellen
*){#setclipboard}{#clipboard -copy}{#check -text {#length {#insertclipboard}} -case > 0 -output {#insert reset#ax}{#setphrase -autotext #aa -description ▲ —— #aa: < Gesamter Text > ————————— ▲ -content {#insertclipboard} -folder ##clpbrd}{#settemp -name ##counter -content 1}{#insert *Absaetze_separieren}{#loop {#setphrase -autotext #a{#gettemp ##counter} -description {#check -text {#length #a{#gettemp ##counter}: {#gettemp ##Absatz{#gettemp ##counter}}} -case > 50 -output {#substr #a{#gettemp ##counter}: {#gettemp ##Absatz{#gettemp ##counter}} -from 1 -count 50} . . . -else #a{#gettemp ##counter}: {#gettemp ##Absatz{#gettemp ##counter}}} -content {#gettemp ##Absatz{#gettemp ##counter}} -folder ##clpbrd}{#settemp -name ##counter -content {#calc {#gettemp ##counter}-1 -round 0}} -count {#gettemp ##counter}}{#setphrase -autotext aa# -description ▼ —— aa#: < {#gettemp ##Absatz_Anzahl} > Abs{#check -text {#gettemp ##Absatz_Anzahl} -case == 1 -output atz -else ätze} —— {#datetime -f ddddd-hh:mm:ss} ▼ -content {#gettemp ##Absatz_Anzahl} -folder ##clpbrd} -else }
3.2 Phrase *Absaetze_separieren Autotext: *Absaetze_separieren

Code: Select all

(* 20171101 • *Absaetze_separieren - Absätze als ##Absatz<lfd.-nr.> aus der Textmarkierung entnehmen 
*){#settemp -name ##Position_Absatzmarke -content {#pos {#insertclipboard}{#asc 13} -substr {#asc 13}}}{#settemp -name ##Absatz{#gettemp ##counter} -content {#substr {#insertclipboard} -from 1 -count {#calc {#gettemp ##Position_Absatzmarke}-1 -round 0}}}{#setclipboard {#substr {#insertclipboard} -from {#calc {#gettemp ##Position_Absatzmarke}+1 -round 0} -count }}{#check -text {#length {#insertclipboard}} -case > 0 -output {#settemp -name ##counter -content {#calc {#gettemp ##counter}+1 -round 0}}{#insert *Absaetze_separieren} -else {#settemp -name ##Absatz_Anzahl -content {#gettemp ##counter}}}
3.3 Phrase reset#ax Autotext: reset#ax

Code: Select all

(* 20171101 • reset#ax - Zwischenablage-Einträge des Phrasensets löschen 
*){#settemp -name ##counter -content 0}{#loop {#settemp -name ##counter -content {#calc {#gettemp ##counter}+1 -round 0}}{#setphrase -autotext #a{#gettemp ##counter} -description -content -folder ##clpbrd} -count {#gettemp ##Absatz_Anzahl}}{#setphrase -autotext #aa -description -content -folder ##clpbrd}{#setphrase -autotext aa# -description -content -folder ##clpbrd}{#settemp -name ##Absatz_Anzahl -content }
Bitte beachten:
Die Phrasen *Absaetze_separieren und reset#ax MÜSSEN diesen Autotext erhalten, wenn das Phrasenset
ohne Codeänderung funktionieren soll.
(Codeanpassung bei Autotextveränderung: *Absaetze_separieren an zwei Stellen, reset#ax an einer Stelle)

Phrasenverwendung:
Den Textbereich markieren und die Phrase ausführen - das Ergebnis ist danach sofort in der
Zwischenablage sichtbar/verfügbar.
Empfehlungen:
• Ordnen Sie der 'Hauptphrase' eine Tastenkombination zu.
• Platzieren Sie das Zwischenablage-Menu auf dem Desktop.

Hinweise:
• Das Phrasenset wurde an einer Einzelplatz-Installation (nicht in einer Netzwerkumgebung) getestet
• Sie nutzen das Phrasenset auf eigene Gefahr - ich schließe jede Haftung dafür aus.

Über Anregungen, Verbesserungsvorschläge, Rückmeldungen freue ich mich.

Peter Stotz
Win 10-1607 64 bit - PhraseExpress 13.0.49i
Textabsätze in der Zwischenablage bereitstellen.pxp
You do not have the required permissions to view the files attached to this post.

Post Reply