Date: prev next · Thread: first prev next last
2020 Archives by date, by thread · List index


Hallo Hans-Werner,

habe Deine Beispiele durchgetestet.

SUCHE "^.*$" und ERSETZE "REM $0" oder "REM &".
• In Writer immer funktionierend.
• In der IDE nie funktionierend.

Wie ich bereits schrieb, gibt es RegEx-Funktionen,
welche in Writer funktionieren in der IDE nicht.
Dies Problem besteht schon lange, min. Version 5.xx
Konkrete Beispiele habe ich mir nicht gemerkt.

Solange die Funktionen in Writer funktionieren, ist dies für mich völlig
ausreichend.
Das Ergebnis unserer kleinen Unterhaltung ist, dass meine anfängliche
Anfrage, meine zurerst gepostete Syntax so in Writer nicht zu verwenden ist.

Dank Deiner Hilfe habe ich nun eine Syntax, welche in Writer
funktioniert und ja, was RegEx betrifft bin ich ein Anfänger.

Warum Du "$1" verwendest, verstehe ich nicht wirklich,
Ich weiß nicht mehr in welchem Tutorial ich dies aufgeschnappt habe,
ist lediglich eines meiner vielfältigen Versuche Writer zu überreden.

Da müssten jetzt mal noch andere des Forums einen kleinen Test machen,
ob sie das auch bestätigen können.
Ein funktionierendes RegEx in der IDE, wäre zumindest für mich sehr
hilfreich.
Ein Grund:
Ein guter Programmierstil macht zwar Kommentare überflüssig.
Aber, da ich in Foren als Helfer unterwegs bin, muss ich den Code mit
Kommentaren spicken damit die TE's mein Geschreibsel verstehen.
und weitere Gründe...

Ich würde mich freuen, wenn es in Zukunft eine ausgreiftere Basic-IDE gibt.
In Ansätzen sehe ich Verbesserungen:
Wenn in den Optionen "experimentelle Funktionen" aktiviert wird, dann
kann man
nach einem Neustart die unter LibreOffice → Basic-IDE, das Verhalten der
IDE steuern.

Aber mit einem im Augenblick noch großem Wermutstropfen:
Zitat: LibreOffice-Hilfe → Basic-IDE

Die Verwendung von erweiterten Typen in Basic-Programmen kann die
Kompatibilität des Programms zu anderen Office-Paketen einschränken.

Naja, was nicht ist , kann ja noch werden. :)

Viele Grüße

Jürgen

Am 17.12.2020 um 08:49 schrieb OoOHWHOoO:
Hallo Jürgen,

Du möchtest in einem BasicMakro in jeder Zeile ein "REM " voranstellen.

Die " sind nicht anzugeben, sind hier nur zur Abgrenzung der regulären
Ausdrücke gegenüber dem Text angegeben. Sind kein Bestandteil des
regulären Ausdrucks.

SUCHE "^.*$" und ERSETZE "REM $0" oder "REM &".

Wenn auch Leerzeilen ein "REM " vorangestellt bekommen sollen, muss
SUCHE etwas erweitert werden:  "^(.*|\n)$"

"[...] & oder $0 - Fügt dem Begriff im Feld Ersetzen die Zeichenfolge
hinzu, die anhand der Suchkriterien im Feld Suchen gefunden wurde,
wenn Sie eine Ersetzung vornehmen. Wenn Sie beispielsweise "Tür" in
das Feld Suchen und "&griff" in das Feld Ersetzen eingeben, wird das
Wort "Tür" durch "Türgriff" ersetzt. [...]"

Warum Du "$1" verwendest, verstehe ich nicht wirklich, dass "$0" oder
"&" reichen völlig aus. Das "$1" ist für speziellere SUCHEN/ERSETZEN
gedacht. Kann man verwenden, muss man aber nicht:

"[...] Mit dem regulären Ausdruck "\b(Frucht|Gemüse)\b" im Feld
"Suchen" und dem regulären Ausdruck "$1saft" im Feld "Ersetzen" können
Vorkommen der Wörter "Frucht" und "Gemüse" durch die Wörter
"Fruchtsaft" und "Gemüsesaft" ersetzt werden, ohne die Wörter
"Fruchtsäfte" und "Gemüsesäfte" zu beeinflussen. [...]"

Dein "Ergebnis in der IDE: :(" kann ich bestätigen. Da scheint das
gesetzte Häkchen bei "Reguläre Ausdrücke" keinerlei Wirkung zu haben
(LO 6.4.7.2 (x64)).

Das könnte ein BUG sein.

Da müssten jetzt mal noch andere des Forums einen kleinen Test machen,
ob sie das auch bestätigen können.

Viele Grüße
Hans-Werner :-))

------ Originalnachricht ------
Von: "Jürgen Klatt" <jrk33@web.de>
An: users@de.libreoffice.org
Gesendet: 16.12.2020 20:19:25
Betreff: Re: [de-users] RegEx: Zirkumflex wird nicht erkannt

Hallo Hans-Werner,

vielen Dank für Deine Rückmeldung.

RegExp wird in der BasicIDE sehr umfassend unterstützt.
Ich habe schon das eine oder andere gefunden,
was in Writer funktioniert, aber in der IDE nicht.
So auch jetzt.

Ich bin Deiner Anleitung gefolgt:
Suche:
^(.*)$

Ersetze:
REM $1

Ergebnis in Writer: :)
REM Sub Main

REM End Sub

----------------------------------------

Ergebnis in der IDE: :(
REM  *****  BASIC  *****
REM $1
REM $1
REM $1
REM $1

Option "reguläre Ausdrücke" war aktiviert.
Seltsam, seltsam.

getestet mit:
LibreOffice: 7.0.1.2 (x64)
LibreOffice: 7.2.0.0.alpha0+ (x64)

In beiden Versionen das gleiche Ergebnis.

Deinen Colorisizer werde ich mir näher ansehen.

Bin Dank Deiner HIlfe ein ganzes Stück weitergekommen.

Bleib gesund.

Frohe Weihnachten und viele Grüße

Jürgen


Am 16.12.2020 um 17:23 schrieb OoOHWHOoO:
Hallo Jürgen,

RegExp wird in der BasicIDE sehr umfassend unterstützt. Schau mal
hier: https://www.magentacloud.de/share/iat7ym.wb2#$/

Ich habe mit BasicMakro und RegExp einen kompletten CodeColorizerBasic
realisiert.

^ allein funktioniert nicht, aber beispielsweise funktioniert: ^.*$

Warum ? ^ bedeutet erst mal: Finde ab Zeilenanfang. Und was soll ab
Zeilenanfang gefunden werden ? Im Hilfe-Beispiel ist es "Peter".

Nach dem ^ muss schon noch was kommen. Beispielsweise: ^.*$ (= vom
Zeilenanfang (^) - beliebige Zeichen (.*) - bis Zeilenende ($))

Viele Grüße
Hans-Werner :-))

------ Originalnachricht ------
Von: "Jürgen Klatt" <jrk33@web.de>
An: users@de.libreoffice.org
Gesendet: 16.12.2020 16:21:55
Betreff: [de-users] RegEx: Zirkumflex wird nicht erkannt

Hallo,

da Regex in der Basic-IDE nur bedingt verfügbar ist,
habe ich einen Codeteil in Writer eingefügt und wollte
per RegEx vor jeder Zeile ein "REM " schreiben lassen.

Suche:
^

Ersetze:
REM \1


Aus der Hilfe für LibreOffice 7.0:

^
The beginning of a paragraph or cell.
Special objects such as empty fields or character-anchored frames,
at the beginning of a paragraph are ignored.
Example: "^Peter" matches the word "Peter" only when it is the first
word of a paragraph.

Wenn ich dies richtig verstehe, wird nur der Anfang eines Absatzes
gefunden.
Der Anfang einer Zeile bei einem Zeilenumbruch nicht.
Demnach sollte beim Ersetzen mindestens die erste Zeile geändeter
werden:
REM Sub MeinProgramm

Dies geschieht nicht.

Ist meine RegEx-Syntax für Writer falsch?
Wie lautet die korrekte RegEx-Syntax für: Ersetze jeden Zeilenanfang
durch [REM + Leerschritt]?

PS
In Notepad++ funktioniert meine Syntax einwandfrei, in Writer
wird mir in der Suchzeile das Zirkumflex rot markiert.

Viele Grüße

Jürgen


-- Liste abmelden mit E-Mail an: users+unsubscribe@de.libreoffice.org
Probleme?
https://de.libreoffice.org/hilfe-kontakt/mailing-listen/abmeldung-liste/

Tipps zu Listenmails:
https://wiki.documentfoundation.org/Netiquette/de
Listenarchiv: https://listarchives.libreoffice.org/de/users/
Datenschutzerklärung: https://www.documentfoundation.org/privacy

-- Liste abmelden mit E-Mail an: users+unsubscribe@de.libreoffice.org
Probleme?
https://de.libreoffice.org/hilfe-kontakt/mailing-listen/abmeldung-liste/
Tipps zu Listenmails: https://wiki.documentfoundation.org/Netiquette/de
Listenarchiv: https://listarchives.libreoffice.org/de/users/
Datenschutzerklärung: https://www.documentfoundation.org/privacy

--
Liste abmelden mit E-Mail an: users+unsubscribe@de.libreoffice.org
Probleme? https://de.libreoffice.org/hilfe-kontakt/mailing-listen/abmeldung-liste/
Tipps zu Listenmails: https://wiki.documentfoundation.org/Netiquette/de
Listenarchiv: https://listarchives.libreoffice.org/de/users/
Datenschutzerklärung: https://www.documentfoundation.org/privacy

Context


Privacy Policy | Impressum (Legal Info) | Copyright information: Unless otherwise specified, all text and images on this website are licensed under the Creative Commons Attribution-Share Alike 3.0 License. This does not include the source code of LibreOffice, which is licensed under the Mozilla Public License (MPLv2). "LibreOffice" and "The Document Foundation" are registered trademarks of their corresponding registered owners or are in actual use as trademarks in one or more countries. Their respective logos and icons are also subject to international copyright laws. Use thereof is explained in our trademark policy.