Ptite aide :)

Apo3
Messages postés
6
Date d'inscription
dimanche 14 mars 2004
Statut
Membre
Dernière intervention
30 mai 2004
- 15 mars 2004 à 19:08
cs_tofu
Messages postés
1726
Date d'inscription
vendredi 12 septembre 2003
Statut
Membre
Dernière intervention
13 juin 2009
- 17 mars 2004 à 07:34
Salut tout le monde, je suis nouveau sur ce forum :)

J'ai besoin d'aide pour un script. Je ne l'ai pas encore écrit mais je pense que ca devrai marcher. Cepedant j'aimerai savoir s'il n'existe pas une methode plus simple.
Il doit pouvoir modifier les "flags" d'une personne qui sont stockés dans un fichier.
exemple : /msg nick cmd +abc-efg+hi
Je pensais separer les "+" et les "-" dans 2 variables.
Faire un $replace($?,+,=+,-,=-).
Puis de compter les "=" ( $numtok ) (pour faire une boucle)
Faire une boucle avec "if ( $left($gettok(...,1,61),1) == + )" ca ajoute dans une variables "+", et pareil pour les "-"
Puis modifier les "flags" du fichier avec : "if ( e isin %variable- ) $puttok"

Mais ca m'a l'air lourd, y a t'il une methode plus simple ?

Sinon dans l'aide je viens de voir "Hash tables", pouvez vous me donner des precisions sur cette commandes ? :)

Merci

5 réponses

cs_SornDrixer
Messages postés
2084
Date d'inscription
jeudi 12 décembre 2002
Statut
Membre
Dernière intervention
30 janvier 2011
8
15 mars 2004 à 19:14
Bonjour,

Je vais commencer par répondre par ta dernière question :
Les hash tables ne sont pas une commande, c'est un systeme permettant de stocker des données dans la mémoire vive de ton PC.

Voici se que dit l'aide de mIRC là-dessus :
Tables de données

Les  tables de données permettent d'emmagasiner des grosses quantités d'information qui peuvent être accessible rapidement et ultérieurement.

Une table de données peut être créée, libérée, référée ou modifiée en utilisant les commandes suivantes:

/hmake -s <nom> <N>
Crée une table de donnée avec N espaces.

Une table de donnée peut emmagasiner une quantitié illimitée d'items peut importe le N choisi, mais plus N est grand, plus la vitesse de recherche sera grande selon le nombre d'items contenu dans celle-ci.

i.e. Si vous croyez que vous emmagasinerez 1000 items dans une table, la valeur N = 100 est suffisante.

/hfree -sw <nom>
Libère une table de donnée existante.

L'option -w indique que le nom est un nom avec jokers, et que toutes les tables correspondantes seront libérées.

/hadd -sm <nom>  <data>
Ajoute un item à la table existante.

Si l'item ajouté existe, il remplace la vieille version.

L'option -m fait que /hadd crée la table si elle n'existe pas.

/hdel -sw <nom> 
Efface un item de la table de données.

L'option -w indique que l'item est un joker, et tous les éléments correspondants sont effacés.

/hload -sbn <nom> <fichier>
/hsave -sbnoa <name> <fichier>
Charge ou sauvegarde une table d'un/dans un fichier.

Les commandes sauvegarde du texte dans un fichier texte, avec items et données sur des lignes séparées. Les caractères $cr et $lf sont  retirés du texte lors de la sauvegarde.

L'option -b charge ou sauvegarde des fichiers binaires.  Les caractères $cr et $lf sont préservés lors de la sauvgarde.

L'option -n peut aussi servir à charger ou sauvegarder les données seulement avec aucun items.  Lors du chargement, chaque ligne de donnée est assignée à un valeur N commençant par N = 1.

La commande /hsave supporte également les options -o pour la réécriture d'un fichier existant ou l'option -a pour la poursuite de l'écriture dans un fichier existant.

$hget(nom/N)
Retourne le nom de la table de données si elle existe, ou retourne le nom de la Nième table.

Attributs: size

$hget(moo).size   retourne la valeur N de la table comme spécifié dans la commande /hmake.

$hget(nom/N,item)
Retourne la donnée associée à un item de la table de données spécifiée.

$hget(nom/N,N).item
Ceci permet de faire référence à la table comme un index de 0 à N, pour permettre de trouver le Nième item de la table.

Si N est zéro, retourne la quantité d'items contenu dans la table.

Note: Cette méthode est permise pour sa facilité d'utilisation, mais ce n'est pas une façon efficace d'utiliser la table de données.

$hfind(nom/N,texte,N)
Recherche dans la table pour le Nième item correspondant au texte. Retourne le nom de l'item.

Attributs: data

Si vous spécifiez l'attribut .data, la recherche se fait pour une valeur.

$hmatch(nom/N, texte, N)
Recherche dans la table pour le Nième item qui correspond au texte où le texte ou item/data est un joker. Retourne le nom de l'item.

Attributs: data

Si vous spécifiez l'attribut .data, la recherche se fait pour une valeur.

$hregex(nom/N, re, N)
Recherche dans la table pour le Nième item qui correspond à l'expression regulière. Retourne le nom de l'item.

Attributs: data

Si vous spécifiez l'attribut .data, la recherche se fait pour une valeur.


Pour ta 1ère question, je comprends pas très bien. Tu souhaiterais modifier le 'symbole' représentant chaque flag ? Si c'est le cas, pour la nicklist, tu peux utiliser nicklust.dll, qui permet de mettre des icones à la place de ces symboles.
-<gras>[ Sorn_Drixer ]-</gras>
-
Un problème ? une question ? N'hésitez pas, le forum est là pour ça.

:question) Vous pouvez me retrouver sur koliserv.dyndns.org:9010
0
Apo3
Messages postés
6
Date d'inscription
dimanche 14 mars 2004
Statut
Membre
Dernière intervention
30 mai 2004

15 mars 2004 à 19:24
Pour l'instant je stocke mes données dans des fichiers, je vais essayer ca :)

Sinon pour ma question, je veux mettre les "+" d'un coté et les "-" de l'autre.
Par exemple :
+abc-edf+hj

Je cherche a avoir "+abchj" d'un coté et "-edf" de l'autre.
J'ai donc penser a inserer des characteres pour separer "+abc" "-edf" "+hj".
Justement je cherche qqchose qui marcherai mieux.
merci
0
cs_tofu
Messages postés
1726
Date d'inscription
vendredi 12 septembre 2003
Statut
Membre
Dernière intervention
13 juin 2009
1
16 mars 2004 à 07:41
essais avec les tokens genre $gettok() et $istok() me paraissent assez approriés pour ce que tu veux faire..
----

eric\
0
Apo3
Messages postés
6
Date d'inscription
dimanche 14 mars 2004
Statut
Membre
Dernière intervention
30 mai 2004

16 mars 2004 à 18:22
Je viens de trouver une cmd beaucoup plus simple :)
Les expressions rationnelles ( $regex )
Par contre j'ai pas encore eu le temps d'essayer de voir ca ( avec des ^$|<=> partout :p )
http://www.scriptsdb.org/tutar.php?id=1#1

alias mode+ {
var %r = $regex($1-,/\+([^-]+)/g)
return $+($regml(1),$regml(2))
}

Comment faire pour qu'il retourne qu'importe la position ?
Ou il faut taper ttes les positions ? $+($regml(1),$regml(2),$reml(3),...)

Ca a l'air interessant (je vais encore devoir recommencer mon script :) )
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_tofu
Messages postés
1726
Date d'inscription
vendredi 12 septembre 2003
Statut
Membre
Dernière intervention
13 juin 2009
1
17 mars 2004 à 07:34
j'en ss rien, j'arrive à rien ak les regex.. faudrait que je me plonge sérieusement dedans...

----

eric\
0