Page 1 of 1
Problemas de ordenacion
Posted: Thu Dec 29, 2005 2:11 pm
by manuramos
Tengo una última duda:
¿Como consigo indexar mis ficheros para que las vocales acentuadas se coloquen en su sitio?
Por ejemplo: Perales, Pérez, Porras
y no: Perales,Porras, Pérez
Me falla tanto con DBF/NTX como con DBF/CDX
Posted: Sat Dec 31, 2005 1:22 pm
by rbecares
Una idea que se me ocurre viendo tu pregunta ( yo no lo haría pero tal vez te sirve como punta para llegar a lo que necesitas ) sería hacer una clave de indice que suponiendo que el campo "nombre" es el queres indexar:
TRADUCE(NOMBRE)
donde la funcion TRADUCE es algo así:
FUNCTION TRADUCE( cString )
LOCAL cRetorno
cRetorno := cString
cRetorno := STRTRAN( cRetorno, "á", "a" )
cRetorno := STRTRAN( cRetorno, "é", "e" )
cRetorno := STRTRAN( cRetorno, "í", "i" )
cRetorno := STRTRAN( cRetorno, "ó", "o" )
cRetorno := STRTRAN( cRetorno, "ú", "u" )
RETURN( cRetorno )
Claro que esto no es ni optimo ni mucho menos para poner como clave de indice por el tiempo de proceso permanente ni es muy practico para todos tus indices.
Saludos.
Ricardo.-
Posted: Wed Jan 04, 2006 8:46 pm
by manuramos
Gracias por la idea, pero eso ya lo había pensado.
Pensé que existiría otrra solución más práctica.
ALguna función en C que se pueda utilizar con los índices, o algún OBJ que se pueda compilar con FW, o algo así..
Gracias por de todas formas y fecliz año nuevo
Posted: Thu Jan 05, 2006 12:51 am
by R.F.
NEEEGATIVO señores, no es necesario hacer funciones ni nada.
Clipper 5.2 trae unos ficheros obj que tienen que incluir al momento de compilar para que la ordenacion se realice correctametne respetando Ñ y acentos.
Por ejemplo, si quieres que los mensajes del compilador no te aparezcan en ingles sino en español, tienes que linkear:
MSGSPA.OBJ
En el caso de los indices si son NTX, tienes que linkear:
NTXSPA.OBJ
Estosarchivos estan en la carpeta OBJ debajo de la carpeta \CLIPPERxx
Posted: Thu Jan 05, 2006 1:13 pm
by Rafael Clemente
René:
¿Sabes cómo se consigue lo mismo (ordenar sin tener en cuenta acentos) desde FWH y Harbour?
Gracias,
Rafael
Posted: Thu Jan 05, 2006 4:14 pm
by Antonio Linares
Rafael,
REQUEST HB_LANG_ESWIN
HB_LANGSELECT("ESWIN")
Posted: Thu Jan 05, 2006 4:41 pm
by Rafael Clemente
Antonio:
Parece que no. INDEX ON FIELD->APELLIDOS..... me da:
....
CLAVE
CLAVERO
CLAVÉ
....
¿Seguro que no hay que cambiar algo más?
Rafael
Posted: Thu Jan 05, 2006 7:51 pm
by Antonio Linares
Rafael,
Añade HB_SETCODEPAGE( "ESWIN" )
Posted: Thu Jan 05, 2006 8:24 pm
by R.F.
Yo lo hago asi:
Code: Select all
REQUEST HB_Lang_ES // Para establecer idioma de Mensajes, fechas, etc..
REQUEST HB_CODEPAGE_ESWIN // Para establecer código de página a Español (Ordenación, etc..)
// Idioma por defecto: Español...
HB_LangSelect("ES") // Para mensajes, fechas, etc..
HB_SetCodePage("ESWIN") // Para ordenación (arrays, cadenas, etc..) *Requiere CodePage.lib
Posted: Fri Jan 06, 2006 1:34 pm
by Rafael Clemente
Antonio, René: Gracias!
Yo tenía un error de concepto: Creí que las vocales acentuadas se trataban como idénticas a las no acentuadas y ahora veo que no es así: El "orden" -por si a alguien le interesa- es: a,á,e,é,i,í,o,ó,u,ú,à,è,ì,ò,ù
Curiosamente, la ñ va en su posición "normal", entre la n y la o; en cambio, la ç (cedilla) cae detrás de la z
Siempre se aprende algo...
Rafael
Posted: Fri Jan 06, 2006 6:22 pm
by manuramos
Todo eso está muy bien, y agradezco mucho la preocupaciónb por el tema. Pero hay otra pega... Yo tengo fw 2.3 con clipper 5.3 y utilizo dbf/cdx. Por lo tanto, ni tengo el NTXSPA.OBJ del amigo René, ni por supuesto algún posible CDXSPA.OBJ. Ni puedo emplear los seteos HB_... de Harbour.
Muchas gracias de todas maneras
Posted: Sun Jan 08, 2006 6:07 am
by R.F.
Se tuiliza el NTXSPA.OBJ, este fichero tiene el "collation sequence" para todos los RDDS, en realidad las rutinas afectan las funciones que generan los indices antes de que estos se escriban con el RDD correspondiente, asi que este fichero funciona con todos los RDDs
Posted: Wed Jan 11, 2006 8:41 pm
by Manuel Valdenebro
RF wrote:NTXSPA.OBJ, funciona con todos los RDDs
Perdona René, pero yo lo he enlazado en mi programa (cdx) y no me funciona. Clipper 5.3b
Un saludo
Posted: Thu Jan 12, 2006 3:52 pm
by manuramos
a MI TAMPOCO ME FUNCIONA...