Soprano71
Messages postés107Date d'inscriptionvendredi 15 avril 2005StatutMembreDernière intervention 6 janvier 2009
-
5 janv. 2009 à 13:22
uaip
Messages postés1466Date d'inscriptionmardi 20 février 2007StatutMembreDernière intervention 7 février 2011
-
6 janv. 2009 à 17:06
bonjour,
voila je souhaiterai savoir si il est possible de réduire ma liste qui met d'une couleur les pseudos qui ont une extension ?
voici un bout de ma liste:
If ($right($3,4) == Away) return $rgb(196,200,178)
If ($right($3,11) == [Auto-Away]) return $rgb(196,200,178)
If ($right($3,3) == Out) return $rgb(123,135,234)
If ($right($3,3) == Aw-) return $rgb(196,200,178)
If ($right($3,7) == Aw-Taff) return $rgb(196,200,178)
If ($right($3,2) == Aw) return $rgb(196,200,178)
If ($right($3,3) == [w]) return $rgb(196,200,178)
If ($right($3,4) == [Aw]) return $rgb(196,200,178)
était possible de mettre les extensions dans un fichier .txt et qu'il soit détecté ?
Comment faire svp ?
cordialement
uaip
Messages postés1466Date d'inscriptionmardi 20 février 2007StatutMembreDernière intervention 7 février 2011 5 janv. 2009 à 15:27
Je ne sais plus exactement mais je pense que tu peux faire un truc de ce style :
var %a 1, %b $lines(fichier.txt)
while (%a <= %b) {
var %ext $gettok($read(fichier.txt,%a),1,32)
if (%ext == $right($3,$len(%ext))) return $gettok($read(fichier.txt,%a),2,32)
inc %a
}
Pas testé, mais ça devrait marcher.
Pour cela, il faut organiser ton fichier comme ceci :
Away $rgb(196,200,178)
[Auto-Away] $rgb(196,200,178)
Out $rgb(123,135,234)
Aw- $rgb(196,200,178)
Aw-Taff $rgb(196,200,178)
Aw $rgb(196,200,178)
[w] $rgb(196,200,178)
[Aw] $rgb(196,200,178)
Je ne sais plus si les valeurs RGB seront interprétées au return ou pas. Sinon tu les écris come ceci "000 000 000" dans le fichier et tu récupères $2, $3 et $4. Mais normalement il n'y a pas besoin.
Cette fois-ci, je pense que la commande /fiter ne convient pas car si j'ai bien compris, elle ne fonctionne que sur les fichiers et windows (je dis ça pour Wims )
cs_wims
Messages postés2466Date d'inscriptionvendredi 23 juillet 2004StatutMembreDernière intervention 1 août 20101 6 janv. 2009 à 11:01
Elle sert surtout a filtré, là on veut rien filtré :]
Les valeurs rgb seront évalués (rien avoir avec le return en revanche) parce que tu lui dis de le faire, c'est le comportement par defaut de $read
C'est dommage que le code de base utilise déja un $3, sinon tu aurait pu /tokenizé et ça aurait simplifié les $gettok en $1 et $2, il y a surement quand même moyen mais bon on connait pas le reste du code.
Sinon j'aurais fait la même chose mais avec une ou deux variable(s).
Juste pour cassé les couilles, il manque un = sur la variable %ext, qui donnera une erreur sur les versions inferieurs a la 6.21 !
Soprano71
Messages postés107Date d'inscriptionvendredi 15 avril 2005StatutMembreDernière intervention 6 janvier 2009 6 janv. 2009 à 12:30
oula après avoir ajouté les code de ouaip disons que sa ma fait totalement beugué mon script (rire) avec une erreur de "/iif "
voici le code pour wims:
ON ^1:JOIN:#: { If ($nick == $me) { nicklust } }
;underlinehot BorderSelect flatSb NoSortHeader balloon
alias nicklust {
.enable #who
var %a = menu\dlls\nicklust.dll
dll %a Mark # > nicklust2 autoarrange hottrack underlinehot flatsb balloon
dll %a SetColor # op $rgb(123,135,223)
dll %a SetColor # normal $rgb(123,135,223)
dll %a SetColor # voice $rgb(123,135,223)
If (%[FondColor] == OFF) { dll %a SetBKImage # %SetBKImage > %[FondImage] }
If (%[FondColor] == ON) { dll %a SetColor # bkg $rgb( $+ %[FondListe1] $+ , $+ %[FondListe2] $+ , $+ %[FondListe3] $+ ) }
dll %a SetFont # tooltips %ibulles.taille 700 > %nl.ibulles
dll %a SetFont # nicks %pseudos.taille 400 > %nl.pseudo
dll %a SetTipTitle # 1 > Info
If (%[Header] == ON) { dll %a SetFont # header %entete.taille 700 > %nl.entete }
dll %a SetView # report
If (%[Header] != ON) { dll %a ShowHeader # false }
If (%[Header] == ON) { dll %a ShowHeader # true | dll %a SetHeaderText # > # }
dll %a SetIcon # op > %icone.op
dll %a SetIcon # halfop > %icone.half
dll %a SetIcon # voice > %icone.voice
dll %a SetIcon # normal > %icone.normal
dll %a SetTipColor # text $rgb(155,155,155)
dll %a SetTipColor # bkg $rgb(0,0,0)
.who #
.disable #who
}
:underline bold italic
If ($1 == textstyle) { If (%textstyle != $null) return bold }
If ($1 == color) {
If ($istok(%ircop,$3,44)) return $rgb(153,135,223)
If ($regex($3,/^Niubot[0-9][0-9]$/)) return $rgb(153,135,223)
If ($3 == $me) return $rgb(158,155,233)
If ($right($3,4) == Away) return $rgb(196,200,178)
If ($right($3,11) == [Auto-Away]) return $rgb(196,200,178)
If ($right($3,3) == Out) return $rgb(123,135,234)
If ($right($3,3) == dow) return $rgb(123,135,234)
If ($right($3,3) == Aw-) return $rgb(196,200,178)
If ($right($3,7) == Aw-Taff) return $rgb(196,200,178)
If ($right($3,2) == Aw) return $rgb(196,200,178)
If ($right($3,3) == [w]) return $rgb(196,200,178)
}
}
Vous n’avez pas trouvé la réponse que vous recherchez ?
cs_wims
Messages postés2466Date d'inscriptionvendredi 23 juillet 2004StatutMembreDernière intervention 1 août 20101 6 janv. 2009 à 13:11
Pourquoi pour moi ? Les autres sont aussi apte a t'aider hein.
Bon donc le code que tu as posté ne comporte déja pas le code de Uaip, il y a un probleme de { }, il y a un goto qui devrait être un commentaire (je pense que le : est un ;), toute la partie après ce *faux* goto est dans le *vide*, çad tout les if en cascade là.
Il n'y a pas non plus de command /iif, qui de toute façon n'existe pas, $iif en revanche existe, c'est p-e ça que tu voulais dire mais j'en ai pas vu non plus ds ton code...
Soprano71
Messages postés107Date d'inscriptionvendredi 15 avril 2005StatutMembreDernière intervention 6 janvier 2009 6 janv. 2009 à 13:53
aprés avoir essayé le code de ouaip sa ma tellement fait beugé le script que j'ai du l'enlevai . j'pouvais plus rien faire la le code que j'ai mit c'est le code normal sans avoir ajouté le code de ouaip .
maintenant voici les ereurs que j'ai :
1F;[1F;#NICKLIST]1F; Cette commande n'existe pas.
et quand je déconnecte le script du serveur la ça me flood avec cet phrase ci :
* /who: not connected to server (line 491, Nicklist_Channel.mrc)
cs_wims
Messages postés2466Date d'inscriptionvendredi 23 juillet 2004StatutMembreDernière intervention 1 août 20101 6 janv. 2009 à 14:00
On ne peut pas deviné ce qu'est ton code ou la ligne 491 nous.Tu as lu les remarques que je t'avais dis ? Ton code a quelque petit problème, si mirc te flood avec * /who: not connected to server, c'est bien parce que tu fait des /who avec ton code... essaye de corrigé les problèmes et repost le code entier que tu as lié a ça.
uaip
Messages postés1466Date d'inscriptionmardi 20 février 2007StatutMembreDernière intervention 7 février 2011 6 janv. 2009 à 17:04
D'une part, Wims j'avais aussi pensé à tokenizer, mais comme tu dis, le $3 m'en empêchait (quant au = manquant, merci de l'avoir précisé)
D'autre part, Soprano71, mon pseudo, c'est UAIP et pas OUAIP.
Ensuite, tu as demandé un code, je te l'ai donné, et (d'après ton dernier post) tu as rajouté 2 if dedans.
Qui t'a dit de le faire ?
Tu voulais un code qui justement permette d'enlever tous ces if, et tu en rajoutes à mon code...
Faisons plus simple :
alias color {
var %a 1, %b $lines(fichier.txt)
while (%a <= %b) {
var %ext = $gettok($read(fichier.txt,%a),1,32)
if (%ext == $right($1,$len(%ext))) return $gettok($read(fichier.txt,%a),2,32)
inc %a
}
return $rgb(0,0,0)
}
Maintenant, tu as juste à insérer ceci dans ton code :
if ($1 == color) return $color($3)
La par contre, vu que c'est utilisé comme simple alias, on peut, comme l'avait dit Wims, "sauvegarder" le paramètre ($1) dans une var, puis tokenizer la ligne du ficheir lue.
Genre ceci (à vérifier) :
alias color {
var %a 1, %b $lines(fichier.txt), %param $1
while (%a <= %b) {
var %line = $read(fichier.txt,%a)
tokenize 32 %line
if ($1 == $right(%param,$len(%ext))) return $2
inc %a
}
return $rgb(0,0,0)
}
Essaye quand même de comprendre les codes qu'on te file, car si tu as rajouté des if, c'est que tu n'as pas compris le code donné (poses des questions sur les points qui te paraissent louches).
uaip
Messages postés1466Date d'inscriptionmardi 20 février 2007StatutMembreDernière intervention 7 février 2011 6 janv. 2009 à 17:06
Zut, malgré la relecture, je me suis trompé, je corrige la dernière alias :
alias color {
var %a 1, %b $lines(fichier.txt), %param $1
while (%a <= %b) {
var %line = $read(fichier.txt,%a)
tokenize 32 %line
if ($1 == $right(%param,$len($1))) return $2
inc %a
}
return $rgb(0,0,0)
}