Problema Al Ordenar Palabras Con Acentos


Objetivo: Problema Al Ordenar Palabras Con Acentos
Cuando ordeno los datos de una tabla que tiene palabras acentuadas el orden no es correcto. Supongo que tiene algo que ver con la codificación de caracteres, pero no consigo arreglarlo

Perfil MP  
Objetivo: Re: Problema Al Ordenar Palabras Con Acentos
Puedes hacer un pequeño truco....
0) La "tabla inicial" es la que contiene los datos iniciales (palabras acentuadas).
1) Copia en otra tabla (la llamaremos "tabla_ordenada" los datos que quieres ordenar
2) Le añades una columna con el "orden_inicial", osea la 1 fila , en la columna "orden_inicial", le pones 1, en la 2 fila en el "orden_inicial" le pones 2, y asi sucesivamente...
3) Sustituye en la "tabla_ordenada", todos los acentos por vocales sin acentuar:
Simplificando el código, seria así para la "ó"
Citar:

cadena2=Replace$(cadena,"ó","o")

4) Le aplicas el algoritmo de ordenación, a la columna que desees (menos a la de "orden_inicial").
5) La columna "orden_inicial", ahora contiene el orden "nuevo"
6) Reescribes la "tabla inicial", siguiendo el orden "nuevo" de la columna "orden_inicial" de la "tabla_ordenada"

Si quieres ver un ejemplo, visita de mi blog:
http://jsbsan.wordpress.com/2009/05/23/listas-de-ordenacion/

Viene un ejemplo, de la columna "orden_inicial" (yo le llamo en el blog "lista de ordenación")

Espero haberte ayudado.

Saludos

Nota:
Cada vez que añades un nuevo dato, lo modifiques o lo borres, tienes que volver a generar la lista de ordenación, para que tenga en cuenta la nueva "Tabla"

última edición por jsbsan el Jueves, 09 Diciembre 2010, 10:42; editado 2 veces
Objetivo: Re: Problema Al Ordenar Palabras Con Acentos
Gracias por la respuesta. Es lo que tenía pensado, pero buscaba una solución con la codificación de caracteres. Los datos los toma la tabla de un array y los ordena con el método burbuja. Lo que haré es quitar los acentos en cada componente del array antes de compararlos para la ordenación. Supongo que es un método más lento, pero evito hacer la otra tabla. De todas formas me queda la duda de qué pasará con la ñ. No se me ocurre con qué sustituirla

última edición por pacomuz el Jueves, 09 Diciembre 2010, 10:58; editado 2 veces
Perfil MP  
Objetivo: Re: Problema Al Ordenar Palabras Con Acentos
Pacomuz:

Citar:
los ordena con el método burbuja


Si son pocos datos vale, pero si son muchos mírate mejor el quicksort... es muchísimo más rápido (lo he probado los dos métodos, con 500 filas, con el método burbuja la aplicación se quedaba en gris un buen rato, sin embargo con el quicksort tardaba menos de 1 segundo).

Aquí tienes el código del quicksort:

http://jsbsan.wordpress.com/2009/03...ws-y-gridviews/

Saludos.

Nota:
Es impresionante como cambiando el algoritmo de ordenación puede variar tanto la velocidad....
Si eres curioso para ver la diferencia de estos métodos de ordenación de una manera "gráfica" en esta entrada:
http://jsbsan.wordpress.com/2010/08...-de-ordenacion/

Objetivo: Re: Problema Al Ordenar Palabras Con Acentos
Todo eso está muy bien, pero el problema es de la codificación de caracteres de tu sistema, me temo. Comprueba que tienes bien instalado el asunto de los idiomas y las páginas de códigos etc...

Perfil MP  
Objetivo: Re: Problema Al Ordenar Palabras Con Acentos
Citar:
Todo eso está muy bien, pero el problema es de la codificación de caracteres de tu sistema, me temo. Comprueba que tienes bien instalado el asunto de los idiomas y las páginas de códigos etc...


Ya supongo que el problema va por ahí. He mirado la configuración de idioma y de texto del sistema y está en Español - España. No sé si habría que mirar en otro sitio.
pantallazo_idioma_y_texto

Perfil MP  
Objetivo: Re: Problema Al Ordenar Palabras Con Acentos
Si eso lo tienes bien, el problema te vendrá de que no hay coordinación entre la codificación de caracteres de tu base de datos UTF-8 y las funciones que usas para ordenar y demás, que sólo funcionan con ASCII.
Utiliza la clase estática string para asegurarte que tus cadenas son UTF-8 y todo solucionado, supongo...

Suerte

Perfil MP  

Página 1 de 1


  
No puede crear mensajes
No puede responder temas
No puede editar sus mensajes
No puede borrar sus mensajes
No puede votar en encuestas
No puede adjuntar archivos
Puede descargar archivos
No puede publicar eventos en el calendario

   

Está utilizando la versión (Lo-Fi). Para ver la versión completa del foro, haga clic aquí.

Powered by Icy Phoenix based on phpBB
Design by DiDiDaDo

Página generada en:: 0.0987s (PHP: -30% SQL: 130%)
Consultas SQL: 25 - Debug off - GZIP Activado