Libre Office

Searchdescriptor Textcursor erweitern

Alles zur Programmierung im LibreOffice.
Antworten
gogo
* LO-Experte *
Beiträge: 1081
Registriert: Sa 5. Feb 2011, 19:07

Searchdescriptor Textcursor erweitern

Beitrag von gogo » Mi 4. Jun 2014, 18:16

Hallo zusammen,

da LO leider keine "look-around Assertions" für reguläre Ausdrücke unterstützt wollte ich das in einem Makro simulieren, bin aber kläglich gescheitert.

Der Regex-Ausdruck "(?<!e)i" würde alle "i" in einem Text finden, wenn sie nicht hinter einem "e" stehen.
Eine Suchschleife wäre:

Code: Alles auswählen

oDoc = thisComponent
oSuche = odoc.createsearchdescriptor()
oSuche.setsearchstring("i")
oFound = oDoc.findfirst(oSuche)
do while not IsNull(oFound)
'	oFound.getString()= "i"
	oFound.goLeft(1,true)
'	oFound.getString()= ""
	oFound = oDoc.findnext(oFound.end, oSuche)
loop
mit oFound.getString() gibt's den gefundenen Text - aber wie komme ich an das/die Zeichen links/rechts davon? "oFound.goLeft(1,true oder false)" liefert immer einen leeren String.
g
2008 LucidL./MaverickM./WinXP LibreOffice 3.3.2 > 02/13 LinuxMint13/Xubuntu > 09/13 Debian Wheezy+LO3.5.4.2 > 01/15 Debian Jessie KDE+LO4.3.3.2/Mint17 openbox auf USB+LO4.2.8.2 > 03/16 ArchLin & LO5.1+ff > 02/18 Kubuntu

Benutzeravatar
karolus
* LO-Experte *
Beiträge: 2720
Registriert: Fr 10. Dez 2010, 10:01

Re: Searchdescriptor Textcursor erweitern

Beitrag von karolus » Mi 4. Jun 2014, 20:20

Hallo

→→S&E
suche nach

Code: Alles auswählen

[^e]i
Karolus
LO25.2.x.y debian 13(trixie) auf Raspberry5 8GB (64bit)
LO25.8.x.y flatpak debian 13(trixie) auf Raspberry5 8GB (64bit)

gogo
* LO-Experte *
Beiträge: 1081
Registriert: Sa 5. Feb 2011, 19:07

Re: Searchdescriptor Textcursor erweitern

Beitrag von gogo » Mi 4. Jun 2014, 22:15

thx, da hab' ich wohl den Wald vor lauter Bäumen nicht gesehen. Der Match ist dann aber ".i" und "i" am Absatzanfang wird nicht gefudnen. Das lässt sich aber durch "^i|[^e]i" erreichen.
Danke! Problem gelöst!
PS: was heißt "→→S&E" ?
g
2008 LucidL./MaverickM./WinXP LibreOffice 3.3.2 > 02/13 LinuxMint13/Xubuntu > 09/13 Debian Wheezy+LO3.5.4.2 > 01/15 Debian Jessie KDE+LO4.3.3.2/Mint17 openbox auf USB+LO4.2.8.2 > 03/16 ArchLin & LO5.1+ff > 02/18 Kubuntu

Benutzeravatar
karolus
* LO-Experte *
Beiträge: 2720
Registriert: Fr 10. Dez 2010, 10:01

Re: Searchdescriptor Textcursor erweitern

Beitrag von karolus » Do 5. Jun 2014, 10:33

Hallo
PS: was heißt "→→S&E" ?
Was ist wohl das Thema hier ??
→Bearbeiten→Suchen und Ersetzen

Karolus
LO25.2.x.y debian 13(trixie) auf Raspberry5 8GB (64bit)
LO25.8.x.y flatpak debian 13(trixie) auf Raspberry5 8GB (64bit)

gogo
* LO-Experte *
Beiträge: 1081
Registriert: Sa 5. Feb 2011, 19:07

Re: Searchdescriptor Textcursor erweitern

Beitrag von gogo » Do 5. Jun 2014, 12:09

:roll:
... aber bei solchen Regexausdrücken:
"\<[sS]ch[a-z]{0,10}[aeiou][lmnr]|\<[sS]p[a-z]{0,10}[aeiou][lmnr]|\<[qtQT][a-z]{0,10}[aeiou][lmnr]"
kann ich mich einfach nicht mehr auf einfache Sachen konzentrieren ;)

Ähm - ist

Code: Alles auswählen

oFound.goLeft(1,true) ergibt oFound.getString()= "" 
jetzt ein Bug? (und bevor jemand fragt: ja, es gibt links und rechts des Cursors genügend Zeichen)
g
2008 LucidL./MaverickM./WinXP LibreOffice 3.3.2 > 02/13 LinuxMint13/Xubuntu > 09/13 Debian Wheezy+LO3.5.4.2 > 01/15 Debian Jessie KDE+LO4.3.3.2/Mint17 openbox auf USB+LO4.2.8.2 > 03/16 ArchLin & LO5.1+ff > 02/18 Kubuntu

Benutzeravatar
karolus
* LO-Experte *
Beiträge: 2720
Registriert: Fr 10. Dez 2010, 10:01

Re: Searchdescriptor Textcursor erweitern

Beitrag von karolus » Do 5. Jun 2014, 13:30

Hallo

Bevor wir weiter im Nebel stochern - was ist die eigentliche Aufgabe ?

Karolus
LO25.2.x.y debian 13(trixie) auf Raspberry5 8GB (64bit)
LO25.8.x.y flatpak debian 13(trixie) auf Raspberry5 8GB (64bit)

gogo
* LO-Experte *
Beiträge: 1081
Registriert: Sa 5. Feb 2011, 19:07

Re: Searchdescriptor Textcursor erweitern

Beitrag von gogo » Do 5. Jun 2014, 15:03

karolus hat geschrieben:Hallo
Bevor wir weiter im Nebel stochern - was ist die eigentliche Aufgabe ?
Karolus
Die ist "gelöst", ich wollte nur - falls ich in Zukunft mal einen Cursor manipulieren muss - wissen ob das so einfach geht.

(Die eigentliche Aufgabe ist ein Makro, das in einen Writertext Rechtschreibfehler einbaut (Daten + funktionsfähiges Beta-Makro im Anhang) - Rechtschreibkorrektur mal anders)
Dateianhänge
Orthografie.odb.zip
(12.68 KiB) 189-mal heruntergeladen
g
2008 LucidL./MaverickM./WinXP LibreOffice 3.3.2 > 02/13 LinuxMint13/Xubuntu > 09/13 Debian Wheezy+LO3.5.4.2 > 01/15 Debian Jessie KDE+LO4.3.3.2/Mint17 openbox auf USB+LO4.2.8.2 > 03/16 ArchLin & LO5.1+ff > 02/18 Kubuntu

Open Office
Antworten