Hallo zusammen
ich möchte mithilfe des Dispatchers ein Search&Find durchführen. Leider ist nach der ersten Ausführung die Markierung weg, weshalb das nächste Search&Find nicht wie gewünscht durchläuft. Gibt es eine Möglichkeit nach dem Ausführen des Dispatchers die Markierung wieder einzufügen?
Habe bisher nur eine Möglichkeit gefunden die Markierung auszulesen, jedoch nicht wieder neu zu setzen.
Freue mich auf Antworten.
Markierung in Writer sichern & wiederherstellen
Moderator: Moderatoren
-
- Beiträge: 4
- Registriert: Mi, 15.06.2016 14:30
Re: Markierung in Writer sichern & wiederherstellen
Hallo Blumenkübel,
Dein Wunsch wird sich so wie du es beschreibst nicht realisieren lassen.
Denn du kannst doch auch beobachten, das nach einem manuellen erfolglosen suchen & ersetzen die Markierung bestehen bleibt und nach erfolgreichen suchen & ersetzen die Markierung weg ist, was auch logisch ist, denn der ursprüngliche markierte Bereich existiert ja so nicht mehr.
Du wirst dir wohl eine andere Vorgehensweise überlegen müssen.
Den markierten Text per Makro einlesen, mit Basic Funktionen entsprechend bearbeiten und dann den "alten Text durch den "neuen Text" ersetzen.
wie?Blumenkübel hat geschrieben:Habe bisher nur eine Möglichkeit gefunden die Markierung auszulesen, jedoch nicht wieder neu zu setzen.
Dein Wunsch wird sich so wie du es beschreibst nicht realisieren lassen.
Denn du kannst doch auch beobachten, das nach einem manuellen erfolglosen suchen & ersetzen die Markierung bestehen bleibt und nach erfolgreichen suchen & ersetzen die Markierung weg ist, was auch logisch ist, denn der ursprüngliche markierte Bereich existiert ja so nicht mehr.
Du wirst dir wohl eine andere Vorgehensweise überlegen müssen.
Den markierten Text per Makro einlesen, mit Basic Funktionen entsprechend bearbeiten und dann den "alten Text durch den "neuen Text" ersetzen.
LG
clag
nutzt: WinXP SP3 / AOO 4.1.10 / Firefox
clag
nutzt: WinXP SP3 / AOO 4.1.10 / Firefox
Re: Markierung in Writer sichern & wiederherstellen
Hey Blumenkübel,
also, wenn ich das lese kommen mir so meine Bedenken. Der Dispatcher Code ist für die Aufgabe nicht wirklich geeignet.
Lösbar wäre es zwar (auch wenn clag das so nicht sieht) - der Aufwand erscheint mir aber viel zu groß.
Du kannst die Markierung auslesen (ViewCursor) und die Position zwischenspeichern.
Und Du kannst den ViewCursor selbstverständlich auch frei im Dokument setzen (und somit die Markierung wieder erzeugen). Aber das ist sehr aufwendig!
Wenn Du schon Makros nutzt, nimm doch gleich die API Methode - die ist sehr perform und schnell.
Vom Grundgerüst sieht die wie folgt aus:
wobei der sSuchstring dein zu suchender Begriff ist und sNeuerString das dafür einzusetzende Wort / Text darstellt.
Makros laufen dann unabhängig vom Viewcursur und Du kannst Dir den ganzen Aufwand sparen.
VG Tom
also, wenn ich das lese kommen mir so meine Bedenken. Der Dispatcher Code ist für die Aufgabe nicht wirklich geeignet.
Lösbar wäre es zwar (auch wenn clag das so nicht sieht) - der Aufwand erscheint mir aber viel zu groß.
Du kannst die Markierung auslesen (ViewCursor) und die Position zwischenspeichern.
Und Du kannst den ViewCursor selbstverständlich auch frei im Dokument setzen (und somit die Markierung wieder erzeugen). Aber das ist sehr aufwendig!
Wenn Du schon Makros nutzt, nimm doch gleich die API Methode - die ist sehr perform und schnell.
Vom Grundgerüst sieht die wie folgt aus:
Code: Alles auswählen
oSuche = oDoc.createSearchDescriptor()
oSuche.setSearchString(sSuchText)
oSuchErg = oDoc.findfirst(oSuche)
Do while not isNull(oSuchErg)
oSuchErg.string = sNeuerString
oSuchErg = oDoc.findNext(oSuchErg.End, oSuche)
loop
Makros laufen dann unabhängig vom Viewcursur und Du kannst Dir den ganzen Aufwand sparen.
VG Tom
Unterstützer LibreOffice, zertifizierter Trainer und Berater
Bücher: LibreOffice 6- Einstieg und Umstieg
Makros Grundlagen - LibreOffice / OpenOffice Basic
Bücher: LibreOffice 6- Einstieg und Umstieg
Makros Grundlagen - LibreOffice / OpenOffice Basic