Makro, welches URLs iterativ in Links wandelt

Antwort erstellen


BBCode ist eingeschaltet
[img] ist ausgeschaltet
[url] ist eingeschaltet
Smileys sind ausgeschaltet

Die letzten Beiträge des Themas
   

Ansicht erweitern Die letzten Beiträge des Themas: Makro, welches URLs iterativ in Links wandelt

Re: Makro, welches URLs iterativ in Links wandelt

von DPunch » Mi, 17.08.2011 08:47

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.

Re: Makro, welches URLs iterativ in Links wandelt

von rittergig » Di, 16.08.2011 22:43

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

von DPunch » Di, 16.08.2011 16:19

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

Nach oben