fjxokt
Messages postés840Date d'inscriptionvendredi 28 janvier 2005StatutMembreDernière intervention25 février 2009
-
30 mai 2005 à 19:47
IceTempest
Messages postés19Date d'inscriptiondimanche 12 juin 2005StatutMembreDernière intervention23 novembre 2006
-
4 juil. 2005 à 12:01
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.
IceTempest
Messages postés19Date d'inscriptiondimanche 12 juin 2005StatutMembreDernière intervention23 novembre 2006 4 juil. 2005 à 12:01
Tuto intéressant et qui aide beaucoup.
un seul mot à dire : Merci
Note : 8/10
cs_Frecky
Messages postés85Date d'inscriptionlundi 18 février 2002StatutMembreDernière intervention20 novembre 2005 23 juin 2005 à 20:46
le $iif() est plus lent, pour la persone qui ecrit le code, parfait, pour le prog qui optimise, non, alors lui il tenterais de le metre en if, si il ne peut pas, il le laisse tel quel, c'est comme sa je le voit un peu moi.., tu comence, de base il ameliore se qu'il peut, ensuite tu ameliore ton programe pour qu,Il ameliore encore + les code, etc. Mais c'est vrai que de faire un tel prog en mIRC script serais fou, c,est pour cela qu'il faudrais opté pour un autre language.
cs_tofu
Messages postés1726Date d'inscriptionvendredi 12 septembre 2003StatutMembreDernière intervention13 juin 20091 23 juin 2005 à 10:55
je suis pas sur que ce soit possible de faire un tel prog en mIRC, parce que tout dépend du contexte, par exemple un $iif() dans un while est gênant si le nb de fois qu'on reboucle est important, mais si on reboucle une dizaine de fois on peut laisser le $iif(), si on a affaire à un while dont le nb de rebouclage est une variable qui peut évoluer grandement, cmt un programme pourrait prendre ça en considération .. jss assez septique mais je px me tromper c'est p-ê réalisable..
cs_PaDa
Messages postés1804Date d'inscriptionmardi 15 juillet 2003StatutMembreDernière intervention22 septembre 20095 23 juin 2005 à 00:13
C'est globalement une bonne idée
D'ailleurs ca se fait sur d'autres langages, par exemple Perl, le roi des langages de script, vérifie la syntaxe, et optimise plein de trucs avant d'exécuter le code.
Cela dit, ca serait très difficile, perso je manque de temps pour ca, mais porqué no ;)
cs_Frecky
Messages postés85Date d'inscriptionlundi 18 février 2002StatutMembreDernière intervention20 novembre 2005 23 juin 2005 à 00:05
J'ai un tres bon projet pour vous, mais qui peut etre compliquer a faire. trouver tout se qui est + rapide que d'autre function etc, ensuite créer un programe qui "optimise" un script. Ex:
la persone code de la manière qu'elle le veut, $iif ou if, peut imporrte :P, ensuite elle pase son script dans le programe et pouff, il optimise tout, les $iif les transforme en if, les goto en while, etc, tout dans la mesure du possible bien-sur .. Mais comme je dit bien au debut. Cela peut etre compliquer, mais quel beau projet cela peut donner! Sur de gros code le programe pourais sauvé beaucoup de miliseconde partout et donc a la fin donner un script qui roule tres vite!
cs_tofu
Messages postés1726Date d'inscriptionvendredi 12 septembre 2003StatutMembreDernière intervention13 juin 20091 14 juin 2005 à 07:25
"Cela facilitera la relecture de votre code et le cheminement des informations."
j'ai parlé de la longueur du code? je pense pas.
et de toute façon même en ne regroupant pas les 'on dialog' ça évalue à chaque mouvement de souris pour voir si ton on dialog est bien l'init ou un sclick qd même donc bon.. on gagnera peut-être un peu en rapidité certe, mais en va vite avoir un code vrment long ds lequel on se retrouve plus à moins d'être extrèmement bien organisé..
Proutie66
Messages postés141Date d'inscriptionsamedi 19 octobre 2002StatutMembreDernière intervention14 avril 2008 14 juin 2005 à 01:04
Certaines amélioration sont par contre totalement ridicule.
Autant les "on *:TEXT:" à regrouper sont indispensable , autant regrouper les events on dialog ( init et sclick par exemple ) est stupide.
ON gagne une ligne pour un évenement fait une fois , mais on applique 2 fois plus de " if" ) chaque mouvement de souris.
cs_tofu
Messages postés1726Date d'inscriptionvendredi 12 septembre 2003StatutMembreDernière intervention13 juin 20091 4 juin 2005 à 16:34
oui, tu px utiliser un $findfile() ds un 'on text' si t'en as envi, c'est un identifieur de mIRC utilisable partout.
pppaaahhh
Messages postés28Date d'inscriptionmercredi 15 janvier 2003StatutMembreDernière intervention14 avril 2007 4 juin 2005 à 14:55
trés bien ce tuto;
pour Findfile c'est possible aussi de ne pas faire appel à d'alias et variable:
$findfile($null,$null,$null,$findfile($mircdir,*.*,0,echo -a $1-))
cs_tofu
Messages postés1726Date d'inscriptionvendredi 12 septembre 2003StatutMembreDernière intervention13 juin 20091 2 juin 2005 à 12:08
oui j'ai commencé à m'attaquer à filter mais comme je l'ai jms utilisée j'ai du mal à tt piger je ferais quelques tests pour me rendre compte..
en ce qui concerne le loadbuf/savebuf, jpense que je mettrais ça ds la partie sur les modes de stockage avec les fichiers txt/ini ;o)
et pour le istok, hier ds la nuit javais commencé à rédiger une partie la dessus c'est en cours ;)
MaX_62
Messages postés879Date d'inscriptionvendredi 22 octobre 2004StatutMembreDernière intervention29 juin 2007 2 juin 2005 à 11:18
Encore un truc pour les conditions :
alias testou {
var %i 1 , %t $ticks
while (%i <= 20000) {
if (%i 1 || %i 2 || %i == 3 || %i == 5) { inc %i }
else inc %i
}
echo -a Avec || : $calc($ticks - %t) ms
}
J'ai obtenu 2854 ms en utilisant cette méthode...
alias testistok {
var %i 1 , %t $ticks
while (%i <= 20000) {
if ($istok(1.2.3.5,%i,46)) { inc %i }
else inc %i
}
echo -a Avec istok : $calc($ticks - %t) ms
}
Cette fois ci, 1693 ms, c'est flagrant :]
cs_PaDa
Messages postés1804Date d'inscriptionmardi 15 juillet 2003StatutMembreDernière intervention22 septembre 20095 2 juin 2005 à 10:31
montrer* (je suis un illettré)
cs_PaDa
Messages postés1804Date d'inscriptionmardi 15 juillet 2003StatutMembreDernière intervention22 septembre 20095 2 juin 2005 à 10:31
Rien a dire, si t'as le temps tu devrais montré plus en détail les intérêts de loadbuf/savebuf, pour éviter du file handling par exemple (compatibilité vec les vieilles versions) ou pour trier du texte (loadbuf dans une window en +s (?)) et pi si t'as le temps de t'attaquer a /filter...
En tout cas ce tuto va devenir vraiment complet, bonne continuation
cs_tofu
Messages postés1726Date d'inscriptionvendredi 12 septembre 2003StatutMembreDernière intervention13 juin 20091 2 juin 2005 à 09:45
hier suite à un commentaire de Monark sur un autre site où j'ai posté ce tuto, j'ai fini d'être convaincu de continuer mais comme vous l'avez peut-être vu sur la page au format html la grande partie s'appelle 'généralités' , donc par la suite je vais m'attaquer sur des parties bien plus précises, par exemple tout ce qui concerne le stockage de données (variables/htables/fichiers) etc, pictures windows , et plein d'autres choses ;)
MaX_62
Messages postés879Date d'inscriptionvendredi 22 octobre 2004StatutMembreDernière intervention29 juin 2007 2 juin 2005 à 07:56
Excellente mise a jour :]
Le 10/10 fera l'affaire...
ps : je connaissais pas le truc du "isnum" :)
cs_PaDa
Messages postés1804Date d'inscriptionmardi 15 juillet 2003StatutMembreDernière intervention22 septembre 20095 30 mai 2005 à 22:10
Dommage que ce soit si court =)
Sinon, j'approuve pas pour les multiples $iif emboités qui t'empêchent de changer le moindre truc sous peine de plus savoir ou faut rouvrir/refermer une parenthèse..
Pour le $b j'avais jamais pensé a le faire comme ca, avec le nb de lettres en $prop, bonne idée ;)
cs_tofu
Messages postés1726Date d'inscriptionvendredi 12 septembre 2003StatutMembreDernière intervention13 juin 20091 30 mai 2005 à 20:50
merci d'apporter votre contribution, j'avais écrit ça ya déjà quelques temps déjà, et je l'ai posté tel quel, j'updaterais peut-être si je trouve le temps de continuer, par ailleurs, toute chose à rajouter sera la bienvenue donc hésitez pas à commenter ;)
MaX_62
Messages postés879Date d'inscriptionvendredi 22 octobre 2004StatutMembreDernière intervention29 juin 2007 30 mai 2005 à 20:21
Faut préciser tout de même que If/Else est plus rapide que $iif ... Ca raccourcit le code, mais des fois c'est la rapidité qui est la plus importante - en picwin par exemple -.
Exemple :
alias testiif {
var %i 1 , %t $ticks
while (%i <= 20000) {
$iif(. isin $calc(%i /2),unset %i [ $+ [ $calc(%i - 1) ] ],set %i [ $+ [ %i ] ] 1)
inc %i
}
echo -a $calc($ticks - %t)
}
--> Cet alias (très mal codé) va /set 20000 variables et les retirer ensuite. Je l'éxécute quelques fois, et j'obtiens les temps d'éxécution suivants :
5197 ms
5027 ms
5018 ms
5097 ms
alias testif {
var %i 1 , %t $ticks
while (%i <= 20000) {
if (. isin $calc(%i /2)) unset %i [ $+ [ $calc(%i - 1) ] ]
else set %i [ $+ [ %i ] ] 1
inc %i
}
echo -a $calc($ticks - %t)
}
--> Même alias, cette fois ci en utilisant un If/Else, j'obtiens les temps suivants :
3104 ms
3425 ms
3485 ms
3274 ms
On voit tout de suite la différence... j'espère que ça vous sera utile :)
fjxokt
Messages postés840Date d'inscriptionvendredi 28 janvier 2005StatutMembreDernière intervention25 février 20091 30 mai 2005 à 19:47
je rajouterai le fait de remplacer les events on text qui reagissent a des mots (genre !boisson et compagnie) par un fichier ini, ce qui donne pour l'event on text
on *:TEXT:*:#:{ if ($readini(fichier.ini,section,$1)) { $v1 } }
et puis en cas de repetition (comme pour remplir un dialog avec une serie de mots) d'utiliser des %var avec tokens
4 juil. 2005 à 12:01
un seul mot à dire : Merci
Note : 8/10
23 juin 2005 à 20:46
23 juin 2005 à 10:55
23 juin 2005 à 00:13
D'ailleurs ca se fait sur d'autres langages, par exemple Perl, le roi des langages de script, vérifie la syntaxe, et optimise plein de trucs avant d'exécuter le code.
Cela dit, ca serait très difficile, perso je manque de temps pour ca, mais porqué no ;)
23 juin 2005 à 00:05
la persone code de la manière qu'elle le veut, $iif ou if, peut imporrte :P, ensuite elle pase son script dans le programe et pouff, il optimise tout, les $iif les transforme en if, les goto en while, etc, tout dans la mesure du possible bien-sur .. Mais comme je dit bien au debut. Cela peut etre compliquer, mais quel beau projet cela peut donner! Sur de gros code le programe pourais sauvé beaucoup de miliseconde partout et donc a la fin donner un script qui roule tres vite!
14 juin 2005 à 07:25
j'ai parlé de la longueur du code? je pense pas.
et de toute façon même en ne regroupant pas les 'on dialog' ça évalue à chaque mouvement de souris pour voir si ton on dialog est bien l'init ou un sclick qd même donc bon.. on gagnera peut-être un peu en rapidité certe, mais en va vite avoir un code vrment long ds lequel on se retrouve plus à moins d'être extrèmement bien organisé..
14 juin 2005 à 01:04
Autant les "on *:TEXT:" à regrouper sont indispensable , autant regrouper les events on dialog ( init et sclick par exemple ) est stupide.
ON gagne une ligne pour un évenement fait une fois , mais on applique 2 fois plus de " if" ) chaque mouvement de souris.
4 juin 2005 à 16:34
4 juin 2005 à 14:55
pour Findfile c'est possible aussi de ne pas faire appel à d'alias et variable:
$findfile($null,$null,$null,$findfile($mircdir,*.*,0,echo -a $1-))
2 juin 2005 à 12:08
en ce qui concerne le loadbuf/savebuf, jpense que je mettrais ça ds la partie sur les modes de stockage avec les fichiers txt/ini ;o)
et pour le istok, hier ds la nuit javais commencé à rédiger une partie la dessus c'est en cours ;)
2 juin 2005 à 11:18
alias testou {
var %i 1 , %t $ticks
while (%i <= 20000) {
if (%i 1 || %i 2 || %i == 3 || %i == 5) { inc %i }
else inc %i
}
echo -a Avec || : $calc($ticks - %t) ms
}
J'ai obtenu 2854 ms en utilisant cette méthode...
alias testistok {
var %i 1 , %t $ticks
while (%i <= 20000) {
if ($istok(1.2.3.5,%i,46)) { inc %i }
else inc %i
}
echo -a Avec istok : $calc($ticks - %t) ms
}
Cette fois ci, 1693 ms, c'est flagrant :]
2 juin 2005 à 10:31
2 juin 2005 à 10:31
En tout cas ce tuto va devenir vraiment complet, bonne continuation
2 juin 2005 à 09:45
2 juin 2005 à 07:56
Le 10/10 fera l'affaire...
ps : je connaissais pas le truc du "isnum" :)
30 mai 2005 à 22:10
Sinon, j'approuve pas pour les multiples $iif emboités qui t'empêchent de changer le moindre truc sous peine de plus savoir ou faut rouvrir/refermer une parenthèse..
Pour le $b j'avais jamais pensé a le faire comme ca, avec le nb de lettres en $prop, bonne idée ;)
30 mai 2005 à 20:50
30 mai 2005 à 20:21
Exemple :
alias testiif {
var %i 1 , %t $ticks
while (%i <= 20000) {
$iif(. isin $calc(%i /2),unset %i [ $+ [ $calc(%i - 1) ] ],set %i [ $+ [ %i ] ] 1)
inc %i
}
echo -a $calc($ticks - %t)
}
--> Cet alias (très mal codé) va /set 20000 variables et les retirer ensuite. Je l'éxécute quelques fois, et j'obtiens les temps d'éxécution suivants :
5197 ms
5027 ms
5018 ms
5097 ms
alias testif {
var %i 1 , %t $ticks
while (%i <= 20000) {
if (. isin $calc(%i /2)) unset %i [ $+ [ $calc(%i - 1) ] ]
else set %i [ $+ [ %i ] ] 1
inc %i
}
echo -a $calc($ticks - %t)
}
--> Même alias, cette fois ci en utilisant un If/Else, j'obtiens les temps suivants :
3104 ms
3425 ms
3485 ms
3274 ms
On voit tout de suite la différence... j'espère que ça vous sera utile :)
30 mai 2005 à 19:47
on *:TEXT:*:#:{ if ($readini(fichier.ini,section,$1)) { $v1 } }
et puis en cas de repetition (comme pour remplir un dialog avec une serie de mots) d'utiliser des %var avec tokens