COMMANDES FANTAISIES ( OP DEOP , VOICE DEVOICE ) ORIGINALES

dj328i 311 Messages postés dimanche 23 février 2003Date d'inscription 1 mai 2009 Dernière intervention - 21 août 2009 à 23:02 - Dernière réponse :  moi
- 11 juin 2017 à 04:40
Commentaires sur une source Créer une discussion Signaler Répondre
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

http://codes-sources.commentcamarche.net/source/50466-commandes-fantaisies-op-deop-voice-devoice-originales

Afficher la suite 
uaip 1473 Messages postés mardi 20 février 2007Date d'inscription 7 février 2011 Dernière intervention - 23 août 2009 à 22:45
Je commencerai par dire que le mIRC, j'en fais plus (ça sera mon excuse pour les boulettes que je vais dire).

je parlais de répétition, parce-que par exemple dans ce code :
if ($istok(-;+,$left($$1,1),59) && $istok(q;a;o;h;v,$mid($$1,2,1),59)) { var %mode = $+($left($$1,1),$str($mid($$1,2,1),$iif(!$2,1,$numtok($2-,32)))) | mode $chan %mode $iif(!$2, $me, $2-) | halt }

Tu utilises 2 fois $left($$1,1) et 2 fois $mid($$1,2,1). Et tu ne me contrediras pas si je dis que :
var %a = 0 | while (%a < $calc(45*5/(7*3+2)+4/8+ $sqrt(4*3/8))) { echo -a $calc(45*5/(7*3+2)+4/8+ $sqrt(4*3/8)) | inc %a }
est beaucoup plus lent que :var %a 0, %b $calc(45*5/(7*3+2)+4/8+ $sqrt(4*3/8)) | while (%a < %b) { echo -a %b | inc %a }
d'ou l'intérêt de mettre en variable les résultats des fonctions appelées plusieurs fois

Aprs, pour les regex, je disais simplement que tu testes /^[+-][qaohv]$/ dans $1. Alors pourquoi redécortiquer encore ce $1 avec $left($1,1) et $mid($1,2,1) ? $regml() est là pour ça, en mettant les tokens à récupérer entre parenthèses :
//var %a = $regex($$1,/^([+-])([qaohv])$/) | echo -a $regml(1) $regml(2)
LeGnoMe666 43 Messages postés dimanche 15 avril 2007Date d'inscription 24 août 2009 Dernière intervention - 24 août 2009 à 09:55
bonjour uaip,


En effet, dans l'absolu, je te rejoins concernant l'utilisation des variables, sauf que, dans ce cas précis, je ne suis pas convaincu qu'elles soient (pour celles évoquées) d'une grande nécéssité, ni même judicieuses (peut être me trompes je) et ce, pour les raisons suivantes:
- Sur une telle commande, cela revient à allouer deux variables à chaque input pour qu'elles ne servent qu'une fois sur 10 000 (si tout va bien, on ne voice pas, ni manipule les levels toutes les 5 minutes en général).
- Ce n'ai pas un probleme en soit certes les variables allouées. Si je fais 100 commandes dans le même principe, nous arrivons à 200 variables allouées systématiquement a chaque input. Or, ces variables servent ici a quoi? Un gain de temps? (encore faut il parler du gain de temps... quelques millièmes de secondes au mieu) dans l'execution eventuelle (ici, une fois toutes les 5 heures au mieux) du code à suivre.
- Ajouter au fait, que le code executé, est relativement basique et court dans son temps d'execution, il s'agit ici d'une commande "+o" renvoit "mode #salon +o machin",.

Tout ceci fait que, je n'ai pas senti vraiment plus judiscieux l'utilisation que tu prescris. Peut etre je fais erreur et auras tu des infos à m'apporter à ce sujet.

Sinon, concernant le $regml, en effet, je n'utilises peut etre pas assez souvent et cela rejoint l'idée dans mon précedent post, où je sous-entendais qu'il n'existait pas "la" solution, mais bien plusieurs. Ici dans ce cas, je pense qu'il ne s'agit purement que de question de gout ; Mais dans tous les cas, je ne vois pas en quoi, cela rend t'il "affreux" un code pour autant?

Bonne journée.
uaip 1473 Messages postés mardi 20 février 2007Date d'inscription 7 février 2011 Dernière intervention - 24 août 2009 à 10:52
Le coté "affreux", c'était simplement de faire tenir le code sur une ligne. Après pour les $regml() et $mid(), question de simplicité. $regml() est un identifieur qui retourne une valeur directe, tandis que $mid() va appeler d'autres commandes (internes) pour récupérer ce que tu veux (ici le 2ème char).
Pour les variables... certes comme tu le présentes, ça serait inutile, mais j'engloberais tout dans uns if plus général, parce-que if ($istok(-;+,$left($$1,1),59) && $istok(q;a;o;h;v,$mid($$1,2,1),59)) aussi est lourd comme condition, dans un input.

Et pour le gain de temps, euh... "quelques millièmes de secondes au mieux", ça se joue plutôt sur des centièmes voire des dixièmes de seconde, et en programmation, c'est énorme. N'oublie pas que le mIRC est interprété. L'interprétation d'une "%var" va se traduire par la correspondance mot-clé / valeur. En gros, l'interpréteur remplace "%var" par sa valeur (attention, var locale uniquement). Tandis que les identifieurs comme $mid() demandent d'autres calculs derrière. Et ne crois pas qu'aucune variable ne va être allouée pour ces calculs.
Bon, oui, là je rentre dans les détails, ce qui peut sembler ridicule pour un code aussi petit. Mais selon ce que tu entendais par "optimisation" dans ton post, une $regex() est certes beaucoup plus efficace que le code d'Orona, mais aussi beaucoup plus gourmande en ressources qu'une simple série de if/elseif.
LeGnoMe666 43 Messages postés dimanche 15 avril 2007Date d'inscription 24 août 2009 Dernière intervention - 24 août 2009 à 12:55
Bonjour uaip,

Merci pour ces précisions.
Objectif atteind : Je m'endormirais moins "con" ce soir.

Bonne journée.
il va super bien, je l'ai modif à ma sauce avec des plus mais c'est nickel .. je conseilles toutefois de le mettre sur une machine à part
Commenter la réponse de dj328i

11 réponses

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.