Shellnode
Vous souhaitez réagir à ce message ? Créez un compte en quelques clics ou connectez-vous pour continuer.
Le Deal du moment : -21%
LEGO® Icons 10329 Les Plantes Miniatures, ...
Voir le deal
39.59 €

Les variables Les differents type de variables

Shellnode :: Guides :: TCL

Aller en bas

Les variables
Les differents type de variables Empty Les variables Les differents type de variables

Message  Romeo Ven 8 Aoû - 18:25

Les variables permettent de stocker des informations dans la mémoire de l'eggdrop.
Ont peut les définir en deux groupes, les variables locales et les variables globales.

Les variables locales

Elles sont habituellement définies au sein d'une procédure et sont temporaires: la variable n'existe qu'à l'intérieur de la procédure en cours.

Les variables globales

Les variables globales sont sans doute les plus importantes.
Ont les retrouvent principalement en début de script, elles permmetent de configurer votre script.
Sachez qu'elles doivent être définit hors procédure.
Sachez aussi que l'appellation de celle-ci peut poser parfois quelques problème. En effet, dans un script tcl, vous avez la possiilité d'appeller des variables qui sont déjà définitent (du genre $botnick (le nick du bot)). Sachez qu'il vaut mieu éviter de définir une variable sous le même nom. Alors comment faire ? Personnelement, je définit toujours quelques choses avant. Si mon script s'appelle machin, regardez comment je fonctionne :

set machin:admin "DaV34"
set machin:version "1.0"
...

A savoir que certain au lieu du charactère ":" utilisent des parenthèses ... bref, cela revien au même.


Pour appuyer mes explications, voici un bout de code qui vous permettra de comprendre :


# Définition de la variable globale
set ex_msg "L'exemple est réussi"

bind pub - "!exemple" exemple:repond
proc exemple:repond {nick uhost handle chan args} {
global ex_msg
putserv "PRIVMSG $chan :$ex_msg"
}

global permet de rendre une/des variables globale en locale. A la base, ont ne peut pas utiliser $ex_msg comme sa dans une procédure, donc ont est obliger d'utiliser global ex_msg.


Conseils


Sur certaines sources, ont peut voir quelque chose du genre :

set msgex "L'exemple est réussi"
set adminex "DaV34"
set versionex "1.0"

bind pub - "!version" exemple:version
proc exemple:repond {nick uhost handle chan args} {
global msgex adminex versionex
putserv "PRIVMSG $chan :$msgex"
putserv "PRIVMSG $chan :Tcl codé par $adminex version $versionex"
}


Comme vous pouvez peut être le constater, c'est la misere après de chaque fois d'utiliser global variable1 variable2 ... donc certaines personnes utilisent un autre systeme :

set exemple(msg) "L'exemple est réussi"
set exemple(admin) "DaV34"
set exemple(version) "1.0"

bind pub - "!version" exemple:version
proc exemple:repond {nick uhost handle chan args} {
global exemple
putserv "PRIVMSG $chan :$exemple(msg)"
putserv "PRIVMSG $chan :Tcl codé par $exemple(admin) version $exemple(version)"
}


La différence se trouve sur le nom des variables et au niveau du global. Cette solution vous simplifie la vie, et limite les risques de collisions entre le nom des variables. Penser vraiment a utiliser se systeme !
A noter : Vous pouvez utilise le charactère ":" au lieu des paranthese, question de gout.

Romeo
Admin

Messages : 82
Date d'inscription : 28/07/2008
Age : 52
Localisation : Quebec

https://shellnode.forumactif.org

Revenir en haut Aller en bas

Revenir en haut


Shellnode :: Guides :: TCL

 
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum
Ne ratez plus aucun deal !
Abonnez-vous pour recevoir par notification une sélection des meilleurs deals chaque jour.
IgnorerAutoriser