Mise en forme de code: pensez à utiliser les balises [ tcl ] et [ /tcl ] (sans les espaces bien sûr) autour de vos codes tcl afin d'avoir un meilleur rendu et une coloration syntaxique. x


manipulation des tableaux tcl à plusieurs dimentions
#1
bonjour tou le monde,
j'ai essay de faire ce script pour tester le remlissage, la recherche d'un element dans un tableau à plusieur dimention mais ce simple scrit marche tjr pas
svp si qlq peu le verifier.

-->donc si qlq tape la commande !tab coco
le script doit lui chercher ce mot "coco" dans la deusieme colone du tableau et lui retourne la var de la premier colone correspendant
et ajoute une ligne à la fin du tableau


tcl
bind pub - !tab pub:testtab
proc pub:testtab  { nick uhost handle arg channel }  {
set i 1
set idok "okid"
set pseudook "okpseudo"
set pseudoch $arg
set  tail [array size tabpseudo] 
array set tabpseudo(1 , id) {1}
array set tabpseudo(1 , pseudo) {coco}
array set tabpseudo(2 , id) {2}
array set tabpseudo(2 , pseudo) {hihi}
array set tabpseudo(3 , id) {3}
array set tabpseudo(3 , pseudo) {buybuy}
    for {set i 1} {$i < [array size tabpseudo]} {incr $i} { 
 
        if { [string match  "$pseudoch" $[array get $tabpseudo($i , pseudo)] ] } {
         array set tabpseudo([exper [array size tabpseudo] + 1] , 1) {$idok}
         array set tabpseudo([exper [array size tabpseudo] + 1] , 2) {$pseudook}
         putserv "PRIVMSG #$channel : l'id qui correspend à $pseudoch est: [array get $tabpseudo($i , id)]"
 
	   }
    }
}

#2
bonjour,
si tu pouvais utiliser les balises [tcl ] [/ tcl] ADÉQUAT stp ça serais bien.

Quote:
Lorsque vous mettez du code tcl dans un message, pensez à utiliser les balises [ tcl ] et [ /tcl ] (sans les espaces) pour l'encadrer afin de le rendre plus lisible.
Merci beaucoup pour les lecteurs


tcl
bind pub - !tab pub:testtab
proc pub:testtab { nick uhost handle  channel arg } {
set i 1
set idok "okid"
set pseudook "okpseudo"
set pseudoch $arg
set tail [array size tabpseudo]
array set tabpseudo(1 , id) {1}
array set tabpseudo(1 , pseudo) {coco}
array set tabpseudo(2 , id) {2}
array set tabpseudo(2 , pseudo) {hihi}
array set tabpseudo(3 , id) {3}
array set tabpseudo(3 , pseudo) {buybuy}
for {set i 1} {$i < [array size tabpseudo]} {incr $i} {
 
if { [string match "$pseudoch" $[array get $tabpseudo($i , $pseudo)] ] } {
array set tabpseudo([exper [array size tabpseudo] + 1] , 1) {$idok}
array set tabpseudo([exper [array size tabpseudo] + 1] , 2) {$pseudook}
putserv "PRIVMSG $channel : l'id qui correspondant à $pseudoch est: [array get $tabpseudo($i , id)]"
 
}
}
}

La différence entre Linux et Windows ,c'est que Linux c'est comme une belle fille , il faut l'apprivoiser , la comprendre , la séduire tandis que Windows , c'est comme une prostitué , il faut payer et surtout bien se protéger.
#3
Le soucis viens de ton string match, tu n'emplois pas du tout la bonne méthode.
En fait tu fais n'importe quoi:


tcl
if { [string match "$pseudoch" $[array get $tabpseudo($i , $pseudo)] ] } {


Cette ligne, c'est du n'importe quoi.
Tu voulais écrire:


tcl
if { [string match "$pseudoch" $tabpseudo($i , $pseudo)] } {


La tu as tout confondus, je t'invite à lire la documentation de [array get] pour mieux comprendre ton erreur.


Possibly Related Threads…
Thread Author Replies Views Last Post
  plusieurs question en 1 tedcampa 7 5,370 22/03/2011, 11:45
Last Post: djkenny
  Tableaux multidimensionnels CrazyCat 2 2,313 01/12/2010, 22:23
Last Post: CrazyCat

Forum Jump:


Users browsing this thread: 1 Guest(s)