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" <d...@posteo.de>
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