Page 1 of 1
Acentuar automaticamente
Posted:
Tue May 12, 2009 4:15 pm
by softruz
Muy buenas, estoy intentando buscar algún algoritmo que me pueda acentuar automaticamente pero creo que la mejor manera es que con la clase TWORD lo pase a word y las acentue y las recoja una vez hecho este proceso. ¿Sabeis algo que haga esto?
Un Saludo.
Re: Acentuar automaticamente
Posted:
Tue May 12, 2009 4:40 pm
by Armando
Softrus:
Creo que el algoritmo que buscas es muy complicado aunque no imposible, lo que hago en una aplicación es apoyarme en el verificador de ortografía de WORD que aunque una chapuza me sacó del problema y no solo para acentur palabras sino para revisar toda la ortografía.
Si te interesa podemos seguir el hilo.
Saludos
Re: Acentuar automaticamente
Posted:
Tue May 12, 2009 5:09 pm
by softruz
Si eso es lo que había pensado, si tienes algo por ahi para ir indicandome me harías un gran favor.
Un Saludo.
Re: Acentuar automaticamente
Posted:
Tue May 12, 2009 5:42 pm
by Armando
softruz:
Ahí te va, es un código que tambien me compartieron, no recuerdo el nombre de quien me lo envió y pido disculpas por eso.
Tengo definido un Botón cuya acción es ir a la función SpellCheck() y le envío como parámetro la variable que contiene el texto que deseo revisar (oPro:DES), como puedes apreciar la función SpellCheck me devuelve el mismo texto pero ya corregido y lo recibo en la misma variable.
- Code: Select all Expand view
REDEFINE BUTTON oOrtografia ID 903 OF oDlg CANCEL;
ACTION (oPro:DES := SpellCheck(oPro:DES),oDlg:Update());
MESSAGE "Revisa la ortografía de la descripción del proyecto"
Y esta es la función SpellCheck
- Code: Select all Expand view
/*
* --------------------------------------------------------------------------*
* --------------------------------------------------------------------------*
*/
STATIC FUNCTION SpellCheck(Texto)
LOCAL oWord,oDoc,oTexto
LOCAL cText:=Texto
oWord:=TOleAuto():New( "Word.Application" )
oWord:Visible := .F.
oWord:Documents:Add()
oDoc := oWord:Get("ActiveDocument")
oTexto := oWord:Selection()
oTexto:Text := Texto
oDoc:CheckSpelling()
cText := oTexto:Text
oDoc:Close(0)
oWord:Quit()
oTexto:=NIL
oDoc:=NIL
oWord:=NIL
IF ! EMPTY(cText) // si cancelamos en el chequeo de ortografia, nos devuelve una cadena vacia
Texto := cText
ENDIF
RETURN(Texto)
Espero te sirva o al menos te de la idea de como salir del paso.
Saludos
Re: Acentuar automaticamente
Posted:
Tue May 12, 2009 5:53 pm
by softruz
Muchas gracias lo pruebo y te comento.
Re: Acentuar automaticamente
Posted:
Wed May 13, 2009 12:59 am
by Willi Quintana
Hola,
se me ocurre una funcion que maneje las reglas de ortografia,,, a ver,,,
x regla,, se acentuan las palabras que termian en "ion"
xpos := AT("on", cpalabra)
If xpos > 0
cpalabra := STRTRAN(cpalabra , "on","ón")
endif
..
.
es una idea
Salu2
Re: Acentuar automaticamente
Posted:
Wed May 13, 2009 8:29 am
by softruz
Me podrían decir ¿como puedo conseguir que automaticamente coja la primera coincidencia y la suplante por la palabra mal escrita? y así tener una corrección automatica.
Un Saludo.
Re: Acentuar automaticamente
Posted:
Wed May 13, 2009 9:11 pm
by wmormar
softruz wrote:Me podrían decir ¿como puedo conseguir que automaticamente coja la primera coincidencia y la suplante por la palabra mal escrita? y así tener una corrección automatica.
Un Saludo.
podrían utilizar algo así (es al vuelo):
- Code: Select all Expand view
function corrige( cTexto )
strtran( cTexto, "ion ", "ión " )
return cNuevo
Claro está que hay que ir aplicando las reglas adicionales, se complicarán en algunas, pero es un avance...
espero sea de ayuda.
Re: Acentuar automaticamente
Posted:
Thu May 14, 2009 7:17 am
by softruz
Es un buen avance pero lo que me interesa es que cuando entra en la corrección automática coja la primera coincidencia por defecto y que no me pregunte nada, ¿hay algo parecido?
Un Saludo.