RECRÉATION DE $GETTOK EN $G3TTOK

c0wz
Messages postés
15
Date d'inscription
jeudi 30 octobre 2003
Statut
Membre
Dernière intervention
13 janvier 2004
- 30 oct. 2003 à 11:34
cs_Melnofil
Messages postés
71
Date d'inscription
dimanche 23 juin 2002
Statut
Membre
Dernière intervention
1 février 2008
- 16 déc. 2005 à 20:04
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/17533-recreation-de-gettok-en-g3ttok

cs_Melnofil
Messages postés
71
Date d'inscription
dimanche 23 juin 2002
Statut
Membre
Dernière intervention
1 février 2008

16 déc. 2005 à 20:04
"tu étais beaucoup trop aggressif" <== Désolé pinailler est naturel chez moi !

"Merci d'avoir si bien etudié ma source" <== de rien ca passe le temps quand on s'ennuis ;-p
c0wz
Messages postés
15
Date d'inscription
jeudi 30 octobre 2003
Statut
Membre
Dernière intervention
13 janvier 2004

8 déc. 2005 à 14:16
salut tlm :) dsl pr le titre de merde et petite precision cette source est vieille Date création : 30/10/2003 plus la peine de la commenté g arreté le mirc. Merci d'avoir si bien etudié ma source melnofil ^^ @+
cs_PaDa
Messages postés
1804
Date d'inscription
mardi 15 juillet 2003
Statut
Membre
Dernière intervention
22 septembre 2009
6
7 sept. 2005 à 07:12
Aloa,

Je n'ai jamais dit que cette fonction était exempte de bug, j'ai simplement dit que tu étais beaucoup trop aggressif pour pas grand chose :)
C'est totalement différent.

Je ne reviendrai pas sur les autres bugs, et je n'ai aucun arguments à t'avancer pour te convaincre de quoi que ce soit, je n'ai rien a te prouver mon coco :-)

N'ayant aucune envie d'alimenter ces discussions inutiles, je vire la surveillance de ce post et je n'y reviendrai pas.. Bonne continuation =)
cs_Melnofil
Messages postés
71
Date d'inscription
dimanche 23 juin 2002
Statut
Membre
Dernière intervention
1 février 2008

7 sept. 2005 à 03:16
Tiens puisque tu voulais absolument un bug, je t'en ai trouvé un :
//echo -a $gettok(t|e||s|t,2-3,$asc(|))
Affiche : e|s
//echo -a $g3ttok(t|e||s|t,2-3,$asc(|))
Affiche : e|

PaDa, attend 2 secondes que je prévois ce que tu va me dire :
"C'est stupide de considérer ce genre de choses, je ne vois pas pourquoi on irait utiliser un paramètre erronné pour le plaisir de voir que mirc le tronque pour le corriger, et reproduire cet oops dans son propre alias.."
Encore une fois ca dépent de ce que tu veux faire, le premier cas que j'avais cité peut facilement etre rencontré dans une situation tel que :
Dans une phrase je veux extraire certains mots, du second au Nième. Hors je sais à cause du code précédent que N est un entier supérieur ou égal à 1. D'où la question : Est-ce qu'on doit traiter le cas du 1 à part ou est-ce que ca marche direct comme on veux ? Et la immédiatement tu va voir que la réponse est carrément inversé selon si tu utilise $gettok ou $g3ttok ...

Et je pourrais donner une situation similaire pour le bug que je viens de citer. D'ailleurs il ne s'agit pas vraiment d'un bug a prioris si les tokens sont traités comme des tokens en C où la chaine vide peut être un token. Ceci réclame un 3ième test :
//echo -a $g3ttok(|t|e||s|t,1-4,$asc(|))
Affiche : 9|t|e||s|t
La réponse correcte avec des tokens C était : |t|e|
Et avec des tokens mIRC : t|e|s|t
(Je n'ose même pas imaginer d'où viens le 9 dans l'histoire)
Verdict : C'est bien un bug.

Ps : Je tiens a noter que j'ai fais mes 3 tests qui m'ont servi d'exemples du premier coup câd que je n'ai meme pas eu a chercher pour trouver ces incohérence avec la fonction standard.
cs_Melnofil
Messages postés
71
Date d'inscription
dimanche 23 juin 2002
Statut
Membre
Dernière intervention
1 février 2008

7 sept. 2005 à 02:53
"Et puis encourage moi a remonter dans tes exemples de bugs, tu n'en as donné qu'un (...)"
Je ne vois pas de quoi tu parles, aucun de mes exemples précédent ne fait part d'un bug. (ni dans ce dernier post d'ailleurs !)

Si tu veux vraiment creuser le problème, mis à part l'indentation, c'est cet exemple qui me hérise les poils :
# ;$gettok(chinois,est,maintenant,ugly,2,44) ; return "* Too many parameters: $gettok"
# ;$g3ttok(chinois,est,maintenant,ugly,2,44) ; return "est"
Parsque je me trompe peut-être, mais j'ai l'intuition que c0wz a écrit cette fonction à cause de ce "problème" à la base ; Alors que la commande suivante affiche "est" :
//var %temp chinois,est,maintenant,ugly | echo -a $gettok(%temp,2,44)
A partir du moment ou le délimiteur est la virule, on prend l'habitude de mettre "$+ $chr(44) $+" à la place et c tout. C'est comme si en C/C++ un type décidait soudainement de réécrire le language pour qu'on puisse mettre des " a l'interieur des chaines, dans le style : texte = "voiçi un "super" test".

Et si le but est de se passer de token, que dire de l'utilisation d'idenfiants tel que $0 $1 $2 $3 ... Car n'oublions que tous ces identifiants sont eux-même des tokens même si y'a pas "tok" écrit explicitement dessus (cf. fonction /tokenize). Les tokens c'est la base du script mirc.
(Edit : PaDa, si tu veux ne citer qu'un exemple oublis celui-ci, merci)

Quand je lis les noms de variable "%a %b %c %d %e %f" BRAVO la on est hyper renseigné sur leur utilité.

Et pis tiens un bout de ligne pris au hazard du délit de sale geule :
| $iif(%$$4 1,%k %$ [ $+ [ %$$4 ] ]) |
Déjà c'est quoi cette chose "%$$4" ? Je suis sûr qu'il y en a pas 10 d'entre nous qui ont déjà utilisé une varible qui a cette tête. D'ailleurs vu que je sais même pas a quoi ca peut bien faire référence j'ai testé :
//set %$$4 test
Me met dans ma liste de variables :
%$$4 test
Super ! Ca donne une idée du nombre de gens qui comprennent le code ... Et encore là je parle même pas de "%$ [ $+ [ %$$4 ] ]".
Et que dire du faite d'utiliser un $iif pour mettre carrément l'appel à la fonction dedans et utiliser un appel $null sinon ? ...... Mais pourquoi diable ne pas utiliser un "if" ? Je suis sûr que ca a un rapport avec le faite qu'il ait inopinément oublié d'indenter son code.

PaDa : Je prétend qu'avec l'expérience on peut évaluer la fiabilité/optimisation d'un code simplement sur son apparence au premier coup d'oeil (Avec allez, une erreur tous les 1000 scripteurs et encore, je suis sûr que j'en ferais moins). Si tu est persuadé(e) que c'est impossible c'est ton droit et je peux rien argumenter de +.

Ps : C'est facile de critiquer ce que je dis en disant "convaint-moi" mais sans avancer aucuns arguments pour me convaincre moi, que ce code a pleins de qualités super que je n'avais pas remarqué. (Et c'est là qu'on se rend compte de l'importance des descriptions et/ou commentaires >_> )
Afficher les 16 commentaires