Anzeige

Am Puls von Microsoft

Anzeige

Absatzende Entfernen

Anzeige
Ja, das ist ein Screenshot

Mein Anliegen ist es, das Ergebnis in eine einfache Form von *.doc zu bringen.
Damit alles hintereinander ohne" 1000" Absätze und ohne Spalten lesbar zu machen.
Dann kann ich den Text teilweise auch mal mitnehmen.

Ein dickes Microsoft Handbuch von 1991 über MS-DOS habe ich gut aufgehoben.
Von wegen altes Wissen geht verloren.
Mit dem Entfernen der Absatzzeichen und anderer Zeichen bin ich schon weiter gekommen.
Mir fehlt nur noch der Zeilenumbruch mit Alt + Ziffer.
Kennt den Jemand?


Dicipuli
 
Mein Anliegen ist es, das Ergebnis in eine einfache Form von *.doc zu bringen.

Vollständigkeitshalber noch mal wiederholt, dass genau das das dortige Tool macht, sobald man es in Word installiert hat.

Ansonsten, für die manuelle Vorgehensweise: in Word im Ersetzen-Dialog auf "Erweitern" klicken und dann auf "Sonderformat", dort sind alle Sonderzeichen direkt anklickbar, ohne dass man sich Codes merken muss.

1710755105051.png


Tipp: vor dem Löschen von Absatzmarken diejenigen Absatzmarken, nach denen ein Punkt folgt, stattdessen in manuelle Zeilenumbrüche umwandeln. Dann erst die unerwünschten Absatzmarken löschen, und dann die manuellen Zeilenumbrüche wieder nach Absatzmarken (mit Punkt dahinter) umwandeln. So bleiben die Absätze erhalten, und es wird nicht der ganze Text in einen riesigen Absatz zusammengefügt.

Ansonsten für alle Fälle, mehr als man zu diesem Thema jemals wissen wollte, findet man hier.
 
Hallo Eberhard,
leir habe ich nur ein MS_Word von 2016,
Dort finde ich keinen manuellen Zeilenumbruch.
Dort gibt es 3 Ziffern
AskiHex, Aski dezimal, unicode-Hex,
Schicke mir doch bitte die bei dir angezeigten Hex-Ziffern.
Danke

Discipuli
 
Ein Zeilenumbruch setzt sich immer aus einem LineFeed und einem Carriage Return zusammen.

LineFeed gibst du mit Alt + NumPad 010 ein.
Carriage Return gibst du mit Alt + NumPad 013 ein.

Ist so etwas gemeint?
 
Ansonsten für alle Fälle, mehr als man zu diesem Thema jemals wissen wollte, findet man hier.
Die Lösung für das Problem von @discipuli dürfte wirklich in dem verlinkten Forumsbeitrag und dessen Folgepostings liegen. Leider kenne ich mich weder mit VBA noch Makroprogrammierung aus und bin auch nicht in der Lage den Code so in mein Word zu importieren, dass sich daraus ein funktionierendes Makro ergibt. Aus dem beschreibenden Text im Forum geht jedoch hervor, dass das Makro funktioniert hat und tatsächlich die Absatzzeichen separieren und ersetzen kann.

Vielleicht kann sich jemand dieses Problems annehmen und somit eine Lösung für @discipuli anbieten. Danke bereits im Voraus dafür!

Edit: Siehe #29
 
Zuletzt bearbeitet:
Als Alternative zu dem Word-Makro hier dasselbe als AutoHotkey-Funktion:

Code:
CleanPDF&PureTextConversion:

; Note that `r`n represents a newline character
StringReplace Clipboard, Clipboard, :`r`n, :`n, All ; Replace paragraph mark after colon with line break

; Temporarily replace paragraph breaks that should be preserved with unique markers
StringReplace Clipboard, Clipboard, .`r`n, #####.#####, All ; Replace period followed by newline with a temporary string without newline
StringReplace Clipboard, Clipboard, ?`r`n, #####?#####, All ; Replace question mark followed by newline with a temporary string without newline
StringReplace Clipboard, Clipboard, !`r`n, #####!#####, All ; Replace exclamation mark followed by newline with a temporary string without newline

; Remove hyphen followed by newline as this is likely a single word broken across lines
StringReplace Clipboard, Clipboard, -`r`n, , All

; Replace superfluous newlines with spaces
StringReplace Clipboard, Clipboard, `r`n, %A_Space%, All

; Condense multiple adjacent spaces into a single space
Clipboard := RegExReplace(Clipboard, "\s+", " ")

; Revert the temporary markers back to their original state with preserved paragraph breaks
StringReplace Clipboard, Clipboard, #####.#####, .`r`n, All ; Restore period followed by newline from temporary string
StringReplace Clipboard, Clipboard, #####?#####, ?`r`n, All ; Restore question mark followed by newline from temporary string
StringReplace Clipboard, Clipboard, #####!#####, !`r`n, All ; Restore exclamation mark followed by newline from temporary string

; Remove extraneous spaces surrounding punctuation marks
StringReplace Clipboard, Clipboard, " )", ")", All ; Remove space before closing parenthesis
StringReplace Clipboard, Clipboard, "( ", "(", All ; Remove space after opening parenthesis
StringReplace Clipboard, Clipboard, " .", ".", All ; Remove space before period
StringReplace Clipboard, Clipboard, " :", ":", All ; Remove space before colon
StringReplace Clipboard, Clipboard, " ,", ",", All ; Remove space before comma
StringReplace Clipboard, Clipboard, " ;", ";", All ; Remove space before semicolon

;~ Sleep, 111 ; Mandatory pause to ensure compatibility with Office 365 (anscheinend nicht mehr benötigt 2023, Todo entfernen bei Gelegenheit)

Return
 
und bin auch nicht in der Lage den Code so in mein Word zu importieren, dass sich daraus ein funktionierendes Makro ergibt
Korrektur: Ich habe soeben eine Anleitung gefunden wie man diesen Makrocode einfügt und ein ausführbares Makro erzeugt. Anschließend habe ich einen Teil des Textes von @discipuli (Posting #1) damit bearbeitet und das ist das Ergebnis:

Text im Rohzustand nach dem Scan (Auszug)

1710790270297.png


Text nach Einsatz des Makros

1710790370577.png


Die noch verbliebenen Absatzmarken sind jene, die auch im Original höchstwahrscheinlich ein Absatzende kennzeichenen sollen. Man müsste noch die Spalten entfernen und sonst noch eine händische Nachbearbeitung durchführen. Weiters wäre das Makro auf Massentauglichkeit zu testen.

Sollte dies auch bei umfangreichen Texten funktionieren, wäre dies doch eine praktikable Lösung für das Problem.
 
Haha perfekt. Man erkennt, dass auch überflüssige Worttrennungen am Zeilenende entfernt worden sind, aber beabsichtigte Bindestriche am Zeilenende beibehalten worden sind. Ganz schön schlau mein Makro

Edit: Nö stimmt nicht, es gibt ja in dem Schnipsel gar keine beabsichtigten Bindestriche an einem Zeilenende. Falls solche anderswo vorhanden sind, sollten diese aber erkannt und beibehalten werden.
 
Ganz schön schlau mein Makro
Ja, ich bin sehr angetan. Das Problem von @discipuli dürfte in Lösungsreichweite sein und der angenehme Nebeneffekt ist, dass ich dieses Makro nun auch für meine Zwecke verwenden kann. In Word ist es eingebunden und somit jederzeit verfügbar.

Ich habe mir diese Absatzmarkensetzerei nochmals durch den Kopf gehen lassen und dabei ist mir eingefallen, dass Abbyy Finereader als Soloanwendung ähnliche Texte erzeugt (also nach jedem Zeilenende eine Absatzmarke). Warum dieses doch so leistungsfähige Programm gerade diese Unart hat(te), entzieht sich allerdings meiner Kenntnis.

Bin schon neugierig was @discipuli dazu schreibt...
 
Hallo Ebehard oder Muvimaker,
Ich muss hier als Schriftsteller mit 90 Jahren die Waffenstrecken.
Wäre einer von euch bereit, mir zu helfen z. B. per TeamViewer.
Discipuli
 
Gerade suche ich eine Anleitung für autohotkey
Kennst du so was als Buch oder PDF?
Dieses Tool macht nämlich nur einen Teil, von dem, was ich benötige.
Die Texte sind oft zweispaltig.
Die sollten aufgelöst werden
Auch sollte das Ergebnis nicht in DIN A5, sondern DIN A4 ausgegeben werden.
Dann sollten gewisse Absatzzeichen erhalten bleiben, weil dann echte Absätze entstehen.
Discipuli





@muvimaker
ich habe versucht, das Makro einzubinden.
Mal ist es zu finden, mal nicht.
Wo sollte ich es in Ms-Word 21 finden?
Was mache ich vielleicht falsch?
Disicpuli
 
Zuletzt bearbeitet von einem Moderator:
Gerade suche ich eine Anleitung für autohotkey
Das wird nichts einfach so mit AutoHotkey. Das ist eine Programmiersprache, die man lernen muss. Machs einfach manuell wie oben in Beitrag #23 beschrieben.

Hierzu das AutoHotkey-Skript vom Kollege Roboter nach Deutsch übersetzt für die manuelle Durchführung in Word.

Ersetzen von Absatzmarken nach Doppelpunkt durch Zeilenumbruch:
Suchen nach: :^p (Doppelpunkt gefolgt von Absatzzeichen)
Ersetzen durch: :^l (Doppelpunkt gefolgt von manuellem Zeilenumbruch)

Temporäres Ersetzen der Absatzumbrüche, die erhalten bleiben sollen, durch eindeutige Marker:
Suchen nach: .^p (Punkt gefolgt von Absatzzeichen)
Ersetzen durch: #####.##### (Temporärer Marker)
Wiederholen Sie ähnliche Schritte für Fragezeichen und Ausrufezeichen, indem Sie ?^p durch #####?##### und !^p durch #####!##### ersetzen.

Entfernen von Bindestrichen gefolgt von Absatzmarken (wahrscheinlich ein Wort mit Silbentrennung):
Suchen nach: -^p
Ersetzen durch: (Leerzeichen)

Ersetzen überflüssiger Absatzmarken durch Leerzeichen:
Suchen nach: ^p
Ersetzen durch: (Leerzeichen)

Zusammenführen mehrerer aufeinanderfolgender Leerzeichen in ein einzelnes Leerzeichen:
Führen Sie ein wiederholtes Suchen und Ersetzen von zwei Leerzeichen durch ein Leerzeichen durch so lange bis bis keine Ersetzungen mehr gefunden werden.

Rückgängig machen der temporären Marker zurück zu ihrem ursprünglichen Zustand mit erhaltenen Absatzumbrüchen:
Suchen nach: #####.#####
Ersetzen durch: .^p
Wiederholen Sie dies für Fragezeichen und Ausrufezeichen, indem Sie #####?##### durch ?^p und #####!##### durch !^p ersetzen.

Entfernen überflüssiger Leerzeichen um Satzzeichen:
Suchen nach: ) (Leerzeichen vor schließender Klammer)
Ersetzen durch: ) (ohne Leerzeichen)
Wiederholen Sie ähnliche Schritte für Leerzeichen nach öffnender Klammer, vor Punkt, vor Doppelpunkt, vor Komma und vor Semikolon, indem Sie jeweils ( , . : , ; (jeweils mit unerwünschtem Leerzeichen) durch ( . : , ; (jeweils ohne Leerzeichen ) ersetzen.
 
Zuletzt bearbeitet:
Korrigendum:

Hierzu das AutoHotkey-Skript vom Kollege Roboter nach Deutsch übersetzt für die manuelle Durchführung in Word:

Ersetzen von Absatzmarken nach Doppelpunkt durch Zeilenumbrüche:
Suchen nach: :^p (Doppelpunkt gefolgt von Absatzzeichen)
Ersetzen durch: :^l (Doppelpunkt gefolgt von manuellem Zeilenumbruch)

Temporäres Ersetzen der Absatzumbrüche, die erhalten bleiben sollen, durch eindeutige Marker:
Suchen nach: .^p (Punkt gefolgt von Absatzzeichen)
Ersetzen durch: #####.##### (Temporärer Marker)
Wiederholen Sie ähnliche Schritte für Fragezeichen und Ausrufezeichen, indem Sie ?^p durch #####?##### und !^p durch #####!##### ersetzen.

Entfernen von Bindestrichen gefolgt von Absatzmarken (wahrscheinlich ein Wort mit Silbentrennung):
Suchen nach: -^p
Ersetzen durch: (nichts)

Ersetzen überflüssiger Absatzmarken am Zeilenende durch Leerzeichen:
Suchen nach: ^p
Ersetzen durch: (Leerzeichen)

Zusammenführen mehrerer aufeinanderfolgender Leerzeichen in ein einzelnes Leerzeichen:
Führen Sie ein wiederholtes Suchen und Ersetzen von zwei Leerzeichen durch ein Leerzeichen durch so lange, bis keine Ersetzungen mehr gefunden werden.

Rückgängig machen der temporären Marker zurück zum ursprünglichen Zustand mit erhaltenen Absatzumbrüchen:
Suchen nach: #####.#####
Ersetzen durch: .^p
Wiederholen Sie dies für Fragezeichen und Ausrufezeichen, indem Sie #####?##### durch ?^p und #####!##### durch !^p ersetzen.

Entfernen überflüssiger Leerzeichen um Satzzeichen:
Suchen nach: ) (Leerzeichen vor schließender Klammer)
Ersetzen durch: ) (ohne Leerzeichen)
Wiederholen Sie ähnliche Schritte für Leerzeichen nach öffnender Klammer, vor Punkt, vor Doppelpunkt, vor Komma und vor Semikolon, indem Sie jeweils ( , . : , ; (mit unerwünschtem Leerzeichen) jeweils durch ( . : , ; (ohne Leerzeichen) ersetzen.
 
Ich komme auf deine Nachricht vom 18.3. zurück.
Wie kann ich den Code verarbeiten?
Mit AutoHotkey oder PowerShell?
Und besten Dank für deine Erklärungen
Dsicipuli;)
 
Hallo Eberh@rd
Ich komme auf deine Nachricht vom 18.3. zurück.
Wie kann ich den Code mit AutoHotkey verarbeiten?
Und besten Dank für deine Erklärungen
Dsicipuli
 
Wie gesagt, mit AutoHotkey ist das viel zu kompliziert, wenn man sich nicht mit AutoHotkey auskennt.

Mache bitte in Microsoft Word exakt dasjenige, was in den Beiträgen 23 und 37 steht.

Das ist eine Anleitung für eine manuelle Durchführung der Bereinigung des Textes in mehreren Schritten in Microsoft Word und hat mit AutoHotkey nichts zu tun.
 
Anzeige
Oben