Page 1 sur 1

[..] Ranger par ordre croissant des nombre

Posté : mer. 25 févr. 2009 11:48
par L4crymal
J'aimerai svp avoir un script qui lit l'ensemble d'un fichier .txt qui contient 1 nombre à virgule par ligne.
Et qui les range par ordre croissant dans un autre fichier merci d'avance :oops:

Re: [..] Ranger par ordre croissant des nombre

Posté : mer. 25 févr. 2009 13:30
par ani
► Afficher le texte
bonne continuation ;)

Re: [..] Ranger par ordre croissant des nombre

Posté : mer. 25 févr. 2009 14:45
par Tlem
Il y à aussi la possibilité de remplacer la dernière boucle par :

Code : Tout sélectionner

_FileWriteFromArray($Sortie, $aSort)

Re: [R] Ranger par ordre croissant des nombre

Posté : mer. 25 févr. 2009 16:42
par L4crymal
Merci vous assurez 8)

MAIS GROS PROBLEME QUE VOIS-JE!!!

XD il y a un truc la qui va pas :s :

32.7822390834589
33.4058518610606
33.4520867875666
4.0982163934243
5.03080698803898
7.90589306741499

( extrait de la fin du log avec les chiffres )

Re: [..] Ranger par ordre croissant des nombre

Posté : mer. 25 févr. 2009 20:10
par Tlem
Effectivement, il y à un piège car la fonction trie Alphabétiquement et non numériquement.

L'astuce serait de convertir chaque nombre pour leur donner un format identique.
Il faudrait savoir si la partie entière de vos nombres se limite aux dizaines ou si on peut aller au delà ?

Le but du jeu sera de prendre chaque nombre au fur et à mesure de lui rajouter autant de zéros que nécessaire (avant) selon la taille du nombre le plus grand.

Imaginons que vos nombres ce limite aux centaines.
Donc :
7.90589306741499 deviendra 007.90589306741499
4.0982163934243 deviendra 004.0982163934243
33.4520867875666 deviendra 033.4520867875666
etc ...

Une fois le nombre modifié, il suffit de le remettre dans le tableau puis une fois le tableau complété, on peut le trier. ;)

Edit :
Un truc dans le genre. ;)

Code : Tout sélectionner

$nb = 7.90589306741499

$aVar1 = StringSplit($nb, ".")
$Res = StringRight("000" & $aVar1[1], 3) & "." & $aVar1[2]
MsgBox(0,"",$Res)

Re: [..] Ranger par ordre croissant des nombre

Posté : mer. 25 févr. 2009 21:31
par L4crymal
C'est un calcul de temps entre 2 traitement d'une requête TCP de mon serveur.

Donc comme c'est en millièmes de seconde, je peut dire que ça sera maximum 1 seconde, si c'est + d'une seconde le décompte du temps s'arrête et il y a une alerte pour signaler que le serveur ne répond plus ( bien foutu hein ^^ )