Trie sur tableau

Le
matt
Bonjour,

Je voudrais réaliser un trie sur un tableau à plusieurs dimensions
Pour trier sur une colonne pas de problème

Mais je voudrais faire un trie plus "intelligent".

Je m'explique

je voudrais dans Puis apres le clique
un premier temps sur un autre bouton
obtenir ceci -> obtenir ceci ->
(ca ok, je sais) (ca, je ne sais pas)
+++ +++ +++
| A | Z | | A | Z | | A | X |
+++ +++ +++
| B | W | | A + Y | | A | Y |
+++ +++ +++
| C | O | | A + X | | A | Z |
+++ +++ +++
| A | Y | | B + W | | B | K |
+++ +++ +++
| B | K | | B + K | | B | W |
+++ +++ +++
| A | X | | C + O | | C | M |
+++ +++ +++
| C | M | | C + M | | C | O |
+++ +++ +++

(ouf j'ai fini avec mes dessins, pas facile :-))

Pour résumer, je voudrais que mon deuxième trie prenne en compte mon
premier (pas facile)


Si vous avez une idée, une piste, un truc qui pourrait faire avancer mon
smiblik, je vous en remercie d'avance

Matt
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses Page 1 / 2
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Mickaël Wolff
Le #7061741
matt a écrit :
Bonjour,

Je voudrais réaliser un trie sur un tableau à plusieurs dimensions...
Pour trier sur une colonne pas de problème...



Techniquement, il est vrai qu'un tableau à deux dimensions est
multi-dimensionnel :-D

Pour résumer, je voudrais que mon deuxième trie prenne en compte mon
premier (pas facile)...



Est-ce l'ordre dans lequel tu as trié qui doit importer, ou l'ordre
d'affichage des colonnes ?
Comment retiens-tu le fait que tes colonnes sont triées ?

Ce que tu souhaites faire est simple. C'est juste que tu ne simplifie
pas assez le problème, ce qui fait que tu le vois comme compliqué. Mais
finalement, en créant les bons objets, et les bons comparateurs pour le
tri, c'est faisable facilement.

--
Mickaël Wolff aka Lupus Michaelis
http://lupusmic.org
matt
Le #7063111
Bonjour,

Mickaël Wolff a écrit :
Techniquement, il est vrai qu'un tableau à deux dimensions est
multi-dimensionnel :-D



???

Est-ce l'ordre dans lequel tu as trié qui doit importer, ou l'ordre
d'affichage des colonnes ?



Dans l'ordre dans lequel j'ai trié mes colonnes.
Je vois trop ce que tu veux dire pour la deuxième proposition.

Comment retiens-tu le fait que tes colonnes sont triées ?



C'est le but de ma question, c'est un tout.

Ce que tu souhaites faire est simple.



Tant mieux,

C'est juste que tu ne simplifie pas assez le problème, ce qui fait que tu le vois comme compliqué.



Pour moi le problème est simple, je trie d'abord une première colonne
puis une deuxième, comme mon (joli) croquis.

Mais finalement, en créant les bons objets, et les bons comparateurs pour le
tri, c'est faisable facilement.



C'est la que c'est plus compliqué pour moi...

Sinon, tu as une piste, un truc enfin quelque chose ?

Matt...
Olivier Miakinen
Le #7063281
Le 21/06/2008 07:40, matt a écrit :

Pour résumer, je voudrais que mon deuxième trie prenne en compte mon
premier (pas facile)...

Si vous avez une idée, une piste, un truc qui pourrait faire avancer mon
smiblik, je vous en remercie d'avance...



La première idée, toute simple, c'est d'inverser l'ordre des tris. Si tu
tries d'abord selon la 2e colonne puis selon la 1re alors tu obtiendras
le résultat que tu souhaites (pourvu bien sûr que le tri sur le 1re
colonne n'inverse pas des lignes déjà triées).
matt
Le #7063471
Olivier Miakinen a écrit :
Le 21/06/2008 07:40, matt a écrit :
Pour résumer, je voudrais que mon deuxième trie prenne en compte mon
premier (pas facile)...

Si vous avez une idée, une piste, un truc qui pourrait faire avancer mon
smiblik, je vous en remercie d'avance...



La première idée, toute simple, c'est d'inverser l'ordre des tris. Si tu
tries d'abord selon la 2e colonne puis selon la 1re alors tu obtiendras
le résultat que tu souhaites (pourvu bien sûr que le tri sur le 1re
colonne n'inverse pas des lignes déjà triées).



Bonjour,

Je viens de tester, effectivement, ça marche sur mon petit tableau.

Je vais faire des test sur un tableau plus conséquent pour voir si ça
tient le choc.

merci,

Matt.
Olivier Miakinen
Le #7063861
Le 21/06/2008 12:09, matt a écrit :

La première idée, toute simple, c'est d'inverser l'ordre des tris. [...]



Je viens de tester, effectivement, ça marche sur mon petit tableau.

Je vais faire des test sur un tableau plus conséquent pour voir si ça
tient le choc.



Si tu veux le faire en une seule opération, ce qui sera plus efficace
pour un grand tableau, alors il suffit de refaire le tri avec un
opérateur de comparaison des lignes a et b qui retourne les résultats
suivants :
a = b si a.col1 = b.col1 et a.col2 = b.col2
a < b si a.col1 < a.col2 ou (a.col1 = b.col1 et a.col2 < b.col2)
a > b si a.col1 > a.col2 ou (a.col1 = b.col1 et a.col2 > b.col2)
matt
Le #7065501
Olivier Miakinen a écrit :
Le 21/06/2008 12:09, matt a écrit :
La première idée, toute simple, c'est d'inverser l'ordre des tris. [...]


Je viens de tester, effectivement, ça marche sur mon petit tableau.

Je vais faire des test sur un tableau plus conséquent pour voir si ça
tient le choc.



Si tu veux le faire en une seule opération, ce qui sera plus efficace
pour un grand tableau, alors il suffit de refaire le tri avec un
opérateur de comparaison des lignes a et b qui retourne les résultats
suivants :
a = b si a.col1 = b.col1 et a.col2 = b.col2
a < b si a.col1 < a.col2 ou (a.col1 = b.col1 et a.col2 < b.col2)
a > b si a.col1 > a.col2 ou (a.col1 = b.col1 et a.col2 > b.col2)



En fait, ce qui se passe, je récupère les valeurs d'un fichier xml que
je met dans un tableau. Il peut y avoir un certains nombres de champs
(15 au maximum) et le client peut à sa guise, trier sur la première puis
la troisième puis la deuxième, enfin comme il veut.

Il faut que je vois, c'est pour le boulot, donc je vais voir ça lundi...

Merci encore,

Matt...
Mickaël Wolff
Le #7071201
matt a écrit :
Bonjour,

Mickaël Wolff a écrit :
Techniquement, il est vrai qu'un tableau à deux dimensions est
multi-dimensionnel :-D



???



C'était une boutade, pas quelque chose d'existentiel.

Est-ce l'ordre dans lequel tu as trié qui doit importer, ou l'ordre
d'affichage des colonnes ?



Dans l'ordre dans lequel j'ai trié mes colonnes.
Je vois trop ce que tu veux dire pour la deuxième proposition.



Simplement qu'on pouvait imaginer qu'en cliquant sur les colonnes, tu
changes un flag qui indique que la colonne est triée, sans tenir compte
de l'ordre de clique de la colonne.

Comment retiens-tu le fait que tes colonnes sont triées ?



C'est le but de ma question, c'est un tout.



Tu avais peut-être déjà une idée. Est-ce que tu utilises la structure
HTML pour retenir ça, ou est-ce que tu utilises des objets javascript ?

Mais finalement, en créant les bons objets, et les bons comparateurs
pour le
tri, c'est faisable facilement.



C'est la que c'est plus compliqué pour moi...

Sinon, tu as une piste, un truc enfin quelque chose ?



Oui, quand même. Mais c'était moins facile que ça n'en avait l'air.
J'ai fait quelque chose
s'approcher de ce que tu voulais. À adapter selon les besoins.
Ça tombe bien, ça faisait un moment que je voulais en faire un !


--
Mickaël Wolff aka Lupus Michaelis
http://lupusmic.org
matt
Le #7072791
Mickaël Wolff a écrit :

Tu avais peut-être déjà une idée. Est-ce que tu utilises la structure
HTML pour retenir ça, ou est-ce que tu utilises des objets javascript ?



Pour le moment, j'ai crée un objet pour manipuler un tableau (affichage,
pagination, trie sur une colonne, filtrage). Il faut donc que
j'implémente le trie sur plusieurs colonnes.

s'approcher de ce que tu voulais. À adapter selon les besoins.
Ça tombe bien, ça faisait un moment que je voulais en faire un !



Je récupère le fichier et je le regarde demain au boulot. Comme tu dis,
il faudra surement l'adapter à mes besoins.

Merci,

Matt...
Mickaël Wolff
Le #7073061
matt a écrit :
Pour le moment, j'ai crée un objet pour manipuler un tableau (affichage,
pagination, trie sur une colonne, filtrage). Il faut donc que
j'implémente le trie sur plusieurs colonnes.



J'ai fait des choses dans le même esprit.

Je récupère le fichier et je le regarde demain au boulot. Comme tu dis,
il faudra surement l'adapter à mes besoins.



Au pire, utilises-le comme inspiration. Je pense que je mettrais à
jour le fichier demain matin. J'ai beaucoup refactoré le bins, avec pas
mal d'options. Et surtout, j'ai supprimé des bêtises. Mais mon plus gros
problème reste la gestion des colspan et rowspan. J'ai pas encore fait
de recherches dans ce sens.

il sera publié à la même URL. Contactes-moi en privé au pire.

Merci,



Merci à toi de m'avoir relancé sur ce cadavre !

--
Mickaël Wolff aka Lupus Michaelis
http://lupusmic.org
SAM
Le #7075071
Mickaël Wolff a écrit :
matt a écrit :
Pour le moment, j'ai crée un objet pour manipuler un tableau (affichage,
pagination, trie sur une colonne, filtrage). Il faut donc que
j'implémente le trie sur plusieurs colonnes.





Je trie, tu tries, il trie
implémenter le tri sur une colonne

Merci à toi de m'avoir relancé sur ce cadavre !



Ici ils s'appuient sur jQuery : plugin tablesorter


--
sm
Publicité
Poster une réponse
Anonyme