Cristina Castilla
Thu, 17 Nov 2005 09:13:55 -0800
Saludos.----- Original Message ----- From: "Santiago Bosio" <[EMAIL PROTECTED]>
To: <users@es.openoffice.org> Sent: Thursday, November 17, 2005 4:18 PM Subject: Re: [usr] Diccionario
El mar, 15-11-2005 a las 04:10, Cristina Castilla escribió:Hola, comunidad: soy profesora de lengua y me gustaríaa que mis alumnos pudieranregistrar las palabras que le corrige el corrector ortográfico, para que puedan conocer los términos que fallan normalmente y tener un listado de ellos. Lo he intentado creando un "nuevo diccionario de usuario", pero al añaadirlas con los errores, el programa ya no vuelve a reconocerlas como fallos y las admite como correctas. ¿Alguien puede darme alguna idea al respecto? Gracias.Cristina: No creo que puedas resolverlo a través de los diccionarios de usuario, porque precisamente su utilidad es la de agregar palabras correctas, que no están en el diccionario principal. He escrito una pequeña macro que te permitirá extraer el listado de palabras incorrectas en un documento aparte. Debieras guardarla, y ejecutarla sobre los documentos Writer antes de empezar a corregirlos. Pego el código a continuación: '-- Copiar desde aquí REM ***** BASIC ***** Sub ListarPalabrasIncorrectas Dim oDocModel as Variant Dim oTextCursor as Variant Dim oLinguSvcMgr as Variant Dim oSpellChk as Variant Dim oListDocFrame as Variant Dim oListDocModel as Variant Dim sListaPalabras as String Dim aProp(0) As New com.sun.star.beans.PropertyValue ' Obtener acceso al documento actual oDocModel = StarDesktop.CurrentFrame.Controller.getModel() If IsNull(oDocModel) Then MsgBox("No hay ningún documento activo." + Chr(13) + _ "Abra un documento de Writer antes de activar esta macro.") Exit Sub End If ' Verificar que este sea un documento de textoIf Not HasUnoInterfaces (oDocModel, "com.sun.star.text.XTextDocument") Then MsgBox("Este documento no soporta la interfaz 'XTextDocument'." + Chr(13) + _"Utilice esta macro únicamente con documentos de Writer.") Exit Sub End If ' Obtener un cursor de texto y posicionarlo al principio del documento oTextCursor = oDocModel.Text.createTextCursor() oTextCursor.gotoStart(False) ' Obtener una referencia al corrector ortográfico o morir en el intentooLinguSvcMgr = createUnoService("com.sun.star.linguistic2.LinguServiceManager")If Not IsNull(oLinguSvcMgr) Then oSpellChk = oLinguSvcMgr.getSpellChecker() End If If IsNull (oSpellChk) Then MsgBox("No se pudo acceder a un corrector ortográfico." + Chr(13) + _ "Verifique las opciones de lingüística de su instalación.") Exit Sub End If ' Iterar sobre todas las palabras que contiene el documento Do If oTextCursor.isStartOfWord() Then oTextCursor.gotoEndOfWord(True) ' Verificar si la palabra está bien escritaIf Not oSpellChk.isValid(oTextCursor.getString(), oTextCursor.getPropertyValue("CharLocale"), aProp()) ThensListaPalabras = sListaPalabras + oTextCursor.getString() + Chr(13) End If oTextCursor.collapseToEnd() End If Loop While oTextCursor.gotoNextWord(False) If Len(sListaPalabras) = 0 Then MsgBox("No hay errores ortográficos en el documento.") Exit Sub End If ' Buscar el frame que contiene la lista (o crearlo)oListDocFrame = StarDesktop.findFrame("fListarPalabrasIncorrectas", com.sun.star.frame.FrameSearchFlag.ALL)If IsNull(oListDocFrame) ThenoListDocModel = StarDesktop.loadComponentFromURL("private:factory/swriter", "fListarPalabrasIncorrectas", com.sun.star.frame.FrameSearchFlag.CREATE, aProp())oListDocFrame = oListDocModel.CurrentController.getFrame() Else oListDocModel = oListDocFrame.Controller.getModel() End If ' Obtener un cursor de texto para este documento oTextCursor = oListDocModel.Text.createTextCursor() oTextCursor.gotoEnd(False) ' Escribir la lista oListDocModel.Text.insertString (oTextCursor, sListaPalabras, False) ' Activar este frame oListDocFrame.activate() ' ¡Y ya terminamos! End Sub '-- Copiar hasta aquí Pruébalo y me cuentas si funcionó. Saludos, Santiago Bosio --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]