Communauté sur les Eggdrops - Community about Eggdrops
Exportation html + Classement des infos. - Printable Version

+- Communauté sur les Eggdrops - Community about Eggdrops (https://forum.eggdrop.fr)
+-- Forum: Eggdrop et TCL (https://forum.eggdrop.fr/forumdisplay.php?fid=8)
+--- Forum: Scripts TCL (https://forum.eggdrop.fr/forumdisplay.php?fid=4)
+--- Thread: Exportation html + Classement des infos. (/showthread.php?tid=898)



Exportation html + Classement des infos. - SUndayEveniing - 01/03/2011

Bonjour,

J'ai en ma possession un script TCL qui permet d'enregistrer le nombre de kicks et de bans d'une personne dans une database.
L'eggdrop récupère ces informations grâce à la commande "!info $nick''
Maintenant, j'aimerai que cet eggdrop génère une page html avec les informations de la database sous forme de classement. "L'unité" serais en points. Sachant qu'un kick vaut 1 point et un ban en vaut 2. Il faudrait que l'eggdrop établisse un classement, avec la place, le nombre de kick, le nombre de bans et le total des points.
Et en plus, j'aimerai que sur la page apparaisse la dernière actualisation de ce classement.
En pièce jointe, il y a le script tcl et une database de test dans une archive.

Merci de votre future aide.
SundayEveniing


RE: Exportation html + Classement des infos. - djkenny - 01/03/2011

salut,
dans la tcllib y a un package qui s appel html et qui permet de coder simplement ce que tu veux faire


RE: Exportation html + Classement des infos. - CrazyCat - 01/03/2011

@djkenny: je pense que le souci de SUndayEveniing est plutôt la récupération des points et la création du classement.
Je n'ai pas encore regardé sa source, mais j'imagine qu'il va falloir créer un bubble-sort pour trier les utilisateurs en fonction de leur score.
Ceci existe peut-être déjà dans quizz.tcl d'ailleurs.


RE: Exportation html + Classement des infos. - CrazyCat - 01/03/2011

Bon, alors en cherchant un peu, j'ai trouvé des fonctions de bubble sort:

tcl
proc bubble_sort {a} {
   if {[llength $a] >= 2} {
     for {set i [expr [llength $a]-1]} {$i > 0} {incr i -1} {
       set has_swapped "FALSE"
       for {set j 0} {$j < $i} {incr j} {
         if {[lindex $a $j] > [lindex $a [expr $j + 1]]} {
           set temp [lindex $a $j]
           set a [lreplace $a $j $j [lindex $a [expr $j + 1]]]
           set a [lreplace $a [expr $j + 1] [expr $j + 1] $temp]
           set has_swapped "TRUE"
         }
       }
       if {$has_swapped == "FALSE"} {
         break
       }
     }
   }
   return $a
 }


tcl
package require Tcl 8.5
package require struct::list
 
proc bubblesort {A} {
    set len [llength $A]
    set swapped true
    while {$swapped} {
        set swapped false
        for {set i 0} {$i < $len - 1} {incr i} {
            set j [expr {$i + 1}]
            if {[lindex $A $i] > [lindex $A $j]} {
                struct::list swap A $i $j
                set swapped true
            }
        }
        incr len -1
    }
    return $A
}
 
puts [bubblesort {8 6 4 2 1 3 5 7 9}] ;# => 1 2 3 4 5 6 7 8 9

Ca ne va peut-être pas aider, je vais chercher s'il y a des fonctions plus utiles pour le cas de notre demandeur


RE: Exportation html + Classement des infos. - djkenny - 02/03/2011

lsort ?


Code:
% set list [list "pseudo1 10 50" "pseudo2 2 25" "pseudo3 9 1" "pseudo4 1 22"]
{pseudo1 10 50} {pseudo2 2 25} {pseudo3 9 1} {pseudo4 1 22}
% lsort -dict -index 0 $list
{pseudo1 10 50} {pseudo2 2 25} {pseudo3 9 1} {pseudo4 1 22}
% lsort -real -index 1 $list
{pseudo4 1 22} {pseudo2 2 25} {pseudo3 9 1} {pseudo1 10 50}
% lsort -real -index 2 $list
{pseudo3 9 1} {pseudo4 1 22} {pseudo2 2 25} {pseudo1 10 50}
% lsort -real -index 2 -decreasing $list
{pseudo1 10 50} {pseudo2 2 25} {pseudo4 1 22} {pseudo3 9 1}



RE: Exportation html + Classement des infos. - BdS - 02/03/2011

En regardant dans le trivia.tcl, il pourra trouver son bonheur.