Seite 1 von 1
Re: Makro, welches URLs iterativ in Links wandelt
Verfasst: Di, 16.08.2011 16:19
von DPunch
Aloha
Schau mal, ob folgendes wunschgemäß funktioniert:
Code: Alles auswählen
oDoc = thisComponent
oSearchDesc = oDoc.createSearchDescriptor
oSearchDesc.SearchString = "[a-z]+://[^ ]+(\.[^ ]+)+"
oSearchDesc.SearchRegularExpression = True
oResult = oDoc.findFirst(oSearchDesc)
Do While NOT isNull(oResult)
sURL = oResult.String
oResult.HyperLinkURL = sURL
oResult = oDoc.findNext(oResult,oSearchDesc)
Loop
Re: Makro, welches URLs iterativ in Links wandelt
Verfasst: Di, 16.08.2011 22:43
von rittergig
Danke!
Das funktioniert soweit.
Gibt es auch eine Möglichkeit, diese Suche auf eine zuvor markierten Bereich durchzuführen.
Ich will eigentlich genau genommen, die URLs nur im Literaturverzeichnis durch Links ersetzten
Grüße, Peter
Re: Makro, welches URLs iterativ in Links wandelt
Verfasst: Mi, 17.08.2011 08:47
von DPunch
Aloha
rittergig hat geschrieben:Gibt es auch eine Möglichkeit, diese Suche auf eine zuvor markierten Bereich durchzuführen.
Solange es sich dabei nur um reinen Text handelt, nach dem Motto:
Code: Alles auswählen
oDoc = thisComponent
oSelection = oDoc.CurrentSelection
If NOT oSelection.supportsService("com.sun.star.text.TextRanges") Then
MsgBox "Bitte einen Text selektieren",48,"Selektion"
Exit Sub
End If
oText = oDoc.Text
oSearchDesc = oDoc.createSearchDescriptor
oSearchDesc.SearchString = "[a-z]+://[^ ]+(\.[^ ]+)+"
oSearchDesc.SearchRegularExpression = True
oResult = oDoc.findFirst(oSearchDesc)
Do While NOT isNull(oResult)
For i = 0 To oSelection.Count -1
oEnd = oSelection(i).End
oStart = oSelection(i).Start
If oText.compareRegionStarts(oEnd,oResult) <= 0 AND oText.compareRegionStarts(oStart,oResult) >= 0 Then
sURL = oResult.String
oResult.HyperLinkURL = sURL
End If
Next i
oResult = oDoc.findNext(oResult,oSearchDesc)
Loop
Bei Selektion über Text und zum Beispiel auch noch Tabellen wird das schon komplizierter.