Les boucles en perl

Fermé
karim_khouja Messages postés 50 Date d'inscription lundi 6 avril 2009 Statut Membre Dernière intervention 16 février 2010 - 10 avril 2009 à 10:05
lami20j Messages postés 21331 Date d'inscription jeudi 4 novembre 2004 Statut Modérateur, Contributeur sécurité Dernière intervention 30 octobre 2019 - 10 avril 2009 à 15:36
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

4 réponses

squall289 Messages postés 98 Date d'inscription mardi 31 mars 2009 Statut Membre Dernière intervention 29 mai 2009 13
10 avril 2009 à 10:46
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 ^^
0
karim_khouja Messages postés 50 Date d'inscription lundi 6 avril 2009 Statut Membre Dernière intervention 16 février 2010 3
10 avril 2009 à 12:44
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
0
squall289 Messages postés 98 Date d'inscription mardi 31 mars 2009 Statut Membre Dernière intervention 29 mai 2009 13
10 avril 2009 à 15:02
et bien il suffit alors de faire 2 conditions avec un et : if ($.. > $.. && $.. < $..).
0
lami20j Messages postés 21331 Date d'inscription jeudi 4 novembre 2004 Statut Modérateur, Contributeur sécurité Dernière intervention 30 octobre 2019 3 567
10 avril 2009 à 15:36
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
0