SYSTÈME DE TRI DE DONNÉE AVEC @WINDOW AFIN D'ÉTABLIR UN CLASSEMENT.

Messages postés
1287
Date d'inscription
mercredi 21 avril 2004
Statut
Membre
Dernière intervention
21 février 2009
- - Dernière réponse : Anatolei
Messages postés
27
Date d'inscription
samedi 24 décembre 2005
Statut
Membre
Dernière intervention
31 janvier 2009
- 22 août 2007 à 11:29
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/43797-systeme-de-tri-de-donnee-avec-window-afin-d-etablir-un-classement

Afficher la suite 
Anatolei
Messages postés
27
Date d'inscription
samedi 24 décembre 2005
Statut
Membre
Dernière intervention
31 janvier 2009
-
Pour le commentaire de Renfield, bravo tu sais te servir d'un clavier.
Ensuite, $point(name,N-M) fonctionne pour les hash/ini , je modifirais l'intro et les explications. En ce qui concerne le paramètre inv j'ai pas bien pigé l'utilité, mais je peux tout de même ajouter ça si ça peut être utile. Par contre je passe pour le triage de var, je propose déjà hash|ini ^^
Par contre j'avoue le fait de décrémenter j'allais le faire mais je suis parti faire autre chose et ça m'est sorti de la tête, je vais ajouter ça :)
Concernant le post d'ISoKa, bonne idée, j'vais ajouter ça aussi :)
Merci de vos commentaires en tout cas
cs_ISoKa
Messages postés
437
Date d'inscription
jeudi 27 avril 2006
Statut
Membre
Dernière intervention
17 octobre 2008
-
Bonjour,

Une option qui pourrai servir à certains ca serai de pouvoir avoir un truc genre $point(nom,N-M).score renvoyant toute les personnes ayant un score compri entre N et M
cs_wims
Messages postés
2466
Date d'inscription
vendredi 23 juillet 2004
Statut
Membre
Dernière intervention
1 août 2010
1 -
Je prefère déja largement l'alias sous cette forme !
Pense a édité l'intro de ta source tu parles encore de $tri.

Bon donc c'est beaucoup mieux comme ça mais tu devrais bien précisé certains truc :
$point(name,N-M)
propriété : .ini .hash
N-M marche pour les .ini ?

Tu devrais maintenant géré les cas ou ce que l'on veux trié se fait dans l'autre sens, car la ton code ne fait que trié sous cette forme :

table item data

data est la valeur selon laquelle le tri est effectué
mais il est possible que pour certaine raison, ce sois l'item qui contienne ce par rapport a quoi on veut trié, donc tu pourrais rajouté un parametre inv, qui permettrais cela (par defaut, sans parametre inv donc, le tri serait normal)

Cette dernière remarque s'applique aussi pour les fichiers .ini

Tu pourrais aussi trié des variables (là aussi il y a deux cas)
Soit la variable se présente sous cette forme :

%var item1-data1 item2-data2

et dans ce cas on apellerait l'alias comme cela : $point(var,N-M,32,45).var
ou 32 représente le char ascii qui sépare les formes item/data entre eux, et 45 qui sépare reelement item/data (j'sais pas si tu vas comprendre) avec la possibilité bien sur d'inversé (data-item) avec le ,inv en dernier parametre.

ou alors il y a plusieur variables sous cette forme là :
%var.item1 data1
%var.item2 data2
etc..

ou là encore les deux methode avec le ,inv sont possible.

Pour ce qui est de l'appel de l'alias en command pour incrémenté une valeur, on ne peut pas décrémenté :) ?

Voila, sinon bien joué, c'est utile ;)
Renfield
Messages postés
17283
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
21 juillet 2019
56 -
[F5]
Anatolei
Messages postés
27
Date d'inscription
samedi 24 décembre 2005
Statut
Membre
Dernière intervention
31 janvier 2009
-
Il y a un pb, les dernières modifs de mon code n'apparaissent pas tout le temps :/
cs_ISoKa
Messages postés
437
Date d'inscription
jeudi 27 avril 2006
Statut
Membre
Dernière intervention
17 octobre 2008
-
VerifieR

/me sort
cs_wims
Messages postés
2466
Date d'inscription
vendredi 23 juillet 2004
Statut
Membre
Dernière intervention
1 août 2010
1 -
Oué en ce moment je post beaucoup donc je pense pas tjs a vérifié l'orthographe dsl :]
RCA ArKanis
Messages postés
1287
Date d'inscription
mercredi 21 avril 2004
Statut
Membre
Dernière intervention
21 février 2009
-
Traducteur officiel de Wims, toujours présent !

* Personnelement :
Orthographe suggérée : Personnellement


* ex-eco :
Sachant que ex "en dehors de" et eco "écologie, économie, économe, ..."

ex-eco : un code qui sort de l'ordinaire en n'utilisant que peu d'électricité et donc qui contribue à la santé de la terre.


Orthographe (très largement) suggérée : ex aequo

* ex aequo :
deux personnes qui ont fait le même score

Bref, moi aussi je suis d'accord avec ce cher Wims :)
cs_wims
Messages postés
2466
Date d'inscription
vendredi 23 juillet 2004
Statut
Membre
Dernière intervention
1 août 2010
1 -
ah ah dsl pour ce repost , j'avais mis précédent et j'suis partis; en revenant j'ai cru ne pas avoir envoyé le truc donc j'ai renvoyé.

Personnelement j'aimerais bien voir l'alias comme je l'ai dis plus haut, il serais pratique et utile, géré les ex-eco serait une bonne chose aussi
cs_wims
Messages postés
2466
Date d'inscription
vendredi 23 juillet 2004
Statut
Membre
Dernière intervention
1 août 2010
1 -
Bon j'avais écris un bon commentaire mais pour une raison vraiment conne, j'ai perdu le texte donc j'vais faire cours :

Déja je comprend pas pourquoi tu attendais "surtout" mon commentaires, j'suis pas la pour critiquer ouvertement :/ et je sais pas si la façon dont tu dis ça est gentille ou pas.

J'avais déja pensé a faire ça et j'avais déja réfléchi a la manière la meilleur pour faire ça (filter, @win, $sorttok..) avec Zerg (un modo de sdb j'sais pas si tu connais.) et bref le fait est que j'aurais plus vu l'alias trié directement la table (ça résoud le probleme qui fait que tu peux pas demandé un grand intervalle) selon sois les item/data ( ou / exprime "par rapport a) sois data/item ou alors par rappor a un item spécific uniquement ou la data contiendrait uniquement tout les pseudo avec leur score sous la forme pseudo-valeur (pas forcement pseudo dailleur) ou valeur-pseudo le tout séparé par un char (le char qui colle le pseudo et la valeur est aussi parametrable).

Ce n'est que mon avis !

Niveau code, c'est plutot bon tu peux supprimé les $calc lorsque tu set/Var une variable et que tu n'effectue qu'un seul calcul.
Tu devrais caché la fenetre aussi ça serait mieux
(je partage (l'avis) le commentaire d'ArKanis generalement, c'est encore la cas ici :p)

Voila donc en gros c'est une bonne idée, j'aime bien, reste que ça manque d'option et que c'est limité ;)
Anatolei
Messages postés
27
Date d'inscription
samedi 24 décembre 2005
Statut
Membre
Dernière intervention
31 janvier 2009
-
C'était plutot dit de manière gentille le "j'attends le commentaire de Wims" ^^

Je prends note de tes remarques, l'idée de cacher la fenêtre ne m'était pas venue, je vais faire en sorte que ça soit fait :-)
Concernant la manière de faire, j'avoue ne mettre pas vraiment penché sur le filter. La @win me paraît tout de même convainquante, j'ai fait un test sur 150 scores/pseudos et le tri s'était fait en 0,125s ce qui me paraît tout à fait acceptable :x
En tout cas pour les options, il me paraît évident que je ne vais pas laisser le code tel quel et faire en sorte de "pondre" un code complet sans trop tarder. Je vais déjà commencer par modifier avec vos remarques :)
cs_wims
Messages postés
2466
Date d'inscription
vendredi 23 juillet 2004
Statut
Membre
Dernière intervention
1 août 2010
1 -
Bon j'avais écris un bon commentaire mais pour une raison vraiment conne, j'ai perdu le texte donc j'vais faire cours :

Déja je comprend pas pourquoi tu attendais "surtout" mon commentaires, j'suis pas la pour critiquer ouvertement :/ et je sais pas si la façon dont tu dis ça est gentille ou pas.

J'avais déja pensé a faire ça et j'avais déja réfléchi a la manière la meilleur pour faire ça (filter, @win, $sorttok..) avec Zerg (un modo de sdb j'sais pas si tu connais.) et bref le fait est que j'aurais plus vu l'alias trié directement la table (ça résoud le probleme qui fait que tu peux pas demandé un grand intervalle) selon sois les item/data ( ou / exprime "par rapport a) sois data/item ou alors par rappor a un item spécific uniquement ou la data contiendrait uniquement tout les pseudo avec leur score sous la forme pseudo-valeur (pas forcement pseudo dailleur) ou valeur-pseudo le tout séparé par un char (le char qui colle le pseudo et la valeur est aussi parametrable).

Ce n'est que mon avis !

Niveau code, c'est plutot bon tu peux supprimé les $calc lorsque tu set/Var une variable et que tu n'effectue qu'un seul calcul.
Tu devrais caché la fenetre aussi ça serait mieux
(je partage (l'avis) le commentaire d'ArKanis generalement, c'est encore la cas ici :p)

Voila donc en gros c'est une bonne idée, j'aime bien, reste que ça manque d'option et que c'est limité ;)
Anatolei
Messages postés
27
Date d'inscription
samedi 24 décembre 2005
Statut
Membre
Dernière intervention
31 janvier 2009
-
Tout d'abord merci pour ces précisions.
J'ai fait les remplacements pour les halt, ainsi que pour le $base que j'avoue ne pas avoir utilisé avant ajourd'hui (et c'est en effet bien plus propre que ce que j'avais fait).
Par contre je ne poste pas les modifs de suite, car je compte modifier ce code afin de le rendre bien plus complet, car dans l'état actuel il ne sert pas à grand monde, il faut l'avouer.
Donc à venir niveau modifs:
- Possibilité d'utilisation en commande.
- Possibilité d'ajouter des points à un nick.
- Possibilité d'enlever des points à un nick, ou supprimer son score.
- Possibilité d'écraser les scores.
- Offrir le choix d'écrire les scores dans une talbe ou un ini.
- D'autres choses qui me viendront sûrement :-]

Anatolei.
RCA ArKanis
Messages postés
1287
Date d'inscription
mercredi 21 avril 2004
Statut
Membre
Dernière intervention
21 février 2009
-
Tu devrais préciser qu'il s'agit d'un code à mettre dans la partie aliases et non remote.

Si j'ai bien compris, la table doit être construite comme ceci :
/hadd -m TABLE nick score
Tu devrais le préciser, ça pourrait profiter aux débutants ^^

$+($str(0,$calc(5 - $len(%donnees))),%donnees,$chr(32),%item)
devient :
$base(%donnees,10,10,5) %item

les /halt que tu utilises sont-ils vraiment nécessaires ? Il n'aurait pas plutôt fallu mettre plus simplement des /return ?

sinon c'est relativement bien codé et c'est commenté donc bon boulot ^^

tu pourrais utiliser le mode de fonctionnement en $isid et en commande, ça pourrait être pratique pour ajouter un score par exemple. En tout cas pour le moment, si on tape /tri table pseudo, rien ne se passe.