OVH Cloud OVH Cloud

Probl

12 réponses
Avatar
Fournier Raymond
Bonjour a tous,
J'utilise ce tri a bulle pour mettre en ordre alphabétique un tableau.


For i = ElementDepart To ElementFin
For j = ElementDepart To ElementFin - 1
If (Tableau(j) > Tableau(j + 1) And Sens) Or
(Tableau(j) < Tableau(j + 1) And Not Sens) Then
Ligne_Tampon = Tableau(j)
Tableau(j) = Tableau(j + 1)
Tableau(j + 1) = Ligne_Tampon
End If
Next j
Next i

Mon problème est que le nom a un " É " il le place à la fin.
Concombre vient avant céleri.

Quelqu’un a t-il une solution pour que céleri soit avant concombre.
Merci. Raymond Fournier

10 réponses

1 2
Avatar
Fred
Dans : news:,
Fournier Raymond disait :
Bonjour a tous,



Bonjour,

J'utilise ce tri a bulle pour mettre en ordre alphabétique un tableau.



[...]

Mon problème est que le nom a un " É " il le place à la fin.
Concombre vient avant céleri.

Quelqu’un a t-il une solution pour que céleri soit avant concombre.



Essaie avec cette api. Je crois qu'elle prend en compte les options
régionales et linguistiques pour la comparaison.
http://www.allapi.net/apilist/lstrcmpi.shtml

(elle ne tient pas compte de la casse mais elle a son équivalent
«case-sensitive» : http://www.allapi.net/apilist/lstrcmp.shtml)

--
Fred
http://www.cerbermail.com/?3kA6ftaCvT
Avatar
Aski
Hello Fournier Raymond,

Tu as savamment écrit :

Bonjour a tous,
J'utilise ce tri a bulle pour mettre en ordre alphabétique un tableau.


For i = ElementDepart To ElementFin
For j = ElementDepart To ElementFin - 1
If (Tableau(j) > Tableau(j + 1) And Sens) Or
(Tableau(j) < Tableau(j + 1) And Not Sens) Then
Ligne_Tampon = Tableau(j)
Tableau(j) = Tableau(j + 1)
Tableau(j + 1) = Ligne_Tampon
End If
Next j
Next i

Mon problème est que le nom a un " É " il le place à la fin.
Concombre vient avant céleri.

Quelqu'un a t-il une solution pour que céleri soit avant concombre.
Merci. Raymond Fournier



Essaie avec Option Compare Text

Aski
Avatar
Fournier Raymond
> Hello Fournier Raymond,

Tu as savamment écrit :

Bonjour a tous,
J'utilise ce tri a bulle pour mettre en ordre alphabétique un tableau.


For i = ElementDepart To ElementFin
For j = ElementDepart To ElementFin - 1
If (Tableau(j) > Tableau(j + 1) And Sens) Or
(Tableau(j) < Tableau(j + 1) And Not Sens) Then
Ligne_Tampon = Tableau(j)
Tableau(j) = Tableau(j + 1)
Tableau(j + 1) = Ligne_Tampon
End If
Next j
Next i

Mon problème est que le nom a un " É " il le place à la fin.
Concombre vient avant céleri.

Quelqu'un a t-il une solution pour que céleri soit avant concombre.
Merci. Raymond Fournier



Essaie avec Option Compare Text

Aski



Merci pour vos réponses. Je vais utilisé "Option Compare Text" .
Avatar
Aski
Hello Fournier Raymond,

Tu as savamment écrit :

Essaie avec Option Compare Text

Aski



Merci pour vos réponses. Je vais utilisé "Option Compare Text" .



Dans ces conditions, comment se placent l'un par rapport à l'autre
e, E, é, É, è, È, ê, Ê
et est-ce systématique ?

Aski
Avatar
Jean-Marc
"Aski" a écrit dans le message de
news:
Hello Fournier Raymond,

Tu as savamment écrit :

>> Essaie avec Option Compare Text
>>
>> Aski
>
> Merci pour vos réponses. Je vais utilisé "Option Compare Text" .

Dans ces conditions, comment se placent l'un par rapport à l'autre
e, E, é, É, è, È, ê, Ê
et est-ce systématique ?



Hello,

La réponse se trouve partiellement dans l'aide en ligne de
Option Compare Text.
Voici l'ordre obtenu pour tous les cas:
A a Á á À à Â â Ä ä Ã ã Å å B b C c D d ð E e É é È è Ê ê Ë ë F f G g H
h I i Í í Ì ì Î î Ï ï J j K k L l M m N n Ñ ñ O o Ó ó Ò ò Ô ô Ö ö Õ õ P
p Q q R r S s T t U u Ú ú Ù ù Û û Ü ü V v W w X x Y y Ý ý ÿ Z z A a Á á
À à Â â Ä ä Ã ã Å å B b C c D d ð E e É é È è Ê ê Ë ë F f G g H h I i Í
í Ì ì Î î Ï ï J j K k L l M m N n Ñ ñ O o Ó ó Ò ò Ô ô Ö ö Õ õ P p Q q R
r S s T t U u Ú ú Ù ù Û û Ü ü V v W w X x Y y Ý ý ÿ Z z

Note: je n'ai pas fait ça à la main, je suis pas fou :-)

--
Jean-marc
Tester mon serveur (VB6) => http://myjmnhome.dyndns.org
"There are only 10 kind of people
those who understand binary and those who don't."
mailto: remove '_no_spam_' ;
Avatar
Aski
Hello Jean-Marc,

Tu as savamment écrit :

La réponse se trouve partiellement dans l'aide en ligne de
Option Compare Text.



J'ai eu le flemme de regarder. ;-)

Voici l'ordre obtenu pour tous les cas:
A a Á á À à Â â Ä ä Ã ã Å å B b C c D d ð E e É é È è Ê ê Ë ë F f G g
H h I i Í í Ì ì Î î Ï ï J j K k L l M m N n Ñ ñ O o Ó ó Ò ò Ô ô Ö ö Õ
õ P p Q q R r S s T t U u Ú ú Ù ù Û û Ü ü V v W w X x Y y Ý ý ÿ Z z A
a Á á À à Â â Ä ä Ã ã Å å B b C c D d ð E e É é È è Ê ê Ë ë F f G g H
h I i Í í Ì ì Î î Ï ï J j K k L l M m N n Ñ ñ O o Ó ó Ò ò Ô ô Ö ö Õ õ
P p Q q R r S s T t U u Ú ú Ù ù Û û Ü ü V v W w X x Y y Ý ý ÿ Z z

Note: je n'ai pas fait ça à la main, je suis pas fou :-)



Merci. C'est assez logique.
Sais-tu quel est l'algorithme qui arrive à cette logique ?

Aski
Avatar
Jean-marc
Salut Aski,
je ne pense pas qu'il y ait un algorithme purement mécanique, basé
sur les codes ASCII.
En effet, si ion regarder le début, on voit la séquence:

Á(193)=á(225)<À(192)=à(224)<Â(194)=â(226)<Ä(196)=ä( 228)<Ã(195)=ã(227)<Å(197)
si on extrait les minuscules:
Á(193) <À(192) <Â(194) <Ä(196) <Ã(195) <Å(197)

donc: 193 - 192 - 194 - 196 - 195 - 197
On voit bien qu'il n'y a pas un ordre basé sur le code ASCII.

Je ne sais pas comment VB implémente cela. Si moi je devais le faire,
je construirais une table qui a chaque code ascii étendu (0-255)
ferait correspondre une position lexicographique et je trierais
selon cette table, comme ça:

if lexico(lettre)>lexico(lettre+1) then
permut
endif
avec lexico() ma table des ordres lexicographiques. Ce serait rapide
(accès direct= O(1)) et peu
couteux en RAM (256 octets).

PS: je suis le seul à avoir des problèmes avec mon serveur de news?

--
Jean-marc
Avatar
Jean-marc
J'ai trouvé le lien "officiel" sur le sujet, pour ceux qui veulent
aller plus loin:
http://www-clips.imag.fr/geta/gilles.serasset/tri-du-francais.html

Bon tri :-)

--
Jean-marc
Avatar
Aski
Hello Jean-marc,

Tu as savamment écrit :

J'ai trouvé le lien "officiel" sur le sujet, pour ceux qui veulent
aller plus loin:
http://www-clips.imag.fr/geta/gilles.serasset/tri-du-francais.html

Bon tri :-)



Merci pour ta recherche. On se sent tout d'un coup moins ignare.
Pour les grands bretons c'est quand même plus facile.

Aski
Avatar
Jean-marc
> Hello Jean-marc,

Tu as savamment écrit :

> J'ai trouvé le lien "officiel" sur le sujet, pour ceux qui veulent
> aller plus loin:
> http://www-clips.imag.fr/geta/gilles.serasset/tri-du-francais.html
>
> Bon tri :-)

Merci pour ta recherche. On se sent tout d'un coup moins ignare.
Pour les grands bretons c'est quand même plus facile.




C'est clair, pas de signes diacritiques, pas de signes auxilliaires,
pas de voyelles fusionnées, etc! Ils peuvent tout coder enASCII-7, les
veinards :-)

--
Jean-marc
1 2