Recuperar texto seleccionado

Desarrollo de Macros y programación en UNO, usar las API, llamar programas externos...
Responder
manucogalarza
Mensajes: 6
Registrado: Jue Ago 13, 2009 8:55 pm

Recuperar texto seleccionado

Mensaje por manucogalarza »

Deseo recuperar el texto seleccionado a través de esta función dispatcher.executeDispatch(document, ".uno:StartOfLineSel", "", 0, Array()) estoy programando esto en una macro en Writer OpenOffice 3.1.


Editado por el moderador (valedor74) para mover el tema a un subforo apropiado. Si no lo has hecho aún por favor lee la Guía de supervivencia
OpenOffice 3.1 en Windows XP
Avatar de Usuario
mauricio
Mensajes: 6092
Registrado: Sab Nov 22, 2008 5:36 am
Ubicación: CDMX
Contactar:

Re: Recuperar texto seleccionado

Mensaje por mauricio »

La selección en Writer, siempre te devuelve un conjunto de selecciones, en el siguiente ejemplo, te muestra el texto de cada párrafo seleccionado:

Código: Seleccionar todo

Sub ParrafosSeleccionados()
Dim oDoc As Object
Dim oSelecciones As Object
Dim oSel As Object
Dim co1 As Integer
Dim oEnumera As Object
Dim oParrafo As Object

	oDoc = ThisComponent
	'La selección te devuelve un conjunto de selecciones
	oSelecciones = oDoc.getCurrentController.getSelection()
	'Iteramos cada selección
	For co1 = 0 To oSelecciones.getCount()-1
		oSel = oSelecciones.getByIndex( co1 )
		'Enumeramos su contenido
		oEnumera = oSel.createEnumeration()
		Do While oEnumera.hasMoreElements()
			'Cada parrafo
			oParrafo = oEnumera.NextElement()
			'Nos aseguramos que sea un parrafo
			If oParrafo.supportsService("com.sun.star.text.Paragraph") Then
				MsgBox oParrafo.getString()
			End If
		Loop
	Next
	
End Sub
Saludos
______________________________________________
"Todo cuanto no podemos dar nos posee". - André Gide
LibreOffice 6.2 | ArchLinux | Gnome3
No respondo preguntas privadas, por favor, usa el foro
manucogalarza
Mensajes: 6
Registrado: Jue Ago 13, 2009 8:55 pm

Re: Recuperar texto seleccionado

Mensaje por manucogalarza »

Pero yo quiero recuperar lo que selecciono esa sentencia. Por ejemplo:
987564
Con este número asignandolo a una variable me permitirá leer un registro de un archivo texto indexado..
OpenOffice 3.1 en Windows XP
Avatar de Usuario
mauricio
Mensajes: 6092
Registrado: Sab Nov 22, 2008 5:36 am
Ubicación: CDMX
Contactar:

Re: Recuperar texto seleccionado

Mensaje por mauricio »

¿Intentaste adaptar el código?, ¿hiciste alguna otra prueba?

Código: Seleccionar todo

Sub ParrafosSeleccionados2()
Dim oDoc As Object
Dim oSel As Object
Dim lNum As Long

	oDoc = ThisComponent
	'La selección te devuelve un conjunto de selecciones
	oSel = oDoc.getCurrentController.getSelection().getByIndex( 0 )
   	lNum = CLng( oSel.getString )
	
	MsgBox lNum
End Sub
______________________________________________
"Todo cuanto no podemos dar nos posee". - André Gide
LibreOffice 6.2 | ArchLinux | Gnome3
No respondo preguntas privadas, por favor, usa el foro
Responder