tris dans un fichier - Perl - Programmation
Marsh Posté le 08-04-2008 à 15:46:57
c'est la limite et ça sert strictement à rien dans ton cas car tu n'utilises que le 2eme élement ( [1] ) du tableau retourné par le split: voir la doc
Marsh Posté le 08-04-2008 à 16:20:52
Merci beaucoup,
effectivement je cherchais au niveau des spécifications du sort...
Marsh Posté le 08-04-2008 à 17:53:49
Re, ... cette fois j'ai un tri multi critère disons qu'en fait mon fichier soit déjà trier par le premier attribut donc :
j'ai un fichier du type:
Code :
|
j'ai besoin que le résultat soit le suivant :
Code :
|
si j'ai bien compris y a une histoire de || mais j'ai l'impression que c'est juste dans le cas d'egalité????
merci d'avance..
Marsh Posté le 16-04-2008 à 18:22:52
Code :
|
Ca va te trier sur ton premier champ (alphanumerique), puis sous-trier sur le second (numérique)
A+,
Marsh Posté le 16-04-2008 à 18:41:31
Une petite explication sur mon post precedent:
Le premier map, transforme une ligne en un array (anonyme) de 5 elements, le premier étant la ligne, et les 4 suivants, les 4 parties de la ligne découpée. Ca sert a separer les champs a trier pour y acceder tout en gardant la ligne.
On a alors un tableau de tableaux a 5 elts, ie les elements du tableaux sont des references sur des tableaux (anonymes) a 5 elts.
On trie ce tableau de tableaux en fonction des champs:
$a->[1] cmp $b->[1] tri alphabétique. Si le premier champ des deux elements (donc ici le 2e element, d'indice 1, des deux tableaux a 5 elements comparés) sont distincts, on ne va pas plus loin, mais si ils sont égaux, $a->[1] cmp $b->[1] vaut 0, et on va donc evaluer le or..., et comparer sur le 2e champ.
On est alors maintenant avec un tableau trié de tableaux a 5 elements.
Le dernier map recupere la premier element de chaque tableau a 5 element, qui est donc la ligne figurant dans le tableau initial.
J'ai adapté a partir d'un exemple de Randall Schwartz himself
A+,
Marsh Posté le 08-04-2008 à 15:37:24
Salut à tous,
j'ai un fichier du type:
j'ai besoin d'en faire un tri par rapport à la 2e colonne. du coup j'ai trouvé ça:
ça marche nikel. Quelle est ma question vous direz vous...en fait c le 4.... il sert à quoi??? j'ai essayé avec d'autre chiffre ça marche aussi... pourquoi? merci beaucoup