Archeron
Messages postés4Date d'inscriptiondimanche 13 novembre 2005StatutMembreDernière intervention25 juin 2007
-
25 juin 2007 à 13:21
cs_DARKSIDIOUS
Messages postés15814Date d'inscriptionjeudi 8 août 2002StatutMembreDernière intervention 4 mars 2013
-
25 juin 2007 à 14:50
Bonjour à tous !!
Je réalise un programme en VB 6 pour la gestion d'un tournoi de foot. J'ai une list view à 3 Colonnes (Equipe, points, différence)
J'aimerais pour réaliser mon classement faire un tri sur la colonne points puis sur la colonne différence...
Le soucis est que je n'ai aucune idée comment faire...
cs_DARKSIDIOUS
Messages postés15814Date d'inscriptionjeudi 8 août 2002StatutMembreDernière intervention 4 mars 2013130 25 juin 2007 à 14:46
Donc maintenant que tu as ta première colonne de trier... ben t'as plus qu'à tout refaire ! lol
Le listview ne permet que de trier 1 seule colonne, et non deux à la fois !
Le principe, c'est de trier d'abord selon une colonne, puis une fois la première colonne triée, trier la deuxième colonne selon les données de la première colonne.
Un exemple :
'toto', 2; 3
'titi', 1, 5
'tata', 1, 4
Trie sur deuxième colonne donne :
'titi', 1, 5
'tata', 1, 4
'toto', 2, 3
Ca n'importe quel algorithme de tri te permet à ce résultat (recherche "tri rapide" ou "tri shell") dans les sources du site par exemple.
Une fois ce premier tri effectué, tu dois trier la troisième colonne lorsque la deuxième colonne contient 2 lignes de même valeur, ici : 'titi' et 'tata'. Là c'est à toi de faire ton propre algo de tri, bien que tu peux très bien te baser sur l'algorithme de tri de la deuxième colonne, ca y ressemblera fortement !
Au final tu obtiens :
'tata', 1, 4 ' permutation des deux lignes car 'tata' et 'titi' ont 1 dans la deuxième colonne, mais la troisième colonne de 'titi' est plus grande
'titi', 1, 5
'toto', 2, 3
cs_DARKSIDIOUS
Messages postés15814Date d'inscriptionjeudi 8 août 2002StatutMembreDernière intervention 4 mars 2013130 25 juin 2007 à 13:53
Il faut que tu fasse ton tri avant d'ajouter tes items dans la listview : tri d'abord par points puis affine ce tri par la colonne différence en ne triant que les lignes qui ont le même nombre de points.
Archeron
Messages postés4Date d'inscriptiondimanche 13 novembre 2005StatutMembreDernière intervention25 juin 2007 25 juin 2007 à 14:48
Ok je pensais qu'il y avait une propriété qui permettait le trie sur deux colonnes... Je vais donc faire mon propre algorithme pour faire les deux tries en une fois...
cs_DARKSIDIOUS
Messages postés15814Date d'inscriptionjeudi 8 août 2002StatutMembreDernière intervention 4 mars 2013130 25 juin 2007 à 14:50
Et non pas avec le listview !
A la limite, tu peux utiliser le SGrid de vbaccelerator.com qui lui gère le multi-tri il me semble, mais tu risque devoir changer un peu ton code, je le crains.