suchen&ersetzen - texthintergrund setzen

Programmierung unter AOO/LO (StarBasic, Python, Java, ...)

Moderator: Moderatoren

Benutzeravatar
sven-my
*****
Beiträge: 358
Registriert: Fr, 14.12.2007 19:56

suchen&ersetzen - texthintergrund setzen

Beitrag von sven-my »

Hallo Experten,

in einem längeren Makro für ein writer-Dokument habe ich diesen Schnipsel, der auch funktioniert:

Code: Alles auswählen

if nbetr = "" then goto bezug
Dim oReplace As Object
oReplace = oDoc.createReplaceDescriptor
oReplace.SearchString = "Zeitung"
oReplace.ReplaceString = nbetr
Doc.replaceAll(oReplace)
bezug:
oReplace = oDoc.createReplaceDescriptor
oReplace.SearchString = "Internet"
oReplace.ReplaceString = bezu
oDoc.replaceAll(oReplace)
Als Sahnehäubchen möchte ich die neuen Worte ( >nbetr< und >bezu<) mit einem farbigen Hintergrund versehen.

Ich habe alles mir bekannte durchsucht (F1 / Forum / dannenhhoefer / *.PDF / aber nicht google), konnte aber nichts finden, bzw. umsetzen.

Kann mir jemand helfen ?

gruß
sven-my
win7 prof / AOO 4.1.2 & AOO 3.4.0 portable
Benutzeravatar
komma4
********
Beiträge: 5332
Registriert: Mi, 03.05.2006 23:29
Wohnort: Chon Buri Thailand Asia
Kontaktdaten:

Re: suchen&ersetzen - texthintergrund setzen

Beitrag von komma4 »

aus meinem Makro Füllwortliste

Markieren aller Fundstellen

Code: Alles auswählen

For i = 0 to oAlleStellen.getCount() - 1
   oGefunden = oAlleStellen.getByIndex( i )
   oGefunden.CharColor = RGB( 255, 0, 0 )
   oGefunden.CharWeight = com.sun.star.awt.FontWeight.BOLD
Schau Dir den Code mal an... das gibt es IMHO auch .Background hilft das?
Cheers
Winfried
aktuell: LO 5.3.5.2 30m0(Build:2) SUSE rpm, unter Linux openSuSE Leap 42.3 x86_64/KDE5
DateTime2 Einfügen von Datum/Zeit/Zeitstempel (als OOo Extension)
Benutzeravatar
sven-my
*****
Beiträge: 358
Registriert: Fr, 14.12.2007 19:56

Re: suchen&ersetzen - texthintergrund setzen

Beitrag von sven-my »

Hallo Winfried,

Du bist mal wieder schneller, als ich umschalten kann (aber schön für mich).

1. Frage : was ist
oAlleStellen.getCount()
- was wird da gezählt - was wird gefunden ?

Nehme an, die Buchstaben, aber muß ich die nicht vorher markieren ?

2. Frage : interpretiere ich das richtig, wenn ich behaupte danach wird die Schift auf "ROT" und "FETT" gesetzt ?

Eigentlich hatte ich gedacht etwas in der Art einzusetzen ".charbackcolor=&FFFF00"

gruß
sven-my
win7 prof / AOO 4.1.2 & AOO 3.4.0 portable
Benutzeravatar
komma4
********
Beiträge: 5332
Registriert: Mi, 03.05.2006 23:29
Wohnort: Chon Buri Thailand Asia
Kontaktdaten:

Re: suchen&ersetzen - texthintergrund setzen

Beitrag von komma4 »

Die Kennzeichnung funktioniert nur mit dem Suchen.

(Du vermutest richtig)

Für Dich, dann zweistufig

Code: Alles auswählen

Sub de41563
oDok = ThisComponent
oErsetzBeschr = oDok.createReplaceDescriptor()
With oErsetzBeschr
 .SearchRegularExpression = FALSE
 .SearchCaseSensitive = FALSE
End With

oErsetzBeschr.SearchString = "gesucht"
oErsetzBeschr.ReplaceString = "gefunden"

oDok.replaceAll( oErsetzBeschr)

oSuchBeschr = oDok.createSearchDescriptor()
With oSuchBeschr
 .SearchRegularExpression = FALSE
 .SearchCaseSensitive = FALSE
 .SearchString = "gefunden"
End With


oAlleStellen = oDok.findAll( oSuchBeschr )

For i = 0 to oAlleStellen.getCount() - 1
   oGefunden = oAlleStellen.getByIndex( i )
   oGefunden.CharBackColor = RGB(255,255,0)
Next

End Sub


Kommst Du damit zurecht?
Cheers
Winfried
aktuell: LO 5.3.5.2 30m0(Build:2) SUSE rpm, unter Linux openSuSE Leap 42.3 x86_64/KDE5
DateTime2 Einfügen von Datum/Zeit/Zeitstempel (als OOo Extension)
Benutzeravatar
sven-my
*****
Beiträge: 358
Registriert: Fr, 14.12.2007 19:56

Re: suchen&ersetzen - texthintergrund setzen

Beitrag von sven-my »

Hallo Winfried,

erstmal vielen Dank für Deine Hilfe.

Bevor ich Dir sagen kann, ob ich damit zurecht komme, dauerd es noch ein wenig, denn da ist noch ein Bug in meinem gesamten Code, da muß das "Sahnehäubchen" noch etwas warten.
Solange nicht der richtige Autotext eingefügt wird, ist das Hinterlegen mit Farbe für die gesuchten Wörter etwas sinnlos; aber beim ersten Überfliegen scheint es für mich zu passen.

Ich meld' mich wieder.

gruß
sven-my
win7 prof / AOO 4.1.2 & AOO 3.4.0 portable
Benutzeravatar
sven-my
*****
Beiträge: 358
Registriert: Fr, 14.12.2007 19:56

Re: suchen&ersetzen - texthintergrund setzen

Beitrag von sven-my »

Hallo Winfried,

habe meine BUGs gefunden --- gibt es einen eigenen ausdruck für Obertrottelfehler ?

Code: Alles auswählen

if ..... then
mache dies
mache das
exit if
else
mach was anderes
....... weiterer Code
Fehlermeldung: "Noch offener Anweisungblock : End sub fehlt"

NUR: end sub war da - und (von der Meldung) markiert !!! --- hat gedauerd, bis ich das fehlende "end if" gefunden hatte (Dank Notepad++/Sprache: Java)

Und ein Kürzel für Autotext "BAA" statt "BIA"

So, nun zu Deinem Code: klappt wunderbar --- reine Verstädnisfrage:

Code: Alles auswählen

    With oSuchBeschr
    .SearchRegularExpression = FALSE
    .SearchCaseSensitive = FALSE
    .SearchString = "gefunden"
    End With
könnte man auch so schreiben ? :

Code: Alles auswählen

oSuchBeschr.SearchRegularExpression = FALSE
oSuchBeschr.SearchCaseSensitive = FALSE
oSuchBeschr.SearchString = "gefunden"

vielen Dank !

gruß
sven-my
win7 prof / AOO 4.1.2 & AOO 3.4.0 portable
Benutzeravatar
komma4
********
Beiträge: 5332
Registriert: Mi, 03.05.2006 23:29
Wohnort: Chon Buri Thailand Asia
Kontaktdaten:

Re: suchen&ersetzen - texthintergrund setzen

Beitrag von komma4 »

sven-my hat geschrieben:könnte man auch so schreiben ?
Ja, die beiden Schreibweisen sind äquivalent.
Cheers
Winfried
aktuell: LO 5.3.5.2 30m0(Build:2) SUSE rpm, unter Linux openSuSE Leap 42.3 x86_64/KDE5
DateTime2 Einfügen von Datum/Zeit/Zeitstempel (als OOo Extension)
Antworten