Snippet : $multitok

Contenu du snippet

$multitok comme son nom l'indique sert simplement à éviter l'embriquement de N manipilation de token . Je ne sais pas pour vous mais moi il m'arrive souvent d'avoir 4 , 5 , voir plus de $gettok , $deltok, etc etc , embriqué pour recuperer les info (comme pour mdx et son système super évolué pour récuperer les information -_- )

bon je n'ai pas mi de protection contre une mauvaise utilisation .
Il fait tout les ID de token , la syntaxe est la suivante :

$multitok(string,manip1,manip2,........,manipN)

manip : <type[cs]>[,param1][,paramN],<ASCII>[,param spécial pour le sorttok]

le type est labréviation de la manip token , par exemple pour faire un $gettok , on mettra get dans le type . pour les identifier qui peuvent se voir incrémenter de case sensitive , on rajoutera "cs" à la fin du type , exemple : wild pour wildtok et wildcs pour wildtokcs .

les manip se placent dans l'ordre d'execution , un $multitok(string,get,1,32,del,2,41) équivaut à $deltok($gettok(string,1,32),2,41)

Source / Exemple :


alias multitok {
  var %x = 2
  while (%x <= $0) { 
    if ($regex($remove($eval($ $+ %x,2),cs),num|add|del|get|is|find|ins|match|put|rem|rep|sort|wild) == 1) var %v = $eval($+($,$remove($eval($ $+ %x,2),cs),tok,$iif(cs isin $eval($ $+ %x,2),cs),$chr(40),$iif(%v != $null,%v,$1),$chr(44),$eval($ $+ $calc(%x +1),3),$iif((($remove($eval($ $+ %x,2),cs) !isin num;sort;) || ($remove($eval($ $+ %x,2),cs) isin sort && $regex($eval($ $+ $calc(%x +2),2),num|add|del|get|is|find|ins|match|put|rem|rep|sort|wild) == 0 && $eval($ $+ $calc(%x +2),2) isalpha)),$+($chr(44),$eval($ $+ $calc(%x +2),3),$iif($remove($eval($ $+ %x,2),cs) !isin add;del;get;is;sort;,$+($chr(44),$eval($ $+ $calc(%x +3),3),$iif($remove($eval($ $+ %x,2),cs) !isin find;ins;match;rem;wild;put;,$+($chr(44),$eval($ $+ $calc(%x +4),3),$iif($remove($eval($ $+ %x,2),cs) !isin rep;,$+($chr(44),$eval($ $+ $calc(%x +5),3))))))))),$chr(41)),2) 
    inc %x $iif((($remove($eval($ $+ %x,2),cs) !isin num;sort;) || ($remove($eval($ $+ %x,2),cs) isin sort && $regex($eval($ $+ $calc(%x +2),2),num|add|del|get|is|find|ins|match|put|rem|rep|sort|wild) == 0 && $eval($ $+ $calc(%x +2),2) isalpha)),$iif($remove($eval($ $+ %x,2),cs) !isin add;del;get;is;sort;,$iif($remove($eval($ $+ %x,2),cs) !isin find;ins;match;rem;wild;put;,$iif($remove($eval($ $+ %x,2),cs) !isin rep;,6,5),4),3),2)
  } 
  return %v
}

Conclusion :


je suis conscient que mes explication ne sont peut-être pas très clair mais bon .
Je n'ai pas fait cet ident pour le rendre le plus stable possible , si on fait n'importe quoi avec , il est très probable qu'il bug , suffit de respecter les param pour chaque manip .
Dernier point , je l'ai tester sous 6.12

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.