begin process at 2010 02 09 18:25:53
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Divers

 > SÉPARATEUR DE MILLIER

SÉPARATEUR DE MILLIER


 Information sur la source

Note :
7 / 10 - par 1 personne
7,00 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10
Catégorie :Divers Classé sous :millier, séparateur Niveau :Débutant Date de création :02/01/2005 Date de mise à jour :02/01/2005 21:06:24 Vu :4 552

Auteur : FearlessKire

Ecrire un message privé
Commentaire sur cette source (12)
Ajouter un commentaire et/ou une note

 Description

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

  • 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 }
  • }
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 :-)


 Historique

02 janvier 2005 20:15:42 :
Changement du titre ^^
02 janvier 2005 21:06:26 :
Changement du titre.. deuxième fois et dernière :)

 Sources du même auteur

Source avec Zip ADDON DE CERCLE + SNIPPETS MATHS
Source avec Zip TUTORIAL POUR DOCKER UN .SWF DANS UN DIALOG

 Sources de la même categorie

COMMANDES FANTAISIES ( OP DEOP , VOICE DEVOICE ) ORIGINALES par Orona
Source avec Zip Source avec une capture CORRECTEUR par Orona
Source avec Zip Source avec une capture [DLL] DESSINER COMME LES PICWINS SUR UNE DIALOGBOX (BONUS: J... par uaip
Source avec Zip Source avec une capture [DLL] AJOUT D'UN CONTRÔLE RICHEDIT SCINTILLA SUR LES DIALOG... par uaip
Source avec Zip Source avec une capture WORLDDMT - GESTION DE CAISSE V 1.0 par WorldDMT

Commentaires et avis

Commentaire de neo66 le 02/01/2005 20:04:48

je comprend pas a quoi sa sert ?
quand je met: /range 25456445164
il me donne: 25|456|445|164

d'apres ce que je vois, sa ne range pas le nombre mais sa le decoupe, les milliards, les millions, les millier, les centaines.
donc "Alias pour ranger de gros nombres", je comprend pas, car on rentre qu'un nombre, donc sa peut pas le  "ranger" :?
donc pour resumé, pour moi ce code, ne fait que decoupé le nombre, certes ce sera plus simple pour le comparais a un autre, mais sa le range pas :)
si je me trompe, explique moi mieu

Commentaire de fyltum le 02/01/2005 20:23:16

Aussi I N U T I L E que toi .
Nan je déconne c'est du joli en plus un petit dialog sympa :)
En plus je vais me mettre aux regex grace à toi
Dommage pour le bug des gros nombres sinon ça serai parfait mais bon...
Bonne chance dans tes défis :)

Commentaire de KiNdErMaXi le 02/01/2005 20:34:12

moi jtrouve ca plutot sympa, c'est sur qu'on ne s'en sert pas tous les jours mais ya eu du boulot !
mais un dialog juste pour ca :o\
met le en echo au lieu de faire un dialog ou meme dans un popus
bonne continuation ;)

Commentaire de PaDa le 02/01/2005 20:39:19

post précédent non passé grr
en gros : ton alias est bcp trop long, sinon ca peut etre sympa (mets des virgules plutot que les barres verticales :p)

;//Echo > $range2(132456789134567891201564561561561)
;normalement ca marche
Alias range2 var %y = $str(;,$calc(3- $len($1) % 3)) $+ $1,%x = $regsub(%y,/(.{3})/g,\1|,%y) , %x = $regsub($remove(%y,;),/^\||\|$/g,,%y) | return %y

Commentaire de KiNdErMaXi le 02/01/2005 20:44:02

gloups :o|

Commentaire de FearlessKire le 02/01/2005 20:45:30

PaDa : c'est vrai c'est excellent ton alias et pas de bug.
Bravo, c'est interessant comme code où d'ailleurs j'avais fais le mien pour montrer une petite utilisation de $regex mais le tien est bien mieux et plus structuré.

Commentaire de PaDa le 02/01/2005 20:50:07

en fait, ton alias est plus naturel, il montre bien comment on peut faire pas a pas... pi bon j'en fais depuis un bail du mirc scripting, ca n'enlève rien a la valeur de ton boulot. prépare d'autres trucs en maths ou sur les nombres, ca serait intéressant :p

Commentaire de FearlessKire le 02/01/2005 21:00:14

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 )

Commentaire de SornDrixer le 02/01/2005 21:00:22 administrateur CS

Tu devrais changer le titre de ta source, là c'est pas très clair.

"Séparateur de millier" par exemple serait plus adapté.

Commentaire de KiNdErMaXi le 02/01/2005 21:09:03

moi je pense que des espaces serai mieux approprié par rapport aux | ou ,

Commentaire de fyltum le 03/01/2005 17:20:35

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 :)

Commentaire de Zova le 03/01/2005 17:59:11

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 :]

 Ajouter un commentaire




Nos sponsors


Sondage...

CalendriCode

Février 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,905 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales