WorldDMT
Messages postés871Date d'inscriptionjeudi 6 juillet 2006StatutMembreDernière intervention 6 janvier 20121 29 déc. 2008 à 11:39
ok bro excuse moi :D
je disais que effectivement tu a raison wims pour ce que tu a dis que si il n'y a pas de commande on peut pas enlevé les accolades si non on aura un msg d'erreur
c'est pk j'ai mis dans mon exp "cmd" que ça s'applique rien qu'avec la presence d'une commande
j'espere etre bien clair cette fois ci :)
cs_wims
Messages postés2466Date d'inscriptionvendredi 23 juillet 2004StatutMembreDernière intervention 1 août 20101 29 déc. 2008 à 11:19
?
Essaye de te relire quand tu postes un message :(
WorldDMT
Messages postés871Date d'inscriptionjeudi 6 juillet 2006StatutMembreDernière intervention 6 janvier 20121 29 déc. 2008 à 10:36
effectivement wims c'est pk j'ai mis "cmd" :) si non pour un vide on aura un msg d'erreur :)
cs_wims
Messages postés2466Date d'inscriptionvendredi 23 juillet 2004StatutMembreDernière intervention 1 août 20101 28 déc. 2008 à 17:27
$dll est mieux que /dll.
par contre le coup des vars sur $dll, autant utilisé .echo -q (ou /noop, mais pour resté compatible), tu auras ton echo plus simplement si tu veux check le retour :) (a noté aussi que tu peux utilisé var -s pour afficher le resultat.)
Et worldDMT, enlevé les {} ne marche que quand il n'y qu'une command derrière, ou alors quand ce qui précède la { n'est pas une condition et encore, il faut savoir ce que l'on fait.
WorldDMT
Messages postés871Date d'inscriptionjeudi 6 juillet 2006StatutMembreDernière intervention 6 janvier 20121 28 déc. 2008 à 12:06
ok je vois
bon a propos de l'alias OneRP.current je vois dans else
ici la condition "if ($len($hget(OneRP,stream2)) == 0)" ça jou quel role?
puisque tu a une accolade fermé avant la cmd
si je ne me trompe pas si la condition est vraie ou fausse la commande hadd fontionnera tjr non?
au passage quand tu met dejà des "()" enleve les "{}" c'est plus rapide
exp:
if (x y) { cmd } tu peu faire if (x y) cmd
aussi pour
if ((x ==y) || (x == z)) { cmd }
=>
if (x ==y) || (x == z) { cmd }
ou
if ((x ==y) || (x == z)) cmd
c'est juste une proposition
Bestdoud
Messages postés243Date d'inscriptionmercredi 22 janvier 2003StatutMembreDernière intervention28 décembre 2008 28 déc. 2008 à 11:19
Salut,
tout d'abord merci pour ton commentaire
si tu regardes l'alias OneRP.current tu verra que je stocke des trucs dans la table, en l'occurence le tire en cours. Ca m'évite de stocker dans des variables. un hmake ne signifie pas qu'on utilise un hload derrière. et je préfère créer la htable avant. je trouve ca plus propre. Après c'est une question de façon de travailler.
oui je peux utiliser /dll mais mes variables ne sont pas tockées, elles sont juste utilisées dans l'alias. Regarde dans la section variable. Et j'ai pris k'habitude de faire ca au cas ou j'ai un problème de dll. j'ai juste à remplacer par un echo et je vois ce que me retroune la dll.
WorldDMT
Messages postés871Date d'inscriptionjeudi 6 juillet 2006StatutMembreDernière intervention 6 janvier 20121 27 déc. 2008 à 21:34
salut
j'ai regardé vite fais dejà on a commenté mais j'ai vu quelque ptites truc là
on 1:start:{
hmake OneRP 100
var %a $dll($OneRP.Amp,PluginManager,load input $shortfn($scriptdirplugins\in_vorbis.dll))
var %a $dll($OneRP.Amp,PluginManager,load input $shortfn($scriptdirplugins\in_mp3.dll))
var %a $dll($OneRP.Amp,PluginManager,load output $shortfn($scriptdirplugins\out_ds.dll))
}
pourquoi un hmake puisqu'il n'y a pas de hload?
tu peus enlevé et utilisé hadd -m le "-m" crée la hash table
pourquoi un tas de variable locale utilise /dll tout simplement
@+
PeGaZe33000
Messages postés5Date d'inscriptionsamedi 13 décembre 2008StatutMembreDernière intervention 3 janvier 2009 25 déc. 2008 à 12:12
Merci, en effet, d'avoir sorti ce code :)
uaip
Messages postés1466Date d'inscriptionmardi 20 février 2007StatutMembreDernière intervention 7 février 2011 23 déc. 2008 à 15:10
Remplacer le goto par un return ne veut pas dire enlever le return initial.
Ton goto amène à une seule instruction : un return. Donc au lieu de laisser mIRC se débrouiller à chercher l'étiquette du goto, un return est, à mon avis, plus efficace, un break aussi.
Mais comme je l'ai dit, c'était juste histoire d'avoir un truc à dire sur la source ^^ (sinon j'ai rien trouvé d'autre à dire, à part peut-être le $numtok() recalculé à chaque passage de la boucle) mais bon, ça aurait été plus important si les tampons étaient manipulés en mIRC, or là c'est une dll qui s'en charge. Donc je répète que mes petits commentaires sont à prendre à la légère, sinon ça reste relativement bien codé, puis c'est sympa d'avoir ressorti ça pour aider quelqu'un.
Bestdoud
Messages postés243Date d'inscriptionmercredi 22 janvier 2003StatutMembreDernière intervention28 décembre 2008 23 déc. 2008 à 13:59
Dans ton code, si je ne rencontre jamais le caractère $chr(41), je boucle indéfiniment. alors que moi je scan toute ma chaine et je m'arrète à la fin. je retourne le nombre de caractère avant le chr(41) ou toute la longueur s'il n'y est pas.
Il doit y avoir moyen en effet d'utiliser les regex et d'optimiser le code. Mais ce n'était pas mon but efectivement.
cs_wims
Messages postés2466Date d'inscriptionvendredi 23 juillet 2004StatutMembreDernière intervention 1 août 20101 23 déc. 2008 à 12:51
Non, le break ne fait qu'arrété la boucle, il ne sort pas de la routine en cours (le return lui stop la routine en cours DONC stop la boucle).
Mais Uaip a raison ton code est mal fichu, actuelement tu retourne %x - 1 dans nimporte quel cas (je sais pas si c'est voulu).
Mettre un break ou le même return (dans tout les cas il faut laissé le return de fin) et viré tes gotos reviendrai exactement au même que ton code actuel, mais on peut faire plus propre encore :
alias -l OneRP.testtitreradio {
var %a $remove($1-,$chr(32))
var %x 2
while ($right($gettok(%a,%x,40),1) != $chr(41)) inc %x 1
return $calc(%x - 1)
}
mais je pense pas que l'optimisation t'interesse vraiment ici, sinon... :)
En tout cas les regex font grandement defaut dans ton code.
Bestdoud
Messages postés243Date d'inscriptionmercredi 22 janvier 2003StatutMembreDernière intervention28 décembre 2008 23 déc. 2008 à 12:13
si tu met directement le break ou le return tu ne renvoie aucune valeur alors qu'ici je renvoie une valeur à la fin dans tous les cas
uaip
Messages postés1466Date d'inscriptionmardi 20 février 2007StatutMembreDernière intervention 7 février 2011 22 déc. 2008 à 22:04
Saloute
Même si on s'en fiche, on peut remplacer le goto par un break (dans la dernière boucle) ou même mettre directement le return.
C'est le seul "défaut" que j'ai trouvé à dire ^^
Sinon concernant cet éternel débat dll/mIRC c'est vrai que malgré l'augmentation de la qualité, ça enlève carrément du charme au codage mIRC (ce n'est en aucun cas une critique).
cs_wims
Messages postés2466Date d'inscriptionvendredi 23 juillet 2004StatutMembreDernière intervention 1 août 20101 22 déc. 2008 à 20:57
Yep, c'est deja bien sympa d'avoir resortis ca vite fait.
j'ai moi meme essaye il fut un temps de lire les donnes en temps reel avec des tampons, et effectivement j'avais aussi des probleme de coupure, mais je me disais que c'est parce que je procedais mal.
Bestdoud
Messages postés243Date d'inscriptionmercredi 22 janvier 2003StatutMembreDernière intervention28 décembre 2008 22 déc. 2008 à 17:21
en socket j'ai déja essayé et le résultat final est pas génial. on a des coupure à cause des tampons. A part faire un tampon énorme,j'ai pas trouvé.
Et ca se voit toute de suite que j'utilise des dlls à en regarder le contenu plus haut.
l'avantage c'est qu'on peut ausi écouter les radio en ogg.
ici j'ai pas trop recherché à faire un super truc. j'ai juste repris un ancien addon et laissé que le minimum. j'ai fait ca pour la personne que tu as conseillé de me contacter.
De plus j'ai plus trop le temps de coder. tous mes projets sont un peu laissé à l'abandon.
merci quand même pour ton commentaire
cs_wims
Messages postés2466Date d'inscriptionvendredi 23 juillet 2004StatutMembreDernière intervention 1 août 20101 22 déc. 2008 à 16:45
En terme de coding, a chaque fois jme dis mais comment il fait, et comme je vois aucune socket, les dlls font tilt :(, et jme dis "ah oui, les dll remplaces les lignes de socket et toutes la methode de lecture qui va derrière" c'est un peu dommage :p
Je ne juge pas le code parce que c'est pas vraiment le but, mais on peut optimiser :)
29 déc. 2008 à 11:39
je disais que effectivement tu a raison wims pour ce que tu a dis que si il n'y a pas de commande on peut pas enlevé les accolades si non on aura un msg d'erreur
c'est pk j'ai mis dans mon exp "cmd" que ça s'applique rien qu'avec la presence d'une commande
j'espere etre bien clair cette fois ci :)
29 déc. 2008 à 11:19
Essaye de te relire quand tu postes un message :(
29 déc. 2008 à 10:36
28 déc. 2008 à 17:27
par contre le coup des vars sur $dll, autant utilisé .echo -q (ou /noop, mais pour resté compatible), tu auras ton echo plus simplement si tu veux check le retour :) (a noté aussi que tu peux utilisé var -s pour afficher le resultat.)
Et worldDMT, enlevé les {} ne marche que quand il n'y qu'une command derrière, ou alors quand ce qui précède la { n'est pas une condition et encore, il faut savoir ce que l'on fait.
28 déc. 2008 à 12:06
bon a propos de l'alias OneRP.current je vois dans else
else {
if ($len($hget(OneRP,stream2)) == 0) {
}
hadd OneRP stream $remove(%a,$chr(40),$chr(41))
hadd OneRP stream2 $remove(%a,$chr(40),$chr(41))
}
ici la condition "if ($len($hget(OneRP,stream2)) == 0)" ça jou quel role?
puisque tu a une accolade fermé avant la cmd
si je ne me trompe pas si la condition est vraie ou fausse la commande hadd fontionnera tjr non?
au passage quand tu met dejà des "()" enleve les "{}" c'est plus rapide
exp:
if (x y) { cmd } tu peu faire if (x y) cmd
aussi pour
if ((x ==y) || (x == z)) { cmd }
=>
if (x ==y) || (x == z) { cmd }
ou
if ((x ==y) || (x == z)) cmd
c'est juste une proposition
28 déc. 2008 à 11:19
tout d'abord merci pour ton commentaire
si tu regardes l'alias OneRP.current tu verra que je stocke des trucs dans la table, en l'occurence le tire en cours. Ca m'évite de stocker dans des variables. un hmake ne signifie pas qu'on utilise un hload derrière. et je préfère créer la htable avant. je trouve ca plus propre. Après c'est une question de façon de travailler.
oui je peux utiliser /dll mais mes variables ne sont pas tockées, elles sont juste utilisées dans l'alias. Regarde dans la section variable. Et j'ai pris k'habitude de faire ca au cas ou j'ai un problème de dll. j'ai juste à remplacer par un echo et je vois ce que me retroune la dll.
27 déc. 2008 à 21:34
j'ai regardé vite fais dejà on a commenté mais j'ai vu quelque ptites truc là
on 1:start:{
hmake OneRP 100
var %a $dll($OneRP.Amp,PluginManager,load input $shortfn($scriptdirplugins\in_vorbis.dll))
var %a $dll($OneRP.Amp,PluginManager,load input $shortfn($scriptdirplugins\in_mp3.dll))
var %a $dll($OneRP.Amp,PluginManager,load output $shortfn($scriptdirplugins\out_ds.dll))
}
pourquoi un hmake puisqu'il n'y a pas de hload?
tu peus enlevé et utilisé hadd -m le "-m" crée la hash table
pourquoi un tas de variable locale utilise /dll tout simplement
@+
25 déc. 2008 à 12:12
23 déc. 2008 à 15:10
Ton goto amène à une seule instruction : un return. Donc au lieu de laisser mIRC se débrouiller à chercher l'étiquette du goto, un return est, à mon avis, plus efficace, un break aussi.
Mais comme je l'ai dit, c'était juste histoire d'avoir un truc à dire sur la source ^^ (sinon j'ai rien trouvé d'autre à dire, à part peut-être le $numtok() recalculé à chaque passage de la boucle) mais bon, ça aurait été plus important si les tampons étaient manipulés en mIRC, or là c'est une dll qui s'en charge. Donc je répète que mes petits commentaires sont à prendre à la légère, sinon ça reste relativement bien codé, puis c'est sympa d'avoir ressorti ça pour aider quelqu'un.
23 déc. 2008 à 13:59
Il doit y avoir moyen en effet d'utiliser les regex et d'optimiser le code. Mais ce n'était pas mon but efectivement.
23 déc. 2008 à 12:51
Mais Uaip a raison ton code est mal fichu, actuelement tu retourne %x - 1 dans nimporte quel cas (je sais pas si c'est voulu).
Mettre un break ou le même return (dans tout les cas il faut laissé le return de fin) et viré tes gotos reviendrai exactement au même que ton code actuel, mais on peut faire plus propre encore :
alias -l OneRP.testtitreradio {
var %a $remove($1-,$chr(32))
var %x 2
while ($right($gettok(%a,%x,40),1) != $chr(41)) inc %x 1
return $calc(%x - 1)
}
mais je pense pas que l'optimisation t'interesse vraiment ici, sinon... :)
En tout cas les regex font grandement defaut dans ton code.
23 déc. 2008 à 12:13
22 déc. 2008 à 22:04
Même si on s'en fiche, on peut remplacer le goto par un break (dans la dernière boucle) ou même mettre directement le return.
C'est le seul "défaut" que j'ai trouvé à dire ^^
Sinon concernant cet éternel débat dll/mIRC c'est vrai que malgré l'augmentation de la qualité, ça enlève carrément du charme au codage mIRC (ce n'est en aucun cas une critique).
22 déc. 2008 à 20:57
j'ai moi meme essaye il fut un temps de lire les donnes en temps reel avec des tampons, et effectivement j'avais aussi des probleme de coupure, mais je me disais que c'est parce que je procedais mal.
22 déc. 2008 à 17:21
Et ca se voit toute de suite que j'utilise des dlls à en regarder le contenu plus haut.
l'avantage c'est qu'on peut ausi écouter les radio en ogg.
ici j'ai pas trop recherché à faire un super truc. j'ai juste repris un ancien addon et laissé que le minimum. j'ai fait ca pour la personne que tu as conseillé de me contacter.
De plus j'ai plus trop le temps de coder. tous mes projets sont un peu laissé à l'abandon.
merci quand même pour ton commentaire
22 déc. 2008 à 16:45
Je ne juge pas le code parce que c'est pas vraiment le but, mais on peut optimiser :)