INFO: Writer Suchen und Ersetzen in Selektion
Verfasst: Sa 7. Jul 2018, 21:41
Hallo,
nach einiger Suche habe ich im englischen Forum eine Lösung
zu diesem Thema gefunden, wie man in einem markierten Textbereich Zeichen
mittels eines Arrays auszuwechseln kann.
Gruß
David
nach einiger Suche habe ich im englischen Forum eine Lösung
zu diesem Thema gefunden, wie man in einem markierten Textbereich Zeichen
mittels eines Arrays auszuwechseln kann.
Code: Alles auswählen
REM Suchen und Ersetzen in einem markiertem Bereich
REM Quelle: forum.openoffice.org/en/forum/viewtopic.php?f=20&t=39966#p183751
Sub Replace2()
Dim oDoc,oText,oVC,oStart,oEnd,oFind,FandR
oDoc = ThisComponent : oText = oDoc.Text
oVC = oDoc.CurrentController.getViewCursor
aFind = Array("A", "B","C" ,"D")
aReplace = Array("1", "2", "3", "4")
aRayCount = 0
While aRayCount <= uBound(aFind)
oStart = oText.createTextCursorByRange(oVC.Start)
If Not oVC.isCollapsed then oEnd = oText.createTextCursorByRange(oVC.End)
FandR = oDoc.createReplaceDescriptor
With FandR
.SearchString = aFind(aRayCount)
.ReplaceString = aReplace(aRayCount)
.SearchWords = false
End With
If isEmpty(oEnd) then 'Do whole document.
oDoc.replaceAll(FandR)
Else 'Do selection.
Do
oFind = oDoc.FindNext(oStart.End,FandR)
If isNull(oFind) then Exit Do
If oText.compareRegionEnds(oFind,oEnd) < 0 then Exit Do
oFind.setString(FandR.ReplaceString)
oFind = oDoc.FindNext(oFind.End,FandR)
Loop
EndIf
aRayCount = aRayCount + 1
Wend
End Sub
David