https://foro.gambas-es.org/viewtopic.php?f=1&t=7123 ----------------------------------- shordi Lunes, 27 Agosto 2018, 17:19 Problemas Con Las Ordenaciones. ----------------------------------- Buenas, Estoy haciendo un control, que luego subiré, que realiza ordenaciones en un array. El problema es que no parece saber manejar bien los caracteres con acentos ni los espacios en blanco dentro de las cadenas. Como el tema es tan básico, presupongo que no sé lo que estoy haciendo y algo hago mal. Adjunto un proyecto que ilustra lo que hago. [img]https://foro.gambas-es.org/files/images/38/captura_de_pantalla_de_2018_08_27_18_01_40.png[/img] ¿Alguien tiene alguna idea de qué pasa? Saludos ----------------------------------- vuott Lunes, 27 Agosto 2018, 20:08 Re: Problemas Con Las Ordenaciones. ----------------------------------- Tengo la sensación de que, siguiendo la lógica de ASCII y de los valores constituyentes los carácteres tipo UTF-8 localizados, es mejor usar el [url=https://es.wikipedia.org/wiki/Operador]operador [url=http://gambaswiki.org/wiki/lang/and]And, en vez que + en tu Método [i]ar.Sort( )[/i]. :neutral: ----------------------------------- jguardon Martes, 28 Agosto 2018, 11:42 Re: Problemas Con Las Ordenaciones. ----------------------------------- [quote user="vuott" post="42978"]Tengo la sensación de que, siguiendo la lógica de ASCII y de los valores constituyentes los carácteres tipo UTF-8 localizados, es mejor usar el [url=https://es.wikipedia.org/wiki/Operador]operador [url=http://gambaswiki.org/wiki/lang/and]And, en vez que + en tu Método [i]ar.Sort( )[/i]. :neutral:[/quote] Creo que no en este caso. El argumento de la función Sort() requiere un número entero, por eso las constantes gb. se pueden traducir como números enteros y se pueden sumar como tales. Supongo que shordi habrá usado las funciones especiales string. donde sea necesario para manejar UTF8, en cuyo caso no veo por dónde puede venir el fallo... Saludos ----------------------------------- shordi Martes, 28 Agosto 2018, 13:53 Re: Problemas Con Las Ordenaciones. ----------------------------------- Efectivamente, al código que aparece en la foto le he añadido, como ilustración lo siguiente: [code linenumbers=false syntax=gambas] Dim ar As String[] Dim n As Integer ar = Split(TextArea2.text, gb.newline) For n = 0 To ar.Max ar[n] = String.LCase(ar[n]) Next ar.Sort(gb.Language + gb.IgnoreCase) TextArea3.text = ar.Join(gb.NewLine)[/code] y sigue lo mismo. :sad: ¿Alguien lo ha probado en sus maquinas-distros-idiomas? ----------------------------------- tincho Martes, 28 Agosto 2018, 23:11 Re: Problemas Con Las Ordenaciones. ----------------------------------- [quote user="shordi" post="42981"]¿Alguien lo ha probado en sus maquinas-distros-idiomas?[/quote] Si, lo he probado y sale como n tu caso. Estoy intentando hacer una función que haga la tarea, en cuanto tenga algo comento. Saludos. ----------------------------------- tincho Miercoles, 29 Agosto 2018, 00:28 Re: Problemas Con Las Ordenaciones. ----------------------------------- Casi lo tengo. [img]https://foro.gambas-es.org/files/images/2590/pantallazo_2018_08_29_01_27_23.png[/img] Saludos. ----------------------------------- tincho Miercoles, 29 Agosto 2018, 01:30 Re: Problemas Con Las Ordenaciones. ----------------------------------- Ya esta. [img]https://foro.gambas-es.org/files/images/2590/pantallazo_2018_08_29_02_24_05.png[/img] Le agregue un TextArea para ver el texto convertido en Hex de 3 digitos, ya que previamente cada cadena es pasada a ascii. Hay una discrepancia en las palabras Aliquam y aliquam que es ordenado distinto que en el TextArea1, pero supongo que funciona. Saludos. ----------------------------------- shordi Jueves, 30 Agosto 2018, 11:14 Re: Problemas Con Las Ordenaciones. ----------------------------------- Buena respuesta Tincho. Yo ya tenía hecha mi propia solución, que resulta ser algo más rápida que la tuya pero que no me gustaba porque era necesario, como en la tuya, proveer los caracteres especiales en el código, y eso ata la solución al lenguaje español que es suficiente para mí, pero no es lo ideal. Por otra parte en la lista internacional, Charlie Ogier ha aportado otra solución (a la que también es necesario pasarle los caracteres especiales) que se ha demostrado más rápida que la tuya o que la mía. [img]https://foro.gambas-es.org/files/images/38/testordenaciones.png[/img] He unido las tres soluciones en un pequeño proyecto donde se ordena una lista de 10.000 elementos y se puede comparar cómo tres mentes distintas trabajan para solucionar el mismo problema. Siempre es interesante. [img]https://foro.gambas-es.org/files/images/38/testing.png[/img] ----------------------------------- tincho Jueves, 30 Agosto 2018, 14:06 Re: Problemas Con Las Ordenaciones. ----------------------------------- [quote user="shordi" post="42985"]...He unido las tres soluciones en un pequeño proyecto donde se ordena una lista de 10.000 elementos y se puede comparar cómo tres mentes distintas trabajan para solucionar el mismo problema. Siempre es interesante...[/quote] Claro siempre es enriquecedor ver el código que hizo otro y lo es mucho mas cuando es el mismo problema. Me divertí un rato con ese código :mryellow: Me descargue el ejemplo para echar un vistazo. Saludos.