IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage Perl Discussion :

Problem avec la fonction sort


Sujet :

Langage Perl

  1. #1
    Candidat au Club
    Inscrit en
    Novembre 2008
    Messages
    2
    Détails du profil
    Informations forums :
    Inscription : Novembre 2008
    Messages : 2
    Par défaut Problem avec la fonction sort
    Bonjour,

    J ai un petit soucis avec la fonction “sort”. Je dois trier plusieurs evenements par date (Voir code ci dessous). Le problème est que, lorsque deux evenements ont la meme date, la fonction sort ne remonte que le premier des deux. Il me manque donc plusieurs evenments lorsque j affiche le resultat. Existe-t-il un moyen pour que les doublons ne soient pas filtrés?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    	my $sorted_detail_transactions = '';
    	if ( ($status_eps eq OK) && ($status_gprs eq OK)  ) {
     
    		my %all_events;
    		my %sorted_events;
    		my @eps_events =  @{$inf->{EventsEPSToDisplay}} ;
    		my @gprs_events =  @{$inf->{EventsGPRSToDisplay}} ;
    		my $event;
    		my $s_date;
     
    		foreach $event (@eps_events) {
    			$all_events{$event->{start_date}} = $event;
    		}
     
    		foreach $event (@gprs_events) {
    			$all_events{$event->{start_date}} = $event;
    		}
     
    		# Because date format is YYYYMMDDHH24MISS, we can sort them as integer
    		foreach $s_date ( sort { $b <=> $a }  keys %all_events) {
    			my $transaction = $gen->data_event(
    						$gen->start_date($all_events{$s_date}->{start_date}),
    						$gen->end_date($all_events{$s_date}->{end_date}),
    						$gen->apn($all_events{$s_date}->{APN})	,
    						$gen->usage_type($all_events{$s_date}->{eps_use_type} || $all_events{$s_date}->{gprs_use_type}),
    						$gen->area($all_events{$s_date}->{area}),
    						$gen->volume($all_events{$s_date}->{volume}),
    						$gen->amount($all_events{$s_date}->{cost_amount}),
    						);
    			$sorted_detail_transactions = $sorted_detail_transactions . $transaction ;
    		}
    		$result_transaction = $sorted_detail_transactions;		
    	}
    Merci de votre aide

  2. #2
    Membre éprouvé
    Avatar de Jasmine80
    Femme Profil pro
    Bioinformaticienne
    Inscrit en
    Octobre 2006
    Messages
    3 157
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 45
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Bioinformaticienne
    Secteur : Santé

    Informations forums :
    Inscription : Octobre 2006
    Messages : 3 157
    Par défaut
    Le problème est que, lorsque deux evenements ont la meme date, la fonction sort ne remonte que le premier des deux.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    foreach $s_date ( sort { $b <=> $a } keys %all_events)
    Ce n'est pas la fonction sort qui supprime les doublons mais le fait que tu utilises les clés d'un hash afin de les stocker. Utilise plutôt un array.

  3. #3
    Candidat au Club
    Inscrit en
    Novembre 2008
    Messages
    2
    Détails du profil
    Informations forums :
    Inscription : Novembre 2008
    Messages : 2
    Par défaut
    Merci bcp pour votre reponse.

    Reste plus qu a implementer tout ca

Discussions similaires

  1. Probleme avec la fonction Ontimer
    Par Djule dans le forum MFC
    Réponses: 8
    Dernier message: 27/11/2005, 17h52
  2. Probleme avec la fonction rename()
    Par TheZenZen dans le forum C
    Réponses: 6
    Dernier message: 08/10/2005, 15h59
  3. [LG] Problème avec la Fonction ReadLn en fin de programme
    Par killermano dans le forum Langage
    Réponses: 6
    Dernier message: 23/07/2005, 15h16
  4. [LG]Probleme avec une fonction
    Par xavier1936 dans le forum Langage
    Réponses: 7
    Dernier message: 08/02/2005, 22h48

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo