🙏 Helfen Sie jetzt mit, unser LibreOffice Forum zu erhalten! 🙏
Mit Ihrer Spende sichern Sie den Fortbestand, den Ausbau und die laufenden Kosten dieses Forums. 🌱

🍀 Jeder Beitrag zählt – vielen Dank für Ihre Unterstützung!🍀

❤️ 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. 🤗

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: 2539
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
LO7.4.7.5 debian 12(bookworm) auf Raspberry4b 8GB (64bit)
LO24.8.0.3 flatpak debian 12(bookworm) auf Raspberry4b 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: 2539
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
LO7.4.7.5 debian 12(bookworm) auf Raspberry4b 8GB (64bit)
LO24.8.0.3 flatpak debian 12(bookworm) auf Raspberry4b 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: 2539
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
LO7.4.7.5 debian 12(bookworm) auf Raspberry4b 8GB (64bit)
LO24.8.0.3 flatpak debian 12(bookworm) auf Raspberry4b 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) 159-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


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