Re: [de-users] Basic-Makro: Im Writer suchen und ersetzen nur bis zum Dateiende - BUG ?

2024-03-13 Diskussionsfäden Guido Dischinger

Am 12.03.24 um 22:53 schrieb Gerhard Weydt:

...
Das ist also nur eine eingeschränkte Lösung für Guidos Fragestellung; 
vielleicht genügt es ihm ja.


Ja, dem genügt es vollkommen, auch weil er nur mit Writer arbeitet und 
dieses Makro nur auf Dateien losgelassen wird, die nur Unicode-Zeichen 
und keine Formatierungsinformationen enthalten.


Viele Grüße
Guido

--
Liste abmelden mit E-Mail an: users+unsubscr...@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


Re: [de-users] Basic-Makro: Im Writer suchen und ersetzen nur bis zum Dateiende - BUG ?

2024-03-13 Diskussionsfäden OoOHWHOoO

Hallo Gerhard,

ich danke Dir für Deine Überlegungen.

Dass alles, was nicht Text ist, »verschwindet« - ist nachvollziehbar, da 
»VC.String« selbsterklärend ja sagt, dass hier Zeichenketten geliefert 
werden. Darauf hinzuweisen hatte ich im »Eifer des Gefechts« bezüglich 
CR/LF vergessen.


Davon ausgehend, dass »WRITER [Ansicht] [Formatierungszeichen]« wirklich 
alle Formatierungszeichen anzeigt, kann es direkt eigentlich nichts mit 
den verschiedenen Zeilenwechseln der verschiedenen Betriebssysteme zu 
tun haben. So lange ich nur in WRITER agiere und nichts von außen nach 
WRITER importiere, kommen in WRITER im Wesentlichen nur CR / Carriage 
Return ( ¶ ) und HT / Horizontal Tab vor, nicht aber LF / Line Feed - 
trotz Windows-Betriebssystem - so meine bisherigen Erfahrungen.


LFs habe ich bis jetzt immer nur dann in WRITER rein bekommen, wenn ich 
z.B. vom WEB etwas kopiert und in WRITER eingefügt habe (Beispiel: 
https://www.zdf.de/serien/reset-wie-weit-willst-du-gehen/konkurrenz-sechsteilige-drama-serie-100.html 
- Der Text zwischen »Die Handlung« und »Darsteller« ). WRITER behandelt 
dann diese importierten LFs bezüglich der Darstellung wie CRs.


Von daher bleibt es für mich weiterhin rätselhaft/unerklärlich, dass 
»VC.String« zusätzliche LFs »herbei zaubert«.


 Grüße
Hans-Werner ;-))

-- Originalnachricht --
Von "Gerhard Weydt" 
An users@de.libreoffice.org
Datum 12.03.2024 22:53:43
Betreff Re: [de-users] Basic-Makro: Im Writer suchen und ersetzen nur 
bis zum Dateiende - BUG ?



Hallo Hans-Werner,

laut Thomas Krumbeins Makro-Buch ist CR der Zeilenwechsel für Mac, LF der für 
Linux und CR + LF der für Windows. Das erklärt vielleicht das von dir 
beschriebene Phänomen, ich weiß aber auch nicht wie.

Ich habe dein Makro Guido mal ausprobiert für ein Dokument, das eine Tabelle 
und ein Bild enthielt: die Tabelle wurde zu einfachen Absätzen, das Bild 
verschwand; so hatte ich es auch ähnlich vermutet.
Das ist also nur eine eingeschränkte Lösung für Guidos Fragestellung; 
vielleicht genügt es ihm ja.

Viele Grüße
Gerhard

Am 12.03.2024 um 19:10 schrieb OoOHWHOoO:

Hallo Guido,

so wie's ausschaut, hängt »VC.String« an vorhandene CRs = Chr(13) automatisch 
ein LF = Chr(10) an.

Das habe ich mit diesem BasicMakro (offensichtlich) herausgefunden:

Sub VCString

'--- WRITER-Datei via LibreOffice
'ABC¶
'DEF¶
'GHI¶
'¶
'ABC¶
'DEF¶
'GHI¶
'¶
'¶
'ABC¶
'DEF¶
'GHI¶
'¶
'ABC¶
'DEF¶
'GHI¶
'--- WRITER-Datei via LibreOffice
'
'--- E:\TMP\VCString.txt via Notepad++
'EEFcrlf
'GHIcrlf
'crlf
'crlf
'ABCcrlf
'DEFcrlf
'GHIcrlf
'crlf
'ABCcrlf
'DEFcrlf
'GHIcrlf
'--- E:\TMP\VCString.txt via Notepad++

Dim VC as Object ' View Cursor
VC = ThisComponent.GetCurrentController.ViewCursor
VC.gotoEnd(True)

Dim PathFile as String
Dim Number as Integer
PathFile = "E:\TMP\VCString.txt" ' Anpassen !
Number = Freefile
Open PathFile For Output As #Number
Print #Number,VC.String
Close #Number

End Sub

Hier das eigentliche BasicMakro für Deine Zwecke, bei dem erst mal »Chr(13) & 
Chr(10)« durch »Chr(13)« ersetzt wird vor der eigentlichen vom Benutzer 
optionierten Suche/Ersetzung:

Sub Guido
'--- WRITER-Datei
'ABC
'DEF
'GHI
'
'ABC
'DEF
'GHI
'
'
'ABC
'DEF
'GHI
'
'ABC
'DEF
'GHI
'--- WRITER-Datei
Dim VC as Object ' View Cursor
Dim SS as String ' Search String
Dim RS as String ' Replace String

SS = "E" ' Search String
RS = "●" ' Replace String
VC = ThisComponent.GetCurrentController.ViewCursor
VC.gotoEnd(True)
VC.String = Replace(Replace(VC.String,Chr(13) & Chr(10),Chr(13)),SS,RS)
End sub

Für Hinweise auf Denkfehler oder falsche Annahmen meinerseits wäre ich dankbar.

Falls meine Recherche stimmt, wäre es dann als BUG anzusehen, dass in 
»VC.String« an CRs jeweils ein LF anhängt wird ?

Grüße
Hans-Werner ;-))



-- Liste abmelden mit E-Mail an: users+unsubscr...@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+unsubscr...@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


Re: [de-users] Basic-Makro: Im Writer suchen und ersetzen nur bis zum Dateiende - BUG ?

2024-03-12 Diskussionsfäden Gerhard Weydt

Hallo Hans-Werner,

laut Thomas Krumbeins Makro-Buch ist CR der Zeilenwechsel für Mac, LF 
der für Linux und CR + LF der für Windows. Das erklärt vielleicht das 
von dir beschriebene Phänomen, ich weiß aber auch nicht wie.


Ich habe dein Makro Guido mal ausprobiert für ein Dokument, das eine 
Tabelle und ein Bild enthielt: die Tabelle wurde zu einfachen Absätzen, 
das Bild verschwand; so hatte ich es auch ähnlich vermutet.
Das ist also nur eine eingeschränkte Lösung für Guidos Fragestellung; 
vielleicht genügt es ihm ja.


Viele Grüße
Gerhard

Am 12.03.2024 um 19:10 schrieb OoOHWHOoO:

Hallo Guido,

so wie's ausschaut, hängt »VC.String« an vorhandene CRs = Chr(13) 
automatisch ein LF = Chr(10) an.


Das habe ich mit diesem BasicMakro (offensichtlich) herausgefunden:

Sub VCString

'--- WRITER-Datei via LibreOffice
'ABC¶
'DEF¶
'GHI¶
'¶
'ABC¶
'DEF¶
'GHI¶
'¶
'¶
'ABC¶
'DEF¶
'GHI¶
'¶
'ABC¶
'DEF¶
'GHI¶
'--- WRITER-Datei via LibreOffice
'
'--- E:\TMP\VCString.txt via Notepad++
'EEFcrlf
'GHIcrlf
'crlf
'crlf
'ABCcrlf
'DEFcrlf
'GHIcrlf
'crlf
'ABCcrlf
'DEFcrlf
'GHIcrlf
'--- E:\TMP\VCString.txt via Notepad++

Dim VC as Object ' View Cursor
VC = ThisComponent.GetCurrentController.ViewCursor
VC.gotoEnd(True)

Dim PathFile as String
Dim Number as Integer
PathFile = "E:\TMP\VCString.txt" ' Anpassen !
Number = Freefile
Open PathFile For Output As #Number
Print #Number,VC.String
Close #Number

End Sub

Hier das eigentliche BasicMakro für Deine Zwecke, bei dem erst mal 
»Chr(13) & Chr(10)« durch »Chr(13)« ersetzt wird vor der eigentlichen 
vom Benutzer optionierten Suche/Ersetzung:


Sub Guido
'--- WRITER-Datei
'ABC
'DEF
'GHI
'
'ABC
'DEF
'GHI
'
'
'ABC
'DEF
'GHI
'
'ABC
'DEF
'GHI
'--- WRITER-Datei
Dim VC as Object ' View Cursor
Dim SS as String ' Search String
Dim RS as String ' Replace String

SS = "E" ' Search String
RS = "●" ' Replace String
VC = ThisComponent.GetCurrentController.ViewCursor
VC.gotoEnd(True)
VC.String = Replace(Replace(VC.String,Chr(13) & Chr(10),Chr(13)),SS,RS)
End sub

Für Hinweise auf Denkfehler oder falsche Annahmen meinerseits wäre ich 
dankbar.


Falls meine Recherche stimmt, wäre es dann als BUG anzusehen, dass in 
»VC.String« an CRs jeweils ein LF anhängt wird ?


Grüße
Hans-Werner ;-))



--
Liste abmelden mit E-Mail an: users+unsubscr...@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


[de-users] Basic-Makro: Im Writer suchen und ersetzen nur bis zum Dateiende - BUG ?

2024-03-12 Diskussionsfäden OoOHWHOoO

Hallo Guido,

so wie's ausschaut, hängt »VC.String« an vorhandene CRs = Chr(13) 
automatisch ein LF = Chr(10) an.


Das habe ich mit diesem BasicMakro (offensichtlich) herausgefunden:

Sub VCString

'--- WRITER-Datei via LibreOffice
'ABC¶
'DEF¶
'GHI¶
'¶
'ABC¶
'DEF¶
'GHI¶
'¶
'¶
'ABC¶
'DEF¶
'GHI¶
'¶
'ABC¶
'DEF¶
'GHI¶
'--- WRITER-Datei via LibreOffice
'
'--- E:\TMP\VCString.txt via Notepad++
'EEFcrlf
'GHIcrlf
'crlf
'crlf
'ABCcrlf
'DEFcrlf
'GHIcrlf
'crlf
'ABCcrlf
'DEFcrlf
'GHIcrlf
'--- E:\TMP\VCString.txt via Notepad++

Dim VC as Object ' View Cursor
VC = ThisComponent.GetCurrentController.ViewCursor
VC.gotoEnd(True)

Dim PathFile as String
Dim Number as Integer
PathFile = "E:\TMP\VCString.txt" ' Anpassen !
Number = Freefile
Open PathFile For Output As #Number
Print #Number,VC.String
Close #Number

End Sub

Hier das eigentliche BasicMakro für Deine Zwecke, bei dem erst mal 
»Chr(13) & Chr(10)« durch »Chr(13)« ersetzt wird vor der eigentlichen 
vom Benutzer optionierten Suche/Ersetzung:


Sub Guido
'--- WRITER-Datei
'ABC
'DEF
'GHI
'
'ABC
'DEF
'GHI
'
'
'ABC
'DEF
'GHI
'
'ABC
'DEF
'GHI
'--- WRITER-Datei
Dim VC as Object ' View Cursor
Dim SS as String ' Search String
Dim RS as String ' Replace String

SS = "E" ' Search String
RS = "●" ' Replace String
VC = ThisComponent.GetCurrentController.ViewCursor
VC.gotoEnd(True)
VC.String = Replace(Replace(VC.String,Chr(13) & Chr(10),Chr(13)),SS,RS)
End sub

Für Hinweise auf Denkfehler oder falsche Annahmen meinerseits wäre ich 
dankbar.


Falls meine Recherche stimmt, wäre es dann als BUG anzusehen, dass in 
»VC.String« an CRs jeweils ein LF anhängt wird ?


Grüße
Hans-Werner ;-))
--
Liste abmelden mit E-Mail an: users+unsubscr...@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


Re: [de-users] Basic-Makro: Im Writer suchen und ersetzen nur bis zum Dateiende

2024-03-12 Diskussionsfäden OoOHWHOoO

Hallo Guido,

ich mal mal ein wenig bei 
http://www.dannenhoefer.de/faqstarbasic/index.html gestöbert und 
folgendes Makro gebastelt:


Sub Guido

' Zum Testen in WRITER-Datei: [Ansicht][Formatierungszeichen] √ setzen

Dim VC as Object
Dim SS as String
Dim RS as String

SS = "das suchen"
RS = "damit ersetzen"

VC = ThisComponent.GetCurrentController.ViewCursor
VC.gotoEnd(True)
MsgBox("Zwischen-Stopp zum Nachschauen in WRITER-Datei:  markierter 
Text")

VC.String = Replace(VC.String,SS,RS)
MsgBox("Zwischen-Stopp zum Nachschauen in WRITER-Datei:  zusätzliche 
LFs")

VC.String = Replace(VC.String,Chr(10),"")

End sub

Die Zeile

ViewCursor.String = Replace(ViewCursor.String,Chr(10),"")

wurde notwendig, weil nach dem Suchen/Ersetzen vor und nach den CR / 
Carriage Return / Wagenrücklauf / Chr(13) im Text zusätzlich ein  LF / 
Line Feed / Zeilenvorschub / Chr(10) eingefügt wurde.


Kein Ahnung warum :-((

Vielleicht hat da ja jemand einen Hinweis und/oder Idee ...

in Texten scheinen LFs überhaupt nicht vorzukommen. Ich kenne sie nur 
aus BasicMakros, wenn man via »MsgBox« eine neue Zeile schreiben will:


MsgBox("Zeile 1" & Chr(10) & "Zeile 2")

Ansonsten tut das BasicMakro was es soll ... hoffe ich mal ;-))

Grüße
Hans-Werner ;-))



-- Originalnachricht --
Von "Guido Dischinger" 
An users@de.libreoffice.org
Datum 11.03.2024 21:18:06
Betreff Re: [de-users] Basic-Makro: Im Writer suchen und ersetzen nur 
bis zum Dateiende



Hallo, Werner,

danke - das funktioniert. Mein Problem ist gelöst.

Ehrlich gesagt, ich hatte gehofft, es geht ohne Aufzeichnen. Das Aufzeichnen führt zu 
ellenlangem Code. Ein "händisches" Makro ist kürzer und in der Regel besser 
verständlich. Aber ich muss ja nicht in Schönheit sterben...

Noch mal danke!

Guido



Am 11.03.24 um 20:24 schrieb Werner Tietz:

Hallo

Dann eben ⇒Makro aufzeichnen:

###

sub record_search_replace_selection()

dim document   as object
dim dispatcher as object
document   = ThisComponent.CurrentController.Frame
dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")
dispatcher.executeDispatch(document, ".uno:EndOfDocumentSel", "", 0, Array()
dim args2(21) as new com.sun.star.beans.PropertyValue
args2(0).Name = "SearchItem.StyleFamily"
args2(0).Value = 2
args2(1).Name = "SearchItem.CellType"
args2(1).Value = 0
args2(2).Name = "SearchItem.RowDirection"
args2(2).Value = true
args2(3).Name = "SearchItem.AllTables"
args2(3).Value = false
args2(4).Name = "SearchItem.SearchFiltered"
args2(4).Value = false
args2(5).Name = "SearchItem.Backward"
args2(5).Value = false
args2(6).Name = "SearchItem.Pattern"
args2(6).Value = false
args2(7).Name = "SearchItem.Content"
args2(7).Value = false
args2(8).Name = "SearchItem.AsianOptions"
args2(8).Value = false
args2(9).Name = "SearchItem.AlgorithmType"
args2(9).Value = 1
args2(10).Name = "SearchItem.SearchFlags"
args2(10).Value = 71680
args2(11).Name = "SearchItem.SearchString"
args2(11).Value = "xxx"
args2(12).Name = "SearchItem.ReplaceString"
args2(12).Value = "yyy"
args2(13).Name = "SearchItem.Locale"
args2(13).Value = 255
args2(14).Name = "SearchItem.ChangedChars"
args2(14).Value = 2
args2(15).Name = "SearchItem.DeletedChars"
args2(15).Value = 2
args2(16).Name = "SearchItem.InsertedChars"
args2(16).Value = 2
args2(17).Name = "SearchItem.TransliterateFlags"
args2(17).Value = 1280
args2(18).Name = "SearchItem.Command"
args2(18).Value = 3
args2(19).Name = "SearchItem.SearchFormatted"
args2(19).Value = false
args2(20).Name = "SearchItem.AlgorithmType2"
args2(20).Value = 2
args2(21).Name = "Quiet"
args2(21).Value = true
dispatcher.executeDispatch(document, ".uno:ExecuteSearch", "", 0, args2())
end sub



Am 11.03.24 um 15:08 schrieb Guido Dischinger:

Sub ersetzenTest

Dim oViewCursor as Object
Dim oErsetzen

oDoc = ThisComponent
oViewCursor = oDoc.CurrentController.ViewCursor
oViewCursor.gotoEnd( True ) 'selektieren bis Dokument_Ende

repl = oDoc.createReplaceDescriptor()
With repl
   .SearchString = "XXX"
   .ReplaceString = "YYY"
   .searchAll = False
End With

'warum nochmals »thisComponent« ???

ThisComponent.ReplaceAll(repl)

end sub




-- Liste abmelden mit E-Mail an: users+unsubscr...@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+unsubscr...@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


Re: [de-users] Basic-Makro: Im Writer suchen und ersetzen nur bis zum Dateiende

2024-03-11 Diskussionsfäden Guido Dischinger

Hallo, Werner,

danke - das funktioniert. Mein Problem ist gelöst.

Ehrlich gesagt, ich hatte gehofft, es geht ohne Aufzeichnen. Das 
Aufzeichnen führt zu ellenlangem Code. Ein "händisches" Makro ist kürzer 
und in der Regel besser verständlich. Aber ich muss ja nicht in 
Schönheit sterben...


Noch mal danke!

Guido



Am 11.03.24 um 20:24 schrieb Werner Tietz:

Hallo

Dann eben ⇒Makro aufzeichnen:

###

sub record_search_replace_selection()

dim document   as object
dim dispatcher as object
document   = ThisComponent.CurrentController.Frame
dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")
dispatcher.executeDispatch(document, ".uno:EndOfDocumentSel", "", 0, 
Array()

dim args2(21) as new com.sun.star.beans.PropertyValue
args2(0).Name = "SearchItem.StyleFamily"
args2(0).Value = 2
args2(1).Name = "SearchItem.CellType"
args2(1).Value = 0
args2(2).Name = "SearchItem.RowDirection"
args2(2).Value = true
args2(3).Name = "SearchItem.AllTables"
args2(3).Value = false
args2(4).Name = "SearchItem.SearchFiltered"
args2(4).Value = false
args2(5).Name = "SearchItem.Backward"
args2(5).Value = false
args2(6).Name = "SearchItem.Pattern"
args2(6).Value = false
args2(7).Name = "SearchItem.Content"
args2(7).Value = false
args2(8).Name = "SearchItem.AsianOptions"
args2(8).Value = false
args2(9).Name = "SearchItem.AlgorithmType"
args2(9).Value = 1
args2(10).Name = "SearchItem.SearchFlags"
args2(10).Value = 71680
args2(11).Name = "SearchItem.SearchString"
args2(11).Value = "xxx"
args2(12).Name = "SearchItem.ReplaceString"
args2(12).Value = "yyy"
args2(13).Name = "SearchItem.Locale"
args2(13).Value = 255
args2(14).Name = "SearchItem.ChangedChars"
args2(14).Value = 2
args2(15).Name = "SearchItem.DeletedChars"
args2(15).Value = 2
args2(16).Name = "SearchItem.InsertedChars"
args2(16).Value = 2
args2(17).Name = "SearchItem.TransliterateFlags"
args2(17).Value = 1280
args2(18).Name = "SearchItem.Command"
args2(18).Value = 3
args2(19).Name = "SearchItem.SearchFormatted"
args2(19).Value = false
args2(20).Name = "SearchItem.AlgorithmType2"
args2(20).Value = 2
args2(21).Name = "Quiet"
args2(21).Value = true
dispatcher.executeDispatch(document, ".uno:ExecuteSearch", "", 0, args2())
end sub



Am 11.03.24 um 15:08 schrieb Guido Dischinger:

Sub ersetzenTest

Dim oViewCursor as Object
Dim oErsetzen

oDoc = ThisComponent
oViewCursor = oDoc.CurrentController.ViewCursor
oViewCursor.gotoEnd( True ) 'selektieren bis Dokument_Ende

repl = oDoc.createReplaceDescriptor()
With repl
   .SearchString = "XXX"
   .ReplaceString = "YYY"
   .searchAll = False
End With

'warum nochmals »thisComponent« ???

ThisComponent.ReplaceAll(repl)

end sub 




--
Liste abmelden mit E-Mail an: users+unsubscr...@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


Re: [de-users] Basic-Makro: Im Writer suchen und ersetzen nur bis zum Dateiende

2024-03-11 Diskussionsfäden Werner Tietz

Hallo

Dann eben ⇒Makro aufzeichnen:

###

sub record_search_replace_selection()

dim document   as object
dim dispatcher as object
document   = ThisComponent.CurrentController.Frame
dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")
dispatcher.executeDispatch(document, ".uno:EndOfDocumentSel", "", 0, Array()
dim args2(21) as new com.sun.star.beans.PropertyValue
args2(0).Name = "SearchItem.StyleFamily"
args2(0).Value = 2
args2(1).Name = "SearchItem.CellType"
args2(1).Value = 0
args2(2).Name = "SearchItem.RowDirection"
args2(2).Value = true
args2(3).Name = "SearchItem.AllTables"
args2(3).Value = false
args2(4).Name = "SearchItem.SearchFiltered"
args2(4).Value = false
args2(5).Name = "SearchItem.Backward"
args2(5).Value = false
args2(6).Name = "SearchItem.Pattern"
args2(6).Value = false
args2(7).Name = "SearchItem.Content"
args2(7).Value = false
args2(8).Name = "SearchItem.AsianOptions"
args2(8).Value = false
args2(9).Name = "SearchItem.AlgorithmType"
args2(9).Value = 1
args2(10).Name = "SearchItem.SearchFlags"
args2(10).Value = 71680
args2(11).Name = "SearchItem.SearchString"
args2(11).Value = "xxx"
args2(12).Name = "SearchItem.ReplaceString"
args2(12).Value = "yyy"
args2(13).Name = "SearchItem.Locale"
args2(13).Value = 255
args2(14).Name = "SearchItem.ChangedChars"
args2(14).Value = 2
args2(15).Name = "SearchItem.DeletedChars"
args2(15).Value = 2
args2(16).Name = "SearchItem.InsertedChars"
args2(16).Value = 2
args2(17).Name = "SearchItem.TransliterateFlags"
args2(17).Value = 1280
args2(18).Name = "SearchItem.Command"
args2(18).Value = 3
args2(19).Name = "SearchItem.SearchFormatted"
args2(19).Value = false
args2(20).Name = "SearchItem.AlgorithmType2"
args2(20).Value = 2
args2(21).Name = "Quiet"
args2(21).Value = true
dispatcher.executeDispatch(document, ".uno:ExecuteSearch", "", 0, args2())
end sub



Am 11.03.24 um 15:08 schrieb Guido Dischinger:

Sub ersetzenTest

Dim oViewCursor as Object
Dim oErsetzen

oDoc = ThisComponent
oViewCursor = oDoc.CurrentController.ViewCursor
oViewCursor.gotoEnd( True ) 'selektieren bis Dokument_Ende

repl = oDoc.createReplaceDescriptor()
With repl
   .SearchString = "XXX"
   .ReplaceString = "YYY"
   .searchAll = False
End With

'warum nochmals »thisComponent« ???

ThisComponent.ReplaceAll(repl)

end sub 


--
Liste abmelden mit E-Mail an: users+unsubscr...@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


Re: [de-users] Basic-Makro: Im Writer suchen und ersetzen nur bis zum Dateiende

2024-03-11 Diskussionsfäden Guido Dischinger

Hallo Werner,

vielen Dank! Eine Lösung habe ich noch nicht gefunden, aber viel aus dem 
ich lernen kann!


Beste Grüße
Guido

Am 11.03.24 um 11:44 schrieb OoOHWHOoO:

Hallo Guido,

schau mal in »BASIC-Makros für OO und LO - OOME 4.0« ab »14.6 Textauswahl«.

Nicht unbedingt eine »leichte Kost«, aber da geht es um den Bereich 
zwischen einem »linken Cursor« und einem »rechten Cursor« - und 
natürlich auch um »Suchen« und »Ersetzen«:  »14.7.1 Eine Textauswahl 
oder einen bestimmten Range durchsuchen«


Eigene Erfahrungswerte habe ich dazu leider nicht, da ich bisher nur mit 
»14.7.3 Erweitertes Suchen und Ersetzen« gearbeitet habe.


Mit »14.7.3« kann man eine halbautomatische Lösung realisieren, da man 
für das Suchen auch ein Farb-Attribut angeben kann. Mit dem 
Beispiel-Makro funktioniert das so, dass man den Textbereich, in dem 
gesucht und ersetzt werden soll, einfach manuell rot einfärben muss. 
Anschließend das Makro über die Schaltfläche starten und alle roten 
»Hallo« werden durch »ollaH« ersetzt.


Schau mal hier: https://magentacloud.de/s/KYLsjXTzY62DCqF Ordner: »Guido«

»Guido.odt« - Datei zum direkten Testen !
»Guido.bas« - BasicMakro-Code

Vielleicht hilft Dir das alles ja irgendwie weiter eine für Dich 
passende Lösung zu realisieren,


Grüße
Hans-Werner ;-))

-- Originalnachricht --
Von "Guido Dischinger" 
An users@de.libreoffice.org
Datum 11.03.2024 08:47:35
Betreff [de-users] Basic-Makro: Im Writer suchen und ersetzen nur bis 
zum Dateiende



Hallo zusammen!

Mit einem Makro möchte ausschließlich im Text von der aktuellen 
Cursorposition bis zum Dateiende suchen und ersetzen.


Per Makro kann ich zwar den Text mithilfe eines Textcursors bis zum 
Dateiende "markieren", aber Suchen und Ersetzen kann ich (bisher) nur 
im gesamten Dokument.


Wie kann ich mit einem Makro nur bis zum Textende suchen und ersetzen 
und den Text vor der aktuellen Cursorposition unverändert lassen?


Beste Grüße
Guido Dischinger

-- Liste abmelden mit E-Mail an: users+unsubscr...@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+unsubscr...@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


Re: [de-users] Basic-Makro: Im Writer suchen und ersetzen nur bis zum Dateiende

2024-03-11 Diskussionsfäden Guido Dischinger

Hallo Werner,

vielen Dank! Allerdings hilft es mir nicht ganz weiter. Ich habe 
folgendes Makro geschrieben und gedacht, dass ".searchAll = False" 
verhindert, dass der gesamte Text bearbeitet wird:


--- schnipp
Sub ersetzenTest

Dim oViewCursor as Object
Dim oErsetzen

oDoc = ThisComponent
oViewCursor = oDoc.CurrentController.ViewCursor
oViewCursor.gotoEnd( True ) 'selektieren bis Dokument_Ende

repl = oDoc.createReplaceDescriptor()
With repl
   .SearchString = "XXX"
   .ReplaceString = "YYY"
   .searchAll = False
End With
ThisComponent.ReplaceAll(repl)

end sub
--- schnapp

Das Ding ersetzt im gesamten Text "XXX" durch "YYY", nicht nur ab der 
aktuellen Cursorposition? Warum?


Wie sieht ein Makro aus, das nur ab der Cursorposition ersetzt?

Guido

Am 11.03.24 um 13:28 schrieb Werner Tietz:

Hallo

###

doc = ThisComponent

viewCursor = doc.CurrentController.ViewCursor

viewCursor.gotoEnd( True ) 'selektieren bis Dokument_Ende

repl = doc.createReplaceDescriptor()

repl.searchAll = False

……

#

Am 11.03.24 um 08:47 schrieb Guido Dischinger:

Hallo zusammen!

Mit einem Makro möchte ausschließlich im Text von der aktuellen 
Cursorposition bis zum Dateiende suchen und ersetzen.


Per Makro kann ich zwar den Text mithilfe eines Textcursors bis zum 
Dateiende "markieren", aber Suchen und Ersetzen kann ich (bisher) nur 
im gesamten Dokument.


Wie kann ich mit einem Makro nur bis zum Textende suchen und ersetzen 
und den Text vor der aktuellen Cursorposition unverändert lassen?


Beste Grüße
Guido Dischinger





--
Liste abmelden mit E-Mail an: users+unsubscr...@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


Re: [de-users] Basic-Makro: Im Writer suchen und ersetzen nur bis zum Dateiende

2024-03-11 Diskussionsfäden Werner Tietz

Hallo

###

doc = ThisComponent

viewCursor = doc.CurrentController.ViewCursor

viewCursor.gotoEnd( True ) 'selektieren bis Dokument_Ende

repl = doc.createReplaceDescriptor()

repl.searchAll = False

……

#

Am 11.03.24 um 08:47 schrieb Guido Dischinger:

Hallo zusammen!

Mit einem Makro möchte ausschließlich im Text von der aktuellen 
Cursorposition bis zum Dateiende suchen und ersetzen.


Per Makro kann ich zwar den Text mithilfe eines Textcursors bis zum 
Dateiende "markieren", aber Suchen und Ersetzen kann ich (bisher) nur 
im gesamten Dokument.


Wie kann ich mit einem Makro nur bis zum Textende suchen und ersetzen 
und den Text vor der aktuellen Cursorposition unverändert lassen?


Beste Grüße
Guido Dischinger



--
Liste abmelden mit E-Mail an: users+unsubscr...@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


Re: [de-users] Basic-Makro: Im Writer suchen und ersetzen nur bis zum Dateiende

2024-03-11 Diskussionsfäden OoOHWHOoO

Hallo Guido,

schau mal in »BASIC-Makros für OO und LO - OOME 4.0« ab »14.6 
Textauswahl«.


Nicht unbedingt eine »leichte Kost«, aber da geht es um den Bereich 
zwischen einem »linken Cursor« und einem »rechten Cursor« - und 
natürlich auch um »Suchen« und »Ersetzen«:  »14.7.1 Eine Textauswahl 
oder einen bestimmten Range durchsuchen«


Eigene Erfahrungswerte habe ich dazu leider nicht, da ich bisher nur mit 
»14.7.3 Erweitertes Suchen und Ersetzen« gearbeitet habe.


Mit »14.7.3« kann man eine halbautomatische Lösung realisieren, da man 
für das Suchen auch ein Farb-Attribut angeben kann. Mit dem 
Beispiel-Makro funktioniert das so, dass man den Textbereich, in dem 
gesucht und ersetzt werden soll, einfach manuell rot einfärben muss. 
Anschließend das Makro über die Schaltfläche starten und alle roten 
»Hallo« werden durch »ollaH« ersetzt.


Schau mal hier: https://magentacloud.de/s/KYLsjXTzY62DCqF Ordner: 
»Guido«


»Guido.odt« - Datei zum direkten Testen !
»Guido.bas« - BasicMakro-Code

Vielleicht hilft Dir das alles ja irgendwie weiter eine für Dich 
passende Lösung zu realisieren,


Grüße
Hans-Werner ;-))

-- Originalnachricht --
Von "Guido Dischinger" 
An users@de.libreoffice.org
Datum 11.03.2024 08:47:35
Betreff [de-users] Basic-Makro: Im Writer suchen und ersetzen nur bis 
zum Dateiende



Hallo zusammen!

Mit einem Makro möchte ausschließlich im Text von der aktuellen Cursorposition 
bis zum Dateiende suchen und ersetzen.

Per Makro kann ich zwar den Text mithilfe eines Textcursors bis zum Dateiende 
"markieren", aber Suchen und Ersetzen kann ich (bisher) nur im gesamten 
Dokument.

Wie kann ich mit einem Makro nur bis zum Textende suchen und ersetzen und den 
Text vor der aktuellen Cursorposition unverändert lassen?

Beste Grüße
Guido Dischinger

-- Liste abmelden mit E-Mail an: users+unsubscr...@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+unsubscr...@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


[de-users] Basic-Makro: Im Writer suchen und ersetzen nur bis zum Dateiende

2024-03-11 Diskussionsfäden Guido Dischinger

Hallo zusammen!

Mit einem Makro möchte ausschließlich im Text von der aktuellen 
Cursorposition bis zum Dateiende suchen und ersetzen.


Per Makro kann ich zwar den Text mithilfe eines Textcursors bis zum 
Dateiende "markieren", aber Suchen und Ersetzen kann ich (bisher) nur im 
gesamten Dokument.


Wie kann ich mit einem Makro nur bis zum Textende suchen und ersetzen 
und den Text vor der aktuellen Cursorposition unverändert lassen?


Beste Grüße
Guido Dischinger

--
Liste abmelden mit E-Mail an: users+unsubscr...@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