Page 1 of 1

hay forma de arreglar upper("descripción" ) == &qu

Posted: Wed Feb 21, 2007 2:32 pm
by goosfancito
Estimados,

Code: Select all

local cTexto:= "descripción"   // fijarse que es la o acentuada

if upper( cTexto ) = "DESCRIPCIÓN" // o acentuada pero en mayusculas
   ? "paso sin problemas"
else
   ? "no paso"
endif
Este fragmento de codigo jamas es verdadero ya que al hacer upper de una palabra con vocal acentuada da error o sea al convertir "ó" sigue siendo "ó" y no "Ó"

Hay manera de solucionarlo a nivel codigo y no app?

Gracias

Re: hay forma de arreglar upper("descripción" ) ==

Posted: Wed Feb 21, 2007 4:02 pm
by ACC69
goosfancito wrote:Estimados,

Code: Select all

local cTexto:= "descripción"   // fijarse que es la o acentuada

if upper( cTexto ) = "DESCRIPCIÓN" // o acentuada pero en mayusculas
   ? "paso sin problemas"
else
   ? "no paso"
endif
Este fragmento de codigo jamas es verdadero ya que al hacer upper de una palabra con vocal acentuada da error o sea al convertir "ó" sigue siendo "ó" y no "Ó"

Hay manera de solucionarlo a nivel codigo y no app?

Gracias
Hola amigo, tendrias que crear una pequeña rutina, con todas las palabras que llevan acento en mayusculas, declarando la variable local, etc etc etc seria algo asi :

LOCAL EXCEPCION:={'Ó'}

cNomb1 := "descripción"

MSGINFO(UPPER(cNomb1))

FOR I = 1 TO LEN(cNomb1)
IF SUBSTR(RFCf,I,1) = "ó"
cCaracter := "Ó"
ENDIF
NEXT

bla bla bla, no esta completo la rutina, pero ahi te doy mas o menos la idea amigo, espero que te sirva la idea

IF UPPER(cNomb1) = ALLTRIM("DESCRIPCIÓN")
MsgInfo("Ok")
ELSE
MsgInfo("No paso 1")
ENDIF

Saludos
Adriano C. C.

Re: hay forma de arreglar upper("descripción" ) ==

Posted: Wed Feb 21, 2007 4:22 pm
by Maurilio Viana
AnsiUpper( ) funciona bien con caracteres acentuados (pero com xHarbour.com me da un error de GPF)

Salu2 de Brasil
Maurilio

Posted: Mon Feb 26, 2007 8:05 pm
by manuramos
Goos, yo utilizo este comando de preprocesador de mi cocehca y me va bien:

#TRANSLATE TRANSNOM( <cVar> ) => UPPER( STRTRAN( STRTRAN( STRTRAN( ;
STRTRAN( STRTRAN( STRTRAN( STRTRAN( ;
STRTRAN( STRTRAN( STRTRAN( STRTRAN( ;
ALLTRIM( <cVar> ),"Ú","U"), ;
"Ó","O"), ;
"Í","I"), ;
"É","E"), ;
"Á","A"), ;
"ú","U"), ;
"ó","O"), ;
"í","I"), ;
"é","E"), ;
"á","A"), ;
"-"," ") )

(copia y pega, no te compliques la vida)

Por ejemplo:ç

IF TRANSNOM( cNom1 ) == "DESCIRPCION" ....

Espero que te sirva