Rechercher : dans
Par :

[perl] tri dans un fichier

Dernière réponse le 2 déc 2008 à 18:06:53 fifto, le 12 avr 2006 à 14:46:27 
 Signaler ce message aux modérateurs

J'ai une autre question concernant les tris en perl svp:
J'ai ce fichier texte:
#x y
1 5
44 2
3 74
2 11

Et en fait, j'aimerais le transformer en un nouveau fichier texte ou les x sont triés par ordre croissant:

donc le nouveau fichier texte serait:

#x y
1 5
2 11
3 74
44 2

Vous savez comment on peut faire ca svp?
merci.

Meilleures réponses pour « [perl] tri dans un fichier » dans :
Perl - Les fichiers Voir La notion de filehandle On appelle filehandle (traduisez descripteur de fichier), dans un programme Perl, le nom permettant de manipuler une connexion d'entrée-sortie (les entrées-sorties standards vues précédemment sont connues par les filehandles...
Pascal - Tri par insertion - Récursivité- VoirVoici une procédure récursive qui permet de trier un tableau de n entiers en utilisant la méthode de tri par insertion : Procedure Tri_Ins (Var t: TAB; n: integer); Var aux,i : integer; begin If n > 1 Then begin ...
Perl - Caractéristiques du langage VoirFichier source, et interprétation Le fichier source d'un programme écrit en Perl est un simple fichier texte dont l'extension est par convention .pl. Ce fichier source doit être un fichier texte non formatté, c'est-à-dire un fichier texte dans sa...
Perl - Entrée et sortie standards VoirQu'appelle-t-on entrée standard et sortie standard ? Perl permet d'écrire sur la sortie standard, appelée STDOUT et de lire sur l'entrée standard (STDIN). Il s'agit de deux descripteurs fournis par le système d'exploitation et permettant...

1

lami20j, le 12 avr 2006 à 23:57:57

Salut,

#! /usr/bin/perl

use warnings;
use strict;

my %h = ();
my $entete = <DATA>;
while (<DATA>){
  next unless /^\d/;
  my($cle,$val) = split /\s+/,$_;
  $h{$cle} = $val;
}
print "$entete";
foreach (sort {$a <=> $b} keys %h){
  print "$_ $h{$_}\n";
}
__END__
X Y
1 6

3 22

5 1

0 8

10 258

2 5401
Résultat
[lamitest@localhost corbeille]$ perl a
X Y
0 8
1 6
2 5401
3 22
5 1
10 258
[lamitest@localhost corbeille]$
lami20j

Répondre à lami20j

2

clara, le 1 déc 2008 à 22:42:35

Bonsoir,
j'ai pu voir sur le forum que t'es pas mal calé en perl, alors si tu pouvais m'aider...
en fait je dois trier par ordre croissant une liste prealablement rentrée par l'utilisateur- soit nombre soit des chaines de caracteres - sans utilisé la fonction sort. J'ai vu une solution que tu as deja posté mais j'aimerais savoir si tu connais
avec le tri par bulle.
merci d'avance de ton aide, je m'arrache les cheveux avec ca!!

Répondre à clara

3

 lami20j, le 2 déc 2008 à 18:06:53

Salut,

Le tri par bulle tu le trouves ici http://fr.wikipedia.org/wiki/Tri_%C3%A0_bulles et le code en C peut être adapter très facilement en Perl.
Voici un exemple pour quelques méthode de tri en C http://www.commentcamarche.net/forum/affich 4795788 c tri#2

Si tu vais d'aide il faut donner un peu plus de détails de ce que tu veux faire.

j'ai pu voir sur le forum que t'es pas mal calé en perl, alors si tu pouvais m'aider...
...........
je m'arrache les cheveux avec ca!!


Je ne sais pas si je suis calé en Perl, en revanche, chose sûre, je n'ai plus de cheveux ;-DDD 106485010510997108

Répondre à lami20j