❤️ Helfen Sie noch heute, unser LibreOffice Forum zu erhalten! ❤️
Unterstützen Sie das LibreOffice-Forum und helfen Sie uns, unser Ziel für 2025 zu erreichen!

🍀 Jeder Beitrag zählt – vielen Dank für Ihre Unterstützung!🍀
Mit Ihrer Spende sichern Sie den Fortbestand, den Ausbau und die laufenden Kosten dieses Forums. 🌱


❤️ DANKE >> << DANKE ❤️

>> Dank Ihrer Unterstützung -> Keine Werbung für alle registrierten LibreOffice-Forum User! <<
🤗 Als Dankeschön werden Sie im Forum als LO-SUPPORTER gekennzeichnet. 🤗

Suchen / Ersetzen mit RegExp mit \n funktioniert nicht

CALC ist die Tabellenkalkulation, die Sie immer wollten.
Antworten
Maerad
Beiträge: 2
Registriert: Fr 25. Nov 2016, 13:29

Suchen / Ersetzen mit RegExp mit \n funktioniert nicht

Beitrag von Maerad » Fr 25. Nov 2016, 13:40

Hallo,

hoffe Ihr könnt mir weiterhelfen, habe bereits ausführlich dazu gegoogelt :/

Habe eine Calcdatei eines Lieferanten in der auch eine Spalte mit dem Verkaufstext des Artikels vorhanden ist.
Zwar ist der Text mit Umbrüchen, aber unser ERP Programm erfordert, dass ich vor dem Einlesen in die Software die Zeichenanzahl auf ca. 70 Zeichen begrenze pro Zeile.

Dies habe ich versucht via suchen + ersetzen mit regulären Ausdrücken:

Suche: "(.{40,60}) " (Ohne die " natürlich, damit wir zwischen 40-60 Zeichen das Leerzeichen gesucht, weil Umbruch im Wort doof ist)
Ersetze durch: $1\n

Reguläre Ausdrücke ist natürlich aktiv.

Das Ganze funktioniert von der Suche her, aber beim Ersetzen wird \n eingefügt und eben kein Absatz / Zeilenumbruch.

Also z.B.
Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam

Wird zu
Lorem ipsum dolor sit amet, consetetur\n sadipscing elitr, sed diam

Habe auch mal Testweise ohne Rexp usw. versucht und nur Zeichen ersetzt (immer "ersetzt mit \n"), aber nichts hat funktioniert ... In der Hilfe habe ich auch keine weiteren Hinweise gefunden und auch im Internet steht überall "suche nach zeichen, ersetzte durch \n"

Vielleicht ja auch eine Einstellungssache... jemand eine Idee was das sein könnte?

craig
* LO-Experte *
Beiträge: 1137
Registriert: Do 21. Apr 2016, 11:42

Re: Suchen / Ersetzen mit RegExp mit \n funktioniert nicht

Beitrag von craig » Fr 25. Nov 2016, 22:16

Hallo,

genau das Problem hatte ich auch. Allerdings im Writer.
Es sollte nach jedem x-ten Wort ein Zeilenumbruch eingefügt werden.
Dann habe ich im O´Reilly Buch zu RegEx gelesen, dass RegEx zwar zählen kann,
aber rechnen ist nicht möglich. Das Einzige wäre eine Verkettung von Ausdrücke,
mit denen man ggf. sein Ziel trotzdem erreichen kann.
Ist mir jedoch nicht gelungen.
Also habe ich mir ein Makro geschrieben, dass keine Wünsche mehr offen lies.

Nun zu Deinem RegEx Problem
Der Punkt steht nicht für ein Leerzeichen, sondern für jedes Zeichen, außer siehe hier:
LO RegEx

Daraus folgt, dass Dein Ausdruck in Writer ein Ergebnis wie im Bild zu sehen ist liefert.
Es werden Leerzeichen und Buchstaben gezählt und mitten im Wort eine Absatzmarke eingefügt.

Bei meinen Recherchen zu diesem Thema bin ich noch über eine AOO-Seite gestolpert,
in der geschrieben stand, dass Calc bei der Interpretation der Reg-Ausdrücke Probleme
mit einigen Unicode-Zeichen hat.
Ob dies allerdings noch aktuell ist und ob die Aussage auch auf LO zutrifft kann ich nicht sagen.
Allerdings funktionierte die im Bild zu sehende “Lösung“ nicht in LO-Calc.

Beide Ausdrücke ohne Leerzeichen eingeben!
Suchen: (.{40,60})
Ersetzen: &\n
LO RegEx Absatzmarke.JPG
LO RegEx Absatzmarke.JPG (37.91 KiB) 2447 mal betrachtet
Für den Writer gibt es noch dieses Tool:
AltSearch
----------------------------------------------------------------------------------
In der im Anhang befindlichen Datei habe ich in eine Zelle einen Beispieltext geschrieben. Darunter befindet
sich ein Button, mit dem ein Makro gestartet werden kann, um eine Texttrennung vorzunehmen.
Im Augenblick funktioniert das Makro nur für eine, die jeweils selektierte Zelle mit Inhalt.
Kann aber mit ein wenig Aufwand erweitert werden, um auf mehrere Zellen zu zugreifen.
Array Wortzähler Zeilenumbruch.ods
(12.41 KiB) 127-mal heruntergeladen
Versuch macht kluuch. :D

Gruß

Craig
Gruß

Craig

Nie die Sicherungskopie vergessen!

════════════════════════════════════════════════
WIN 10 Pro 64-Bit • LO 7.4.5.1 (x64) • AOO 4.1.8

Maerad
Beiträge: 2
Registriert: Fr 25. Nov 2016, 13:29

Re: Suchen / Ersetzen mit RegExp mit \n funktioniert nicht

Beitrag von Maerad » Mo 28. Nov 2016, 14:47

craig hat geschrieben: In der im Anhang befindlichen Datei habe ich in eine Zelle einen Beispieltext geschrieben. Darunter befindet
sich ein Button, mit dem ein Makro gestartet werden kann, um eine Texttrennung vorzunehmen.
Im Augenblick funktioniert das Makro nur für eine, die jeweils selektierte Zelle mit Inhalt.
Kann aber mit ein wenig Aufwand erweitert werden, um auf mehrere Zellen zu zugreifen.
Array Wortzähler Zeilenumbruch.ods
Versuch macht kluuch. :D
Hallo!

Vielen Dank für deine Rückmeldung und die Arbeit mit dem Macro - hab es probiert und leider hat es aber nicht geklappt - zumindest nicht bei meinem 30-Minuten Probelauf :)

Habe mir vorerst damit beholfen, dass ich nach (.{40,60}) such und ersetze mit $1MACHABSATZ
Dann in CSV exportiert und mit Notepad++ MACHABSATZ geändert in " \n". Das ist zwar nicht schön, geht aber trotzdem :)

Wäre die Sache nicht zeitlich so problematisch, hätte ich gerne deinen Ansatz weiterverfolgt, da dies sicherlich bald wieder auftaucht ... aber Chef braucht ja wie immer alles am besten schon gestern.

Der war auch recht erstaunt, dass man nicht einfach mit 2 Klicks die Datei vom Lieferanten bei uns einbauen kann :D

craig
* LO-Experte *
Beiträge: 1137
Registriert: Do 21. Apr 2016, 11:42

Re: Suchen / Ersetzen mit RegExp mit \n funktioniert nicht

Beitrag von craig » Mo 28. Nov 2016, 15:32

Hallo,
Vielen Dank für deine Rückmeldung und die Arbeit mit dem Macro - hab es probiert und leider hat es aber nicht geklappt - zumindest nicht bei meinem 30-Minuten Probelauf
Warum funktioniert es nicht?
Lag es ggf. an den Sicherheitseinstellungen für die Makroausführung?
Menü Extras --> Optionen --> LibreOffice --> Sicherheit
Option Makrosicherheit auf MITTEL stellen.
Dann Datei öffnen und die dann folgende Abfrage ob Makro ausgeführt werden soll mit "Makros aktivieren" beantworten.

Zweitens kann es daran liegen, dass der Button im Dokument sich im Entwurfsmodus befindet.
Erkennt man daran das er beim Anklicken verschiebbar ist.
Dann wie folgt einschalten:
Menü Ansicht --> Symbolleisten --> Formular-Entwurf
In der sich öffnenden Symbolleiste befindet sich links ein Pfeil und rechts daneben
das Symbol mit dem man den Entwurfsmodus ein-/ausschalten kann.
Damit wird der Button aktiviert und das Makro kann ausgeführt werden.
Zuvor den Cursor aber in die Zelle mit dem Text stellen!

Gruß

Craig
Gruß

Craig

Nie die Sicherungskopie vergessen!

════════════════════════════════════════════════
WIN 10 Pro 64-Bit • LO 7.4.5.1 (x64) • AOO 4.1.8

Wanderer
* LO-Experte *
Beiträge: 909
Registriert: Di 11. Feb 2014, 20:03
Wohnort: Berlin

Re: Suchen / Ersetzen mit RegExp mit \n funktioniert nicht

Beitrag von Wanderer » Mi 30. Nov 2016, 23:46

Maerad hat geschrieben: Habe mir vorerst damit beholfen, dass ich nach (.{40,60}) such und ersetze mit $1MACHABSATZ
Dann in CSV exportiert und mit Notepad++ MACHABSATZ geändert in " \n". Das ist zwar nicht schön, geht aber trotzdem :)

Wäre die Sache nicht zeitlich so problematisch, hätte ich gerne deinen Ansatz weiterverfolgt, da dies sicherlich bald wieder auftaucht ...
Hallo,
den Umweg über Notepad++ kannst Du Dir sparen:
Du hast es ja schon geschafft eine eindeutige Marke einzufügen. An dieser Stelle kannst Du mit WECHSELN weiterarbeiten,
wenn Du eine zusätzliche Zelle "opferst". Zelle musst Du natürlich anpassen.

Code: Alles auswählen

=WECHSELN(Zelle;"MACHABSATZ";ZEICHEN(10))
Vgl.: http://libreoffice-forum.de/viewtopic.php?f=6&t=16999
LO 6.0.7 (32Bit) Win8.1 Pro 32 Bit/ LO 6.3.2 Win10 64Bit / LO 6.0.7 Win7 Pro 64 Bit


An alle, die das LibreOffice-Forum gern nutzen und unterstützen wollen:


Bitte helfen Sie uns mit 7 Euro pro Monat.
Durch Ihren Beitrag tragen Sie dazu bei, unsere laufenden Kosten für die kommenden Monate zu decken.
Unkompliziert per Kreditkarte oder PayPal.
Als ein kleines Dankeschön werden Sie im LO-Forum als SUPPORTER gekennzeichnet.



Antworten