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 :

afficher l'indice d'un element d'un tableau


Sujet :

Langage Perl

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    37
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 37
    Par défaut afficher l'indice d'un element d'un tableau
    Bonjour,

    j'aimerai afficher l'indice d'un élément d'un tableau avec perl
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    #!/usr/bin/perl
     
    @tablo=(1,2,3,4,5);
     
    foreach $tablo(@tablo){
            print "$tablo: $#tablo";
    }
    mais c'est pas le cas !! je sai sbien que $#corresponds a l'indice du dernier élément du tableau ! mai sj en esais pas comment le faire.

    merci pour votre aide.

  2. #2
    Expert confirmé
    Avatar de Jedai
    Homme Profil pro
    Enseignant
    Inscrit en
    Avril 2003
    Messages
    6 245
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Avril 2003
    Messages : 6 245
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    @tablo=(1,2,3,4,5);
     
    foreach my $i (0 .. $#tablo){
            print "$tablo[$i] : $i\n";
    }
    --
    Jedaï

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    37
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 37
    Par défaut
    un autre probleme:

    j'ai un tableau d'élement en entré, et pour chaque élément je parcours un fichier pour faire des oreration et a la fin de chaque élément d'un tableau, il faut que je sauvegarde le résultat , donc mon code est le suivant:
    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
    34
    35
    36
    37
    38
    39
    40
    #!/usr/bin/perl
     open FILE, "test2.txt";
     
    @uid=(5, 3, 9);
    @res=();
     
     
    foreach $uid(@uid){ 
     
         while ($line=<FILE>){
     
    	if ($line=~/tcp(.*) uid = $uid[^0-9]/) {
     
    		if ($line=~/\[(.*)\](.*)viens de recevoir le paquet(.*)/) {
                          if (not defined $premierTemps){
    				$premierTemps = $1;
                                  print "$line";
    			}
    			}
    			elsif ($line=~/\[(.*)\](.*)va envoyer  le paquet (.*)/){
    			       if (not defined $deuxiemeTemps){	
    					$deuxiemeTemps = $1;
    			                 print"$line";
    			                 $soustraction = $deuxiemeTemps-$premierTemps;                     
     
                                    }
     
    			 }
     
     
     
    		   }
     
            }
     
    print"$soustraction";                    
     
    }
     
    close FILE;
    le probleme est que il m'affiche le meme resultat 3 fois !!

  4. #4
    Membre chevronné Avatar de iblis
    Inscrit en
    Janvier 2007
    Messages
    510
    Détails du profil
    Informations personnelles :
    Âge : 58

    Informations forums :
    Inscription : Janvier 2007
    Messages : 510
    Par défaut
    Pourquoi veux-tu lire le même fichier 3 fois de suite (ce qu'en fin de compte tu ne fais pas puisqu'il faudrait, par exemple, le fermer et le réouvrir) ?

    Il y a sûrement plus simple.

    PS Tu n'utilises toujours pas le pragma strict (comme je te le suggérais dans un post précédent) : tu vas avoir du mal à faire des scripts qui fonctionnent.

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    37
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 37
    Par défaut
    alors vous suggereé que j'utilise ce strict ou pas ! car je vous comprends pas est ce qeu vous me le recommander ou vous me l'interdit

  6. #6
    Membre chevronné Avatar de iblis
    Inscrit en
    Janvier 2007
    Messages
    510
    Détails du profil
    Informations personnelles :
    Âge : 58

    Informations forums :
    Inscription : Janvier 2007
    Messages : 510
    Par défaut
    Utilise
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    use strict;
    use warnings;

  7. #7
    Membre chevronné Avatar de iblis
    Inscrit en
    Janvier 2007
    Messages
    510
    Détails du profil
    Informations personnelles :
    Âge : 58

    Informations forums :
    Inscription : Janvier 2007
    Messages : 510
    Par défaut
    Si tu veux vraiment parcourir le fichier 3 fois fait comme ça

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    #!/usr/bin/perl
     
    use strict;
    use warnings;
     
    @uid=(5, 3, 9);
     
    foreach $uid(@uid){ 
        open my $file, '<', 'test2.txt'; 
        while ($line=<FILE>){
             # ...
        }
        close $file;
    }
    Mais tu ferais mieux de faire le traitement en une seule lecture.

  8. #8
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    37
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 37
    Par défaut
    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
    #!/usr/bin/perl
    @uid=(0 ,	2 ,	3 ,	5 ,	6 ,	8 ,	9 ,	14 ,	15 ,	16 ,	17 ,	18 ,	19 ,	21 ,	22 ,	23 ,	24 ,	28 ,	29 ,	38 ,	39 ,	42 ,	43 ,	44 ,	45 ,	46 ,	47 ,	48 ,	49 ,	50 ,	51 ,	53 ,	54 ,	56 ,	57 ,	59 ,	60 ,	63 ,	64 ,	68 ,	69 ,	74 ,	76 ,	79 ,	83 ,	84 ,	90 ,	91 ,	95 ,	97 ,	98 ,	103 ,	105 ,	107 ,	108 ,	110 ,	111 ,	112 ,	114 ,	115 ,	116 ,	117 ,	118 ,	120 ,	121 ,	122 ,	123 ,	126 ,	128 ,	129 ,	132 ,	133 ,	136 ,	140 ,	141 ,	143 ,	147 ,	150 ,	152 ,	153 ,	156 ,	157 ,	158 ,	160 ,	162 ,	164 ,	166 ,	167 ,	168 ,	170 ,	171 ,	172 ,	173 ,	174 ,	176 ,	178 ,	179 ,	180 ,	183 ,	184 ,	185 ,	186 ,	187 ,	190 ,	191 ,	194 ,	197 ,	198 ,	200 ,	202 ,	203 ,	206 ,	207 ,	211 ,	212 ,	213 ,	215 ,	221 ,	223 ,	224 ,	225 ,	226 ,	229 ,	230 ,	231 ,	233 ,	237 ,	239 ,	240 ,	241 ,	243 ,	245 ,	251 ,	252 ,	254 ,	255 ,	256 ,	257 ,	260 ,	261 ,	263 ,	266 ,	270 ,	271 ,	279 ,	280 ,	281 ,	282 ,	283 ,	285 ,	286 ,	287 ,	288 ,	289 ,	293 ,	294 ,	296 ,	297 ,	300 ,	301 ,	303 ,	306 ,	307 ,	310 ,	311 ,	314 ,	317 ,	320 ,	321 ,	322 ,	323 ,	326 ,	327 ,	329 ,	334 ,	338 ,	342 ,	343 ,	344 ,	345 ,	347 ,	352 ,	353 ,	354 ,	355 ,	358 ,	359 ,	360 ,	361 ,	366 );
    foreach $uid(@uid){ 
    	 open FILE, "test2.txt"; 
         while ($line=<FILE>){
     
    	if ($line=~/tcp(.*) uid = $uid[^0-9]/) {
     
    		if ($line=~/\[(.*)\](.*)viens de recevoir le paquet(.*)/) {
                          #if (not defined $premierTemps){
    				$premierTemps = $1;
                                  #print "$line";
    			#}
    			}
    			elsif ($line=~/\[(.*)\](.*)va envoyer  le paquet (.*)/){
    			       #if (not defined $deuxiemeTemps){	
    					$deuxiemeTemps = $1;
    			                # print"$line";
    			                 $soustraction = $deuxiemeTemps-$premierTemps;                     
     
                                    #}
     
    			 }
     
     
     
    		   }
     
            }
     
    print" $uid :$soustraction\t";                    
    close FILE;	
    }
    oui ça marche!! merci

Discussions similaires

  1. afficher les elements d'un tableau dans select
    Par koukoya dans le forum Struts 1
    Réponses: 6
    Dernier message: 19/05/2008, 18h44
  2. [Débutant] afficher l'indice sur les labels
    Par feather1 dans le forum Windows Forms
    Réponses: 7
    Dernier message: 26/10/2007, 14h29
  3. Comment faire afficher la position d'un element dans un tableau
    Par IDE dans le forum Algorithmes et structures de données
    Réponses: 4
    Dernier message: 04/11/2006, 12h44
  4. Réponses: 5
    Dernier message: 23/06/2006, 09h50
  5. Afficher un indice de progression dans une console
    Par petdelascar dans le forum C
    Réponses: 2
    Dernier message: 17/05/2006, 14h43

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