DIALOGUE D'AIDE ET DE COMMANDE IRIX

Bestdoud Messages postés 243 Date d'inscription mercredi 22 janvier 2003 Statut Membre Dernière intervention 28 décembre 2008 - 2 déc. 2007 à 20:16
doob666 Messages postés 149 Date d'inscription vendredi 3 novembre 2006 Statut Membre Dernière intervention 25 janvier 2011 - 5 déc. 2007 à 21:46
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/44885-dialogue-d-aide-et-de-commande-irix

doob666 Messages postés 149 Date d'inscription vendredi 3 novembre 2006 Statut Membre Dernière intervention 25 janvier 2011
5 déc. 2007 à 21:46
oui effectivement.... c'est pas simple du tout :x je vais essayer de comprendre tout ça... et je le fait si j'y arrive :x
cs_wims Messages postés 2466 Date d'inscription vendredi 23 juillet 2004 Statut Membre Dernière intervention 1 août 2010 1
5 déc. 2007 à 14:47
Ok donc le truc c'est de voir que tu fait souvent la même commande, et que les paramètres ne varie que très peu
(Bon déja la dans ton code ya une erreur avec le var %a, il est mal placé je sais pas ce que ta foutu)

Donc en fait au lieu de faire X elseif (%a == X) qui correspond a plusieur ligne de ton combo, tu stock dans des variable, le nom qui va etre utilisé, et il faut que le numero de tes lignes corresponde parfaitement avec le nom qui identifie chaque truc, par exemple :

var %img jpg gif bmp png

ici, si il y a 4 truc différent, faire 4 elseif n'est pas vraiment un probleme, mais je te fait un petit exemple a adapter avec tes 40 elseif.Donc au lieu de faire par ex :
if (%a == jpg) { une_cmd un_parametre jpg }
elseif (%a == gif) { une_cmd un_parametre gif }
etc...
tu fait directement :
une_cmd un_parametre $gettok(%img,%a,32)

Tu as un parametre variable qui n'existe pas a tout les coups du style :

if (%a == jpg) { une_cmd un_parametre un_parametre_ jpg }
elseif (%a == gif) { une_cmd un_parametre gif }
etc...

Ici, le nombre de parametre change, si c'est le cas tu stock simplement une variable dans le même genre que les autres en utilisant 0 ou 1 ou alors 0 et le nom d'un parametre s'il varie :

var %params 1 0 0 1
et dans ton code tu utilises :
$iif($gettok(%params,%a,32),$v1)

si le parametre ne change pas, alors tu l'inclu directement a la place du 1 dans la variable, s'il varie, tu remplaces juste le $v1 par cette valeur

Voila, j'sais pas si j'ai été très clair...
Fait attention cette methode marche, a condition que la variable %a sois tjs incrémenté de 1, toi dans ton code, il a des lignes "Level 000" qui n'intervienne pas en tant que lignes a prendre en compte, donc il faut que tu trouve un system qui te redonnes tjs une bonne valeur pour cette methode.Je ferais p-e un tuto parce que j'admet que ça doit pas être simple a comprendre si on débute...
doob666 Messages postés 149 Date d'inscription vendredi 3 novembre 2006 Statut Membre Dernière intervention 25 janvier 2011
4 déc. 2007 à 22:49
oui WIMS j'aimerais bien un exemple de ta méthode. Pour $active et IriX je vais le faire dès demain ainsi que les levels.
cs_wims Messages postés 2466 Date d'inscription vendredi 23 juillet 2004 Statut Membre Dernière intervention 1 août 2010 1
4 déc. 2007 à 19:07
Moi je vois que en s'y prenant d'une bonne façon, tu peux faire ça en 100 lignes maxi mais cette methode n'est pas des plus simple et des plus compréhensible mais elle réduirai ton code de plus de la moitié quand même (/help /while)

Ne met pas des on 1: car si n redéfinis le level par défaut, ça ne marche pas (pour le on dialog)
Tu peux très bien séparé par un espace le délimiteur dans un didtok, a condition que l'espace ne sois pas ton délimiteur...
Tu devrais vérifié que $active est un salon, et que ce salon appartient bien a un server ayant irix (tlm n'est pas sur orange, ou pas seulement dessus)

Si tu veux un exemple de la methode, dis le simplement (je l'ai pas fait ici parce que c'est long et chiant)
doob666 Messages postés 149 Date d'inscription vendredi 3 novembre 2006 Statut Membre Dernière intervention 25 janvier 2011
2 déc. 2007 à 21:38
Voila mise a jour faite, merci BESTOUD
Bestdoud Messages postés 243 Date d'inscription mercredi 22 janvier 2003 Statut Membre Dernière intervention 28 décembre 2008
2 déc. 2007 à 21:23
tu peux peut être mettre ton $did(1).sel dans une variable
exemple var %a = $did(1).sel
et utiliser juste le %a

a part ça je voit rien d'autre
doob666 Messages postés 149 Date d'inscription vendredi 3 novembre 2006 Statut Membre Dernière intervention 25 janvier 2011
2 déc. 2007 à 21:15
ok merci BESTOUD je fait ça tout de suite et je met à jour, tu vois d'autres choses?
Bestdoud Messages postés 243 Date d'inscription mercredi 22 janvier 2003 Statut Membre Dernière intervention 28 décembre 2008
2 déc. 2007 à 21:13
oui par contre pas d'espace autour du délimiteur.

/didtok irix 1 124 ----- Level 000 -----|- 000 - CSADMIN -
doob666 Messages postés 149 Date d'inscription vendredi 3 novembre 2006 Statut Membre Dernière intervention 25 janvier 2011
2 déc. 2007 à 21:02
et en délimiteur je met 124 ?
doob666 Messages postés 149 Date d'inscription vendredi 3 novembre 2006 Statut Membre Dernière intervention 25 janvier 2011
2 déc. 2007 à 20:59
donc je fait : /didtok irix 1 (un délimiteur) ----- Level 000 ----- | - 000 - CSADMIN - (par exemple)
Bestdoud Messages postés 243 Date d'inscription mercredi 22 janvier 2003 Statut Membre Dernière intervention 28 décembre 2008
2 déc. 2007 à 20:41
une seule commande pour tout charger
donc c'est plus rapide, plus propre car 1 seule ligne
doob666 Messages postés 149 Date d'inscription vendredi 3 novembre 2006 Statut Membre Dernière intervention 25 janvier 2011
2 déc. 2007 à 20:38
quel est l'avantage du /didtok par rapport a ma façon de faire?
Bestdoud Messages postés 243 Date d'inscription mercredi 22 janvier 2003 Statut Membre Dernière intervention 28 décembre 2008
2 déc. 2007 à 20:16
pour mettre plusieurs données dans un combo:

/didtok name id C text pour ajouter une list de token dans un list/combo/edit box.
C est le délimiteur. exemple pour l'espace c'est 32
esemple /didtok $dname 1 124 aa|dd|ff

ensuite quand tu as plusieurs if comme ici, fait:
if
elseif

ca accelère le tout.

a quoi sert le var %combo 1 dans le premier on dialog ?
idem pour le var %combochanopt 1