Séparateur de millier

Soyez le premier à donner votre avis sur cette source.

Snippet vu 8 211 fois - Téléchargée 30 fois

Contenu du snippet

Ce code, avec la commande /range N ( où N est un nombre ) permet de le ranger de la manière suivante : si je tape /range 1000000 celui-ci rendra dans le dialog le nombre suivant : 1|000|000 .
Si vous ne comprenez pas, utilisez le vous comprendrez vite.
Voilà, je pense avoir été clair, néanmoins un problème réside pour les nombres dépassant une vingtaine de caractères car j'ai fais ce code à l'arrache, et il n'est pas optimisé, il y a des variables temporaires partout mais bon je l'ai laissé tel quel car il fonctionnait pas mal.

Source / Exemple :


alias range {
  dialog -m range range
  var %x = $regex($1,/([0-9])/g) , %y = 1 , %g = 3 , %h = 1 , %f = 2 , %j = 1 , %k = -1 , %q = 0
  while ( %y <= %x ) { did -a range 1 $regml(%y) $+ . | inc %y  }
  dec %y 
  var %z = $did(range,1) , %w = $replace(%z,.,$chr(32)) , %xx = $replace(%w,$chr(32),-), %yy = $calc(%x / 3)
  var %a = $regex(%yy,^[0-9]+\.[0-5]+$) , %b = $regex(%yy,^[0-9]+\.[^0-5]+$) , %c = $regex(%yy,^[0-9]+\.[0-9]+$)
  $iif(%a == 0,$iif(%b == 1,did -ra range 1 $replace($gettok(%xx,1-2,45),-,),did -ra range 1 $replace($gettok(%xx,1-3,45),-,)),did -ra range 1 $replace($gettok(%xx,1,45),-,))
  if ( %a == 0 ) && ( %b == 0 ) {
    var %d = $calc(%x - 3)   
  while ( %g <= %d ) { inc %g 3 | inc %h 3 | did -a range 1 $chr(124) $+ $replace($gettok(%xx,%h $+ - $+ %g,45),-,) } }
  elseif ( %a == 0 ) && ( %b == 1 ) {
    var %e = $calc( %x - 2 ) 
  while ( %f <= %e ) { inc %f 3 | inc %q 3 | did -a range 1 $chr(124) $+ $replace($gettok(%xx,%q $+ - $+ %f,45),-,) } }
  elseif ( %a == 1 ) && ( %b == 0 ) {
    var %m = $calc( %x - 1 ) 
  while ( %j <= %m ) { inc %j 3 | inc %k 3 | did -a range 1 $chr(124) $+ $replace($gettok(%xx,%k $+ - $+ %j,45),-,) } }
}

dialog range {
  title "Rangement"
  size -1 -1 110 35
  option dbu
  edit "", 1, 5 5 100 9, read
  button "Fermer", 2, 30 19 50 12, ok
  button "Copier", 3, 5 19 20 12
  link "Contact", 4, 84 21 22 9
}

on *:dialog:range:sclick:*: {
  if ( $did = 3 ) { editbox -a $did(1) }
  if ( $did = 4 ) { run mailto:erikire13@hotmail.com }
}

Conclusion :


Copier le code et faites ALT+R dans votre script.
File=>New et coller le code.
Bonne utilisation :-)

A voir également

Ajouter un commentaire

Commentaires

Messages postés
150
Date d'inscription
mardi 15 juin 2004
Statut
Membre
Dernière intervention
24 août 2010
2
Un bug me chagrine FearlessKire :
Si je désire mettre un nombre à virgules bin il me vire la virgule.. enfin sinon j'aime bien mais je pense que l'idée de KiNdErMaXi (de remplacer les | par des espaces) serait une bonne idée.. bon scripting :]
Messages postés
407
Date d'inscription
samedi 11 septembre 2004
Statut
Membre
Dernière intervention
25 août 2005

Ouais c'est vrai KiNdErMaXi, je suis d'accord ( ton pseudo est chiant à écrire quand même, sans le Tab )
Autremment j'aurais une suggestion pour FearlessKire :
Le titre, tu aurais pû mèttre "sépparateur de milliers" avec un "s" à la fin car tu sépares plusieurs milliers :D
Enfin je dis ça parce que je vois que tu es un fan des changements de titre :)
Messages postés
1052
Date d'inscription
samedi 10 juillet 2004
Statut
Membre
Dernière intervention
30 novembre 2009
2
moi je pense que des espaces serai mieux approprié par rapport aux | ou ,
Messages postés
2087
Date d'inscription
jeudi 12 décembre 2002
Statut
Modérateur
Dernière intervention
30 janvier 2011
8
Tu devrais changer le titre de ta source, là c'est pas très clair.

"Séparateur de millier" par exemple serait plus adapté.
Messages postés
85
Date d'inscription
mercredi 3 novembre 2004
Statut
Membre
Dernière intervention
6 janvier 2008

Je te remercie, c'est vrai que je code depuis peu par rapport à toi par exemple mais bon j'avais conscience de la longueur de mon code, du nombre incensé de variable temporaire mais bon il marchait jusqu'à une certaine limit et j'en étais content.
Ton alias m'aidera je pense à comprendre certains points pour arriver à réaliser des choses ( surtout comme tu dis , sur les nombres et les maths ) sans bugs cette fois-ci.
Merci à toi.

P.S : Viens sur irc, le server où tu es @ officiel ( indice : 69 :p )
Afficher les 12 commentaires

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.