cs_JMO
Messages postés1854Date d'inscriptionjeudi 23 mai 2002StatutMembreDernière intervention24 juin 2018
-
18 mars 2006 à 21:35
cs_JMO
Messages postés1854Date d'inscriptionjeudi 23 mai 2002StatutMembreDernière intervention24 juin 2018
-
19 mars 2006 à 09:43
Bonjour
Problème de tri dans un tableau.
J'ai un tableau sur 3 colonnes et 16 lignes
EXPLOIT.EDITCAE ,
198,
62 %,
----
----
</TD>
EXPLOIT.EDITCAE-ANN ,
351,
70 %,
----
----
</TD>
EXPLOIT.EDITION ,
8,
19 %
J'aimerais recrée un autre tableau mais trié (décroissant) sur la 3ème colonne
pour avoir comme résultat
EXPLOIT.EDITCAE-ANN ,
351,
70 %
EXPLOIT.EDITCAE ,
198,
62 %
EXPLOIT.EDITION ,
8,
19 %
Si quelqu'un peut m'orienter car à force de tester , je me suis completement égaré dans cet algotithme (tri à bulles)
cs_JMO
Messages postés1854Date d'inscriptionjeudi 23 mai 2002StatutMembreDernière intervention24 juin 201827 18 mars 2006 à 22:50
Bonsoir,
Autant pour moi, si je précise pas le language...
Des suggestions en VB6 me suffisent, je les traduirai en VBS.
A l'origine, je pars d'un fichier txt pour afficher le résultat dans un html
cs_JMO
Messages postés1854Date d'inscriptionjeudi 23 mai 2002StatutMembreDernière intervention24 juin 201827 19 mars 2006 à 09:43
Bonjour à tous....
J'essaie un tri à bulles.
Si le contenu de var(t) est > 10 et =< 99 c'est ok
mais si var(t) < à 10 ou > à 100, ça ne marche plus !!!
Pour les tests, j'ai prérenseigné toutes mes variables.
'
Dim ligne(16) 'taux(16), tail(16), fich(16)
bpermute = True 'Il faut au moins parcourir une fois
Do While bpermute = True 'On tourne tant que l'on bouge des valeurs
bpermute = False 'Si on est ici c qu'il faut réinitialiser bpermute
For t = 1 To imax - 1 'On tourne autant de fois qu'il y a de fiches
'(-1 vu qu'on compare 2 valeurs)
'iPos = InStr(1, ligne(t), "!")
'MsgBox Left(ligne(t), iPos - 1)
If ligne(t) < ligne(t + 1) Then 'Si on a trouvé deux valeurs mal rangées
'(autrement dit une valeur qui se
'trouve plus bas dans le tableau mais qui
'est plus levée...
cprovisoire = ligne(t) 'On inverse les deux chaines
ligne(t) = ligne(t + 1) 'bis
ligne(t + 1) = cprovisoire 'bis
bpermute = True
End If
Next
Loop
'Affichage du résultat classé
For i = 1 To imax
liste = liste & ligne(i) &vbCrLf
If i = imax Then MsgBox liste
Next