Ca m'enerve -____-

[Résolu]
Signaler
Messages postés
137
Date d'inscription
mardi 4 novembre 2003
Statut
Membre
Dernière intervention
22 août 2005
-
Messages postés
1804
Date d'inscription
mardi 15 juillet 2003
Statut
Membre
Dernière intervention
22 septembre 2009
-
dites,c 'est peut etre tres conce que je demande, mais j'ai toujours eu un probleme avec les $left, $right et $mid... quand j'y met une variable comme indice, exemple :

var %pl2 $mid($1-,%b,1)


... alors chuis ptet bete mais je vois pas par quoi je peux remplacer mon %b...

9 réponses

Messages postés
2084
Date d'inscription
jeudi 12 décembre 2002
Statut
Modérateur
Dernière intervention
30 janvier 2011
8
Comme quoi le mIRC Script est bizarre defois :
au lieu de faire /var %var valeur, fait /var %var = valeur, car mIRC n'apprécie pas toujours se que tu as fais, et c'est ca qui coincait.

on *:input:#: {
  if ($left($1,1) isin :!.) { msg $chan $1- | halt }
  elseif ($left($1,1) == /) { $1- | halt }
  else {
    var %b = 0
    var %txt2 = $replace($1-,$chr(32),_)
    var %len = $len($1-)
    while (%b < %len) {
      inc %b
      var %pl2 = $mid(%txt2,%b,1)
      var %txt = %txt $+  $+ $iif(. isin $calc(%b / 2),11,8) $+ ,1 $+ %pl2
    }
    msg $chan $replace(%txt,_,$chr(32))
    halt
  }
}


Cordialement, Sorn_Drixer
-
:question) Mon site : Sorn-Creation
Messages postés
2084
Date d'inscription
jeudi 12 décembre 2002
Statut
Modérateur
Dernière intervention
30 janvier 2011
8
Bonjour,

Que veux-tu faire exactement ?

$mid($1-,%b,1)
Si on remplace %b par X (X étant un nombre), ca va retourner le Xième caractère du mot.
Exemple :
$mid(test,3,1) va retourner s, car c'est la 3ème lettre du mot test.

En utilisant bien $mid, on peut très souvent se passer d'un $left ou d'un $right

Cordialement, Sorn_Drixer
-
:question) Mon site : Sorn-Creation
Messages postés
137
Date d'inscription
mardi 4 novembre 2003
Statut
Membre
Dernière intervention
22 août 2005

je sais merci ^^

justement, je veux récupérer le %beme caractère du mot, or ca ne marche pas... et je sais tres bien que je peux me apsser de $left ou de $right, je dis juste que j'ia le meme probleme avec : la variable %b ne passe pas (n'importe quelle autre d'ailleurs)... voici le message d'erreur -____-
* Invalid format: $mid (line 9, script.ini)

bien sur, ca marche en mettant un nombre concret à la place de %b...

ah aussi un truc bien bizarre... quand je mets - $+ %b (qui revient à -X), ca marche... enfin bon je ne cherche pas ca, donc faudrait voir à trouver le probleme
Messages postés
2084
Date d'inscription
jeudi 12 décembre 2002
Statut
Modérateur
Dernière intervention
30 janvier 2011
8
C'est bizarre.
Si tu pouvais nous donner ton alias, ou une partie du code dans lequel tu testes ca, on pourrait peut-être voir où ca coince. (à moins que tu testes directement en echo ?)

Cordialement, Sorn_Drixer
-
:question) Mon site : Sorn-Creation
Messages postés
137
Date d'inscription
mardi 4 novembre 2003
Statut
Membre
Dernière intervention
22 août 2005

ok, je donne mon script (c'est un systeme tout bete d'alternance des couleurs, ilf aut recuperer letre par lettre pour faire cette alternance)
on *:input:#: {
  if ($left($1,1) isin :!.) { msg $chan $1- | halt }
  elseif ($left($1,1) == /) { $1- | halt }
  else {
    var %b 0
    var %txt2 $replace($1-,$chr(32),_)
    var %len $len($1-)
    while (%b < %len) {
      inc %b
      var %pl2 $mid(%txt2,- $+ %b,1)
      var %txt %txt $+  $+ $iif(. isin $calc(%b / 2),11,8) $+ ,1 $+ %pl2
    }
    msg $chan $replace(%txt,_,$chr(32))
    halt
  }
}


remarde : ce script la fait ecrire en couleurs alternées sur du noir mais... à l'envers... si je pouvais trouver l'alias qui inverse els elttres d'un texte ca m'eviterait de le refaire en attendant de trouver le bug à ca ^^
Messages postés
137
Date d'inscription
mardi 4 novembre 2003
Statut
Membre
Dernière intervention
22 août 2005

O___O... lol, c'est vrai c'est bin bizarre ^^... n'empeche je vois pas en quoi ca le dérange, enfin bon on va pas le contrarier... merci bien ^^
Messages postés
1804
Date d'inscription
mardi 15 juillet 2003
Statut
Membre
Dernière intervention
22 septembre 2009
5
en fait dès qu'il y a une virgule dans un /var, le top est de mettre un = : mIRC est un peu bizarre mais pas tant que ca, en effet il ne sait pas si tu déclares une autre variable locale ou si c'est la suite de ton code. le "=" lui dit de traiter les fonctions au mieux en gros (enfin le parenthèsage) ...
ex :
comment savoir si /var %b $read( %fichier , %ligne ) 5
veut dire : mettre dans %b la valeur $read(%fichier,%ligne) puis un 5
ou alors
mettre dans %b la valeur $read(%fichier et dans une autre variable %ligne mettre la valeur ") 5"
ca a l'air assez stupide, et ca n'a aucun intérêt de mal fermer une fonction si ce n'est avoir des msg d'erreurs, mais ca se comprend si tu te mets a la place de mirc qui lit ca "bêtement" qd ya pas le "="

(au passage,ca le fait pas sur tous les identifieurs et selon le contexte, et ca, ca c'est bizarre lol)

PaDa
Messages postés
137
Date d'inscription
mardi 4 novembre 2003
Statut
Membre
Dernière intervention
22 août 2005

aaah ouais bien raisonné j'avais pas vu sous cet angle ^^... sauf que ca résoud pas le probleme qu'y prend avec un - et pas sans... bon onv a le laisser fiare comme y veut l'essentiel est que ca amrche ^^
Messages postés
1804
Date d'inscription
mardi 15 juillet 2003
Statut
Membre
Dernière intervention
22 septembre 2009
5
oué c clair que c'est étonnant, ya quand même des choses bizarres c'est sur, mais je crois que mon explication tient la route pour partie au moins. :))
PaDa