Acentuar automaticamente

Acentuar automaticamente

Postby softruz » Tue May 12, 2009 4:15 pm

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.
softruz
 
Posts: 485
Joined: Fri Feb 09, 2007 10:34 am

Re: Acentuar automaticamente

Postby Armando » Tue May 12, 2009 4:40 pm

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
SOI, s.a. de c.v.
estbucarm@gmail.com
http://www.soisa.mex.tl/
http://sqlcmd.blogspot.com/
Tel. (722) 174 44 45
Carpe diem quam minimum credula postero
User avatar
Armando
 
Posts: 3076
Joined: Fri Oct 07, 2005 8:20 pm
Location: Toluca, México

Re: Acentuar automaticamente

Postby softruz » Tue May 12, 2009 5:09 pm

Si eso es lo que había pensado, si tienes algo por ahi para ir indicandome me harías un gran favor.

Un Saludo.
softruz
 
Posts: 485
Joined: Fri Feb 09, 2007 10:34 am

Re: Acentuar automaticamente

Postby Armando » Tue May 12, 2009 5:42 pm

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
SOI, s.a. de c.v.
estbucarm@gmail.com
http://www.soisa.mex.tl/
http://sqlcmd.blogspot.com/
Tel. (722) 174 44 45
Carpe diem quam minimum credula postero
User avatar
Armando
 
Posts: 3076
Joined: Fri Oct 07, 2005 8:20 pm
Location: Toluca, México

Re: Acentuar automaticamente

Postby softruz » Tue May 12, 2009 5:53 pm

Muchas gracias lo pruebo y te comento.
softruz
 
Posts: 485
Joined: Fri Feb 09, 2007 10:34 am

Re: Acentuar automaticamente

Postby Willi Quintana » Wed May 13, 2009 12:59 am

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
User avatar
Willi Quintana
 
Posts: 1002
Joined: Sun Oct 09, 2005 10:41 pm
Location: Cusco - Perú

Re: Acentuar automaticamente

Postby softruz » Wed May 13, 2009 8:29 am

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.
softruz
 
Posts: 485
Joined: Fri Feb 09, 2007 10:34 am

Re: Acentuar automaticamente

Postby wmormar » Wed May 13, 2009 9:11 pm

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.
William, Morales
Saludos

méxico.sureste
User avatar
wmormar
 
Posts: 1074
Joined: Fri Oct 07, 2005 10:41 pm
Location: México

Re: Acentuar automaticamente

Postby softruz » Thu May 14, 2009 7:17 am

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.
softruz
 
Posts: 485
Joined: Fri Feb 09, 2007 10:34 am


Return to FiveWin para Harbour/xHarbour

Who is online

Users browsing this forum: No registered users and 30 guests

cron