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

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

Postby goosfancito » Wed Feb 21, 2007 2:32 pm

Estimados,

Code: Select all  Expand view  RUN
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
FWH 21.02
Harbour 3.2.0dev (r2104281802)
Copyright (c) 1999-2021, https://harbour.github.io/
User avatar
goosfancito
 
Posts: 1954
Joined: Fri Oct 07, 2005 7:08 pm

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

Postby ACC69 » Wed Feb 21, 2007 4:02 pm

goosfancito wrote:Estimados,

Code: Select all  Expand view  RUN
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.
ACC69
 
Posts: 632
Joined: Tue Dec 12, 2006 7:34 pm

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

Postby Maurilio Viana » Wed Feb 21, 2007 4:22 pm

AnsiUpper( ) funciona bien con caracteres acentuados (pero com xHarbour.com me da un error de GPF)

Salu2 de Brasil
Maurilio
User avatar
Maurilio Viana
 
Posts: 252
Joined: Tue Oct 25, 2005 2:48 pm
Location: Garça/Garza/Heron City - Brazil

Postby manuramos » Mon Feb 26, 2007 8:05 pm

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
Nos Gusta Programar
manuramos
 
Posts: 219
Joined: Mon Dec 26, 2005 7:25 pm
Location: Jerez de la Frontera (Spain)


Return to FiveWin para Harbour/xHarbour

Who is online

Users browsing this forum: Google [Bot] and 42 guests