Herve_be
Messages postés1015Date d'inscriptionmercredi 4 août 2010StatutMembreDernière intervention10 mars 2024
-
4 févr. 2017 à 18:32
Whismeril
Messages postés19020Date d'inscriptionmardi 11 mars 2003StatutContributeurDernière intervention15 avril 2024
-
5 févr. 2017 à 11:02
Bonjour,
Je trie les éléments d'une list box "List" selon une zone qui commence en position "Offset" et d'une longueur "Length"
Do Moved = False For i = 0 To List.ListCount - 2 CurrItem = Mid$(List.List(i), Offset, Length) NextItem = Mid$(List.List(i + 1), Offset, Length) If CurrItem < NextItem Then Moved = True Temp = List.List(i) List.List(i) = List.List(i + 1) List.List(i + 1) = Temp End If Next i Loop Until Moved = False
Ceci fonctionne très bien sauf que le tri est très lent.
Pensez-vous que le fait de copier la list box dans un tableau, trier le tableau puis recopier dans la list box accélérerait le traitement ?
Sinon, autre idée ?
Whismeril
Messages postés19020Date d'inscriptionmardi 11 mars 2003StatutContributeurDernière intervention15 avril 2024656 4 févr. 2017 à 18:45
Bonsoir
si tu as une piste, pourquoi ne pas avoir essayé?
Même si VB6 c'est vieux pour moi, il est possible que ce qui allonge le temps de l'algorithme de tri est le fait de faire des Mid$ à répétition.
Tu peux essayer de copier le texte "mélanger" dans ton tableau, par exemple si tu trie à partir du 4eme caractère, au lieu de copier
"Coucou c'est moi!" tu copies "cou c'est moi!Cou".
Après le tri, quand tu recharges la liste tu "démélanges".
Herve_be
Messages postés1015Date d'inscriptionmercredi 4 août 2010StatutMembreDernière intervention10 mars 20242 5 févr. 2017 à 10:00
Avant d'essayer je voulais savoir si ça vaut la peine d'essayer.
Le fait de mettre la zone à trier devant permet de trier sur l'ensemble du string et pas sur un Mid$ : est-ce efficace ?
Whismeril
Messages postés19020Date d'inscriptionmardi 11 mars 2003StatutContributeurDernière intervention15 avril 2024656 5 févr. 2017 à 11:02
je ne sais pas c'est une idée, il faut tester et chronométrer.
5 févr. 2017 à 10:00
Le fait de mettre la zone à trier devant permet de trier sur l'ensemble du string et pas sur un Mid$ : est-ce efficace ?
5 févr. 2017 à 11:02