Les boucles en perl
Fermé
karim_khouja
Messages postés
50
Date d'inscription
Statut
Membre
Dernière intervention
-
lami20j Messages postés 21331 Date d'inscription Statut Modérateur, Contributeur sécurité Dernière intervention -
lami20j Messages postés 21331 Date d'inscription Statut Modérateur, Contributeur sécurité Dernière intervention -
Bonjour,
ce code là
my @A;
for (my $j=0;$j<=$#rtp;$j++)
{
$rtp[$j] = hex($rtp[$j]);
#print "$rtp[$j] ";
}
for (my $i=0; $i<=$#fec; $i++)
{
if ( $fec[$i+1] - $fec[$i] == 33 )
{
push @A, $fec[$i+1];}}
print "@An";
ici j'ai reussis a faire extraire tout les rtp==fec et j'ai les mis dans un tableau @A
ce pendant je veux , pour le moment
$SNBL=$A[0];
for (my $j=0; $j<=$#rtp;$j++)
{
if ($rtp[$j]==$SNBL)
{ # je veux chercher les dans le tableau rtp tout les rtp qui commence par $SNBL et fini par $SNBL+40}
}
please je vous en pris c'est urgent
ce code là
my @A;
for (my $j=0;$j<=$#rtp;$j++)
{
$rtp[$j] = hex($rtp[$j]);
#print "$rtp[$j] ";
}
for (my $i=0; $i<=$#fec; $i++)
{
if ( $fec[$i+1] - $fec[$i] == 33 )
{
push @A, $fec[$i+1];}}
print "@An";
ici j'ai reussis a faire extraire tout les rtp==fec et j'ai les mis dans un tableau @A
ce pendant je veux , pour le moment
$SNBL=$A[0];
for (my $j=0; $j<=$#rtp;$j++)
{
if ($rtp[$j]==$SNBL)
{ # je veux chercher les dans le tableau rtp tout les rtp qui commence par $SNBL et fini par $SNBL+40}
}
please je vous en pris c'est urgent
4 réponses
Je ne vois pas vraiment ce que tu veux dire en fait...
Tu cherche à extraire d'un tableau les valeurs $SNBL et $SNBL+40 ?
Il te suffit de faire un && dans ta boucle pour que cela fonctionne. Je ne t'ai pas compris quand tu dis "qui commence par.. et finisse par".
Sinon ce que tu écris n'es pas vraiment du perl, il faudrait utiliser des boucles du type foreach $i ($SNLB) par exemple, c'est beaucoup plus efficace dans ce langage. Mais ce que tu fais fonctionne aussi bien sur ^^
Tu cherche à extraire d'un tableau les valeurs $SNBL et $SNBL+40 ?
Il te suffit de faire un && dans ta boucle pour que cela fonctionne. Je ne t'ai pas compris quand tu dis "qui commence par.. et finisse par".
Sinon ce que tu écris n'es pas vraiment du perl, il faudrait utiliser des boucles du type foreach $i ($SNLB) par exemple, c'est beaucoup plus efficace dans ce langage. Mais ce que tu fais fonctionne aussi bien sur ^^
J'ai parcouru le tableau fec et j'ai fait une condition
si $fec[$i=1]-$fec[$i] == 33 car je cherche le premier saut de 33 pas car le tableau contient des numero consecutive et puis il fait un saut de 33 chaque fois
expl @fec: [1,2,3,4,5,6,7,8,41,42,43,44,45,46,47,48,81,82....]
j'ai mis [1,41,81...] dans un tableau que j'ai appeler @A se sont les tetes de Matrice
j'ai initialiser une valeur $SNBL = $A[5] ==> je vais prendre une tete de matrice quelquonque du tableau @A
maintenant je veux parcourir le tableau @rtp et chercher dans sont contenu une valeur egale a $A[5]
il va le trouver surement
mais je veux avoir dans un dernier tableau resultat toutes les valeurs allant de $SNBL jusqu'a $SNBL+39
ce tableau contient tout les elements de la matrice rtp mais a cette matrice on va trouver aussi 8 ou plus rtp perdus
normalement je vais trouver 32 valeurs mais pas toujours
si $fec[$i=1]-$fec[$i] == 33 car je cherche le premier saut de 33 pas car le tableau contient des numero consecutive et puis il fait un saut de 33 chaque fois
expl @fec: [1,2,3,4,5,6,7,8,41,42,43,44,45,46,47,48,81,82....]
j'ai mis [1,41,81...] dans un tableau que j'ai appeler @A se sont les tetes de Matrice
j'ai initialiser une valeur $SNBL = $A[5] ==> je vais prendre une tete de matrice quelquonque du tableau @A
maintenant je veux parcourir le tableau @rtp et chercher dans sont contenu une valeur egale a $A[5]
il va le trouver surement
mais je veux avoir dans un dernier tableau resultat toutes les valeurs allant de $SNBL jusqu'a $SNBL+39
ce tableau contient tout les elements de la matrice rtp mais a cette matrice on va trouver aussi 8 ou plus rtp perdus
normalement je vais trouver 32 valeurs mais pas toujours
Salut,
Merci de ne pas faire des doublons.
Tu as aussi une réponse ici
http://www.commentcamarche.net/forum/affich 11871775 awk perl?page=3#43
Merci de ne pas faire des doublons.
Tu as aussi une réponse ici
http://www.commentcamarche.net/forum/affich 11871775 awk perl?page=3#43