Awk-perl
Résolu/Fermé
karim_khouja
Messages postés
50
Date d'inscription
lundi 6 avril 2009
Statut
Membre
Dernière intervention
16 février 2010
-
6 avril 2009 à 16:20
karim_khouja Messages postés 50 Date d'inscription lundi 6 avril 2009 Statut Membre Dernière intervention 16 février 2010 - 6 mai 2009 à 16:54
karim_khouja Messages postés 50 Date d'inscription lundi 6 avril 2009 Statut Membre Dernière intervention 16 février 2010 - 6 mai 2009 à 16:54
A voir également:
- Awk-perl
- Denon perl pro test - Guide
- Perl ping ✓ - Forum Perl
- Active perl - Télécharger - Édition & Programmation
- Powershell awk - Forum Shell
- Ps awk ✓ - Forum Debian
75 réponses
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
8 avril 2009 à 13:31
8 avril 2009 à 13:31
Re,
Ce ne sont pas des messages d'erreurs, mais de warnings.
Pourquoi?
Puisque le code que tu essaies ne s'applique pas de la même façon pour toutes les lignes.
De mon côté je ne peux rien faire, puisque je n'ai pas le même environnement que toi.
Déjà pour ajouter plusieurs éléments à un tableau on utilise push ou unshift
Il suffit de faire un truc de genre
106485010510997108
Ce ne sont pas des messages d'erreurs, mais de warnings.
Pourquoi?
Puisque le code que tu essaies ne s'applique pas de la même façon pour toutes les lignes.
De mon côté je ne peux rien faire, puisque je n'ai pas le même environnement que toi.
Déjà pour ajouter plusieurs éléments à un tableau on utilise push ou unshift
Il suffit de faire un truc de genre
open FILE,"/home/sst/Bureau/rtp.txt" or die "E/S : $!\n"; while( defined( $line = <FILE> ) ) { $line =~/^\w+\s(\w+)\s\w+\s(\w+)/; # espace comme séparateur push @table, $2 if $1=60; }--
106485010510997108
karim_khouja
Messages postés
50
Date d'inscription
lundi 6 avril 2009
Statut
Membre
Dernière intervention
16 février 2010
3
8 avril 2009 à 15:24
8 avril 2009 à 15:24
toujours pas solution
j'ai essayer de faire tester si le tableau contien des valeurs ou non
mais sans resultats, je me tombe en panne vraiment j'ai pas compris pourquoi il n'accepte pas tous les essais
$line =~/^\w+\s(\w+)\s\w+\s(\w+)/;
push (my @table, $4 ) if $2 eq '60';
print "@table\n";
$line =~/^\w+\s(\w+)\s\w+\s(\w+)/;
push (my @table, $4 ) if $2 eq '60';
print "my $table[1]\n";
svp c tres urgent Mr,
j'ai essayer de faire tester si le tableau contien des valeurs ou non
mais sans resultats, je me tombe en panne vraiment j'ai pas compris pourquoi il n'accepte pas tous les essais
$line =~/^\w+\s(\w+)\s\w+\s(\w+)/;
push (my @table, $4 ) if $2 eq '60';
print "@table\n";
$line =~/^\w+\s(\w+)\s\w+\s(\w+)/;
push (my @table, $4 ) if $2 eq '60';
print "my $table[1]\n";
svp c tres urgent Mr,
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
8 avril 2009 à 15:29
8 avril 2009 à 15:29
Re,
Envoie ton code et ton fichier complet sur lequel tu fait les tests.
Si confidentiel tu peut mettre les liens cjoint par MP.
Tu n'as toujours pas dit.
Les fichiers viens d'windows?
Je vais regarder ce soir.
Envoie ton code et ton fichier complet sur lequel tu fait les tests.
Si confidentiel tu peut mettre les liens cjoint par MP.
Tu n'as toujours pas dit.
Les fichiers viens d'windows?
Je vais regarder ce soir.
karim_khouja
Messages postés
50
Date d'inscription
lundi 6 avril 2009
Statut
Membre
Dernière intervention
16 février 2010
3
8 avril 2009 à 15:55
8 avril 2009 à 15:55
malheuresement si tu peux m'envoyer ton mail c'est mieux que tu vois le fichier tel qu'il est
car cjoint ne l'affiche pas comme il est
a propos le fichier est ouvert sous linux
car cjoint ne l'affiche pas comme il est
a propos le fichier est ouvert sous linux
karim_khouja
Messages postés
50
Date d'inscription
lundi 6 avril 2009
Statut
Membre
Dernière intervention
16 février 2010
3
8 avril 2009 à 16:01
8 avril 2009 à 16:01
c'est le fichier initial que j'ai fais l'extraction de donnée avec succés
https://www.cjoint.com/?ekfzFr1raU
et celui ci est le second que je vais l'analyser pour faire :
1-) inserer tous les SNBL dans un tableau lorseque $2=='60'
2-) le contenue de ce tableau est en hexadecimal je vais le convertir en decimal
3-) distinguer un saut de 33 entre les SNBL c'est a dire comparer le contenu du tableau 2 à 2 si difference = 33 mettre dans une variable le $SNBL (qui est $4 comme je t'ai dis avant)
https://www.cjoint.com/?ekfIrSOo3q
et cela mon code complet sans l'interface graphique en PERL-GTK2
# !/usr/bin/perl -w
use strict;
use warnings;
open LIRE,"/home/sst/Bureau/karim/capture/louati.txt" or die "fichier in trouvable";
open ECRIRE,">/home/sst/Bureau/rtp.txt\n", or die "E/S : $!\n";
while(<LIRE>)
{
if($. % 4 == 3)
{
my ($data_135,$data_136, $data_138, $data_139, $data_141, $data_142, $data_168, $data_169, $data_171, $data_172) = (split /|/,$_)[135, 136, 138, 139, 141, 142, 168, 169, 171, 172];
print ECRIRE "ligne$. \t $data_135$data_136 $data_138$data_139$data_141$data_142 $data_168$data_169$data_171$data_172 \n";
}
#close (LIRE);
open FILE,"/home/sst/Bureau/rtp.txt" or die "E/S : $!\n";
my $table='';
while( defined( my $line = <FILE> ) )
{
$line =~/^\w+\s(\w+)\s\w+\s(\w+)/; # espace comme séparateur
push (my @table, $4 ) if $2 eq '60';
print "@table\n";
}
https://www.cjoint.com/?ekfzFr1raU
et celui ci est le second que je vais l'analyser pour faire :
1-) inserer tous les SNBL dans un tableau lorseque $2=='60'
2-) le contenue de ce tableau est en hexadecimal je vais le convertir en decimal
3-) distinguer un saut de 33 entre les SNBL c'est a dire comparer le contenu du tableau 2 à 2 si difference = 33 mettre dans une variable le $SNBL (qui est $4 comme je t'ai dis avant)
https://www.cjoint.com/?ekfIrSOo3q
et cela mon code complet sans l'interface graphique en PERL-GTK2
# !/usr/bin/perl -w
use strict;
use warnings;
open LIRE,"/home/sst/Bureau/karim/capture/louati.txt" or die "fichier in trouvable";
open ECRIRE,">/home/sst/Bureau/rtp.txt\n", or die "E/S : $!\n";
while(<LIRE>)
{
if($. % 4 == 3)
{
my ($data_135,$data_136, $data_138, $data_139, $data_141, $data_142, $data_168, $data_169, $data_171, $data_172) = (split /|/,$_)[135, 136, 138, 139, 141, 142, 168, 169, 171, 172];
print ECRIRE "ligne$. \t $data_135$data_136 $data_138$data_139$data_141$data_142 $data_168$data_169$data_171$data_172 \n";
}
#close (LIRE);
open FILE,"/home/sst/Bureau/rtp.txt" or die "E/S : $!\n";
my $table='';
while( defined( my $line = <FILE> ) )
{
$line =~/^\w+\s(\w+)\s\w+\s(\w+)/; # espace comme séparateur
push (my @table, $4 ) if $2 eq '60';
print "@table\n";
}
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
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
8 avril 2009 à 17:00
8 avril 2009 à 17:00
Re,
Oups, je n'ai pas remarqué avant de voir le résultat.
Vu que le séparateur est | je me suis demandé pourquoi tu es obligé d'avoir 10 variables au lieu de 5
En fait au lieu de
split /|/
Il faut mettre
Je t'aiderai pour la suite
Oups, je n'ai pas remarqué avant de voir le résultat.
Vu que le séparateur est | je me suis demandé pourquoi tu es obligé d'avoir 10 variables au lieu de 5
En fait au lieu de
split /|/
Il faut mettre
split /\|/En ce moment j'ai besoin de savoir quels champs tu veux récuperer.
Je t'aiderai pour la suite
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
8 avril 2009 à 17:16
8 avril 2009 à 17:16
Re,
Essaie ce code pour voir si tu obtiens en 1er temps le résultat que tu veux dans rtp.txt
Essaie ce code pour voir si tu obtiens en 1er temps le résultat que tu veux dans rtp.txt
# !/usr/bin/perl use strict; use warnings; # si tu mets ça pas besoin de -w open LIRE,"karim1.txt" or die "fichier in trouvable"; open ECRIRE,">>rtp.txt\n", or die "E/S : $!\n"; while(<LIRE>){ if($. % 4 == 3){ my ($data_1, $data_2, $data_3, $data_4, $data_5) = (split /\|/,$_)[45, 46, 47, 56, 57]; print ECRIRE "ligne$. \t $data_1 $data_2$data_3 $data_4$data_5 \n"; } } close LIRE; close ECRIRE; __END__
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
8 avril 2009 à 17:19
8 avril 2009 à 17:19
Re,
Voici ce que je'obtiens
Voici ce que je'obtiens
lami20j@debian:~/trash$ cat karim3.pl # !/usr/bin/perl -w use strict; use warnings; open LIRE,"karim1.txt" or die "fichier in trouvable"; open ECRIRE,">>rtp.txt\n", or die "E/S : $!\n"; while(<LIRE>){ if($. % 4 == 3){ my ($data_1, $data_2, $data_3, $data_4, $data_5) = (split /\|/,$_)[45, 46, 47, 56, 57]; print ECRIRE "ligne$. \t $data_1 $data_2$data_3 $data_4$data_5 \n"; } } close LIRE; close ECRIRE; #2ème partie open FILE,"rtp.txt" or die "E/S : $!\n"; my @table; while(<FILE>){ /^\w+\s*(\w+)\s*\w+\s*(\w+)/; push @table, $2 if $1 == 60; } print "@table\n"; __END__ lami20j@debian:~/trash$ perl karim3.pl 9341 9342 934b 934c 9355 lami20j@debian:~/trash$ cat rtp.txt ligne3 21 9369 4701 ligne7 21 936a 4701 ligne11 21 936b 4701 ligne15 60 f960 9341 ligne19 60 f961 9342 ligne23 21 936c 4701 ligne27 21 936d 4701 ligne31 60 f962 934b ligne35 60 f963 934c ligne39 21 9376 471f ligne43 21 9377 4701 ligne47 21 9378 4701 ligne51 21 9379 4701 ligne55 21 937a 4701 ligne59 21 937b 471f ligne63 21 937c 4701 ligne67 21 937d 4701 ligne71 21 937e 4701 ligne75 21 937f 4701 ligne79 60 f964 9355 ligne83 21 9380 4701 ligne87 21 9381 4701 ligne91 21 9382 4701 ligne95 21 9383 4701 ligne99 21 9384 4701 ligne103 21 9385 4701 lami20j@debian:~/trash$
karim_khouja
Messages postés
50
Date d'inscription
lundi 6 avril 2009
Statut
Membre
Dernière intervention
16 février 2010
3
8 avril 2009 à 19:07
8 avril 2009 à 19:07
merci bcp oui c'est exactement ca Mr Lami, mais c'est pas ca mon probleme maintenant
ce que je veux c'est :
1-) inserer tous les SNBL(=$4) dans un tableau lorseque $2=='60'
2-) le contenue de ce tableau est en hexadecimal je vais le convertir en decimal
3-) distinguer un saut de 33 entre les SNBL c'est a dire comparer le contenu du tableau 2 à 2 si difference = 33 mettre dans une variable le $SNBL (qui est $4 comme je t'ai dis avant)
ce que je veux c'est :
1-) inserer tous les SNBL(=$4) dans un tableau lorseque $2=='60'
2-) le contenue de ce tableau est en hexadecimal je vais le convertir en decimal
3-) distinguer un saut de 33 entre les SNBL c'est a dire comparer le contenu du tableau 2 à 2 si difference = 33 mettre dans une variable le $SNBL (qui est $4 comme je t'ai dis avant)
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
8 avril 2009 à 19:20
8 avril 2009 à 19:20
Re,
Tu parles de ça (voir en gras)?!
Tu parles de ça (voir en gras)?!
ligne3 21 9369 4701 ligne7 21 936a 4701 ligne11 21 936b 4701 ligne15 60 f960 9341 ligne19 60 f961 9342 ligne23 21 936c 4701 ligne27 21 936d 4701 ligne31 60 f962 934b ligne35 60 f963 934c ligne39 21 9376 471f ligne43 21 9377 4701 ligne47 21 9378 4701 ligne51 21 9379 4701 ligne55 21 937a 4701 ligne59 21 937b 471f ligne63 21 937c 4701 ligne67 21 937d 4701 ligne71 21 937e 4701 ligne75 21 937f 4701 ligne79 60 f964 9355 ligne83 21 9380 4701 ligne87 21 9381 4701 ligne91 21 9382 4701 ligne95 21 9383 4701 ligne99 21 9384 4701 ligne103 21 9385 4701
karim_khouja
Messages postés
50
Date d'inscription
lundi 6 avril 2009
Statut
Membre
Dernière intervention
16 février 2010
3
8 avril 2009 à 21:26
8 avril 2009 à 21:26
c'est exactement ca Mr Lami
se sont les SNBL(s) que je cherche
se sont les SNBL(s) que je cherche
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
9 avril 2009 à 05:56
9 avril 2009 à 05:56
Salut,
Ben, sont là
lami20j@debian:~/trash$ perl karim3.pl
9341 9342 934b 934c 9355
C'est cette partie de code
Quand je t'ai montré le résultat j'ai affiché aussi le contenu de fichier
Exécute le script et tu verras
En fait $1 c'est la capture de deuxième champ qui doit être 60 et $2 c'est la capture de 4ème champ.
Il s'agit en fait des capture faites dans la regex avec les parenthèses (regarde la regex, j'ai mis en gras)
En fait le 1er et le 3ème champ je ne les ai pas capturé. C'est pour ça que le deuxième champ et $1 et le quatrième est $2
Ben, sont là
lami20j@debian:~/trash$ perl karim3.pl
9341 9342 934b 934c 9355
C'est cette partie de code
#2ème partie open FILE,"rtp.txt" or die "E/S : $!\n"; my @table; while(<FILE>){ /^\w+\s*(\w+)\s*\w+\s*(\w+)/; push @table, $2 if $1 == 60; } print "@table\n"
Quand je t'ai montré le résultat j'ai affiché aussi le contenu de fichier
Exécute le script et tu verras
lami20j@debian:~/trash$ cat karim3.pl # !/usr/bin/perl -w use strict; use warnings; open LIRE,"karim1.txt" or die "fichier in trouvable"; open ECRIRE,">>rtp.txt\n", or die "E/S : $!\n"; while(<LIRE>){ if($. % 4 == 3){ my ($data_1, $data_2, $data_3, $data_4, $data_5) = (split /\|/,$_)[45, 46, 47, 56, 57]; print ECRIRE "ligne$. \t $data_1 $data_2$data_3 $data_4$data_5 \n"; } } close LIRE; close ECRIRE; #2ème partie open FILE,"rtp.txt" or die "E/S : $!\n"; my @table; while(<FILE>){ /^\w+\s*(\w+)\s*\w+\s*(\w+)/; # regex push @table, $2 if $1 == 60; } print "@table\n"; __END__ lami20j@debian:~/trash$ perl karim3.pl 9341 9342 934b 934c 9355Oublie $2 et $4 puisqu'il n'y a pas.
En fait $1 c'est la capture de deuxième champ qui doit être 60 et $2 c'est la capture de 4ème champ.
Il s'agit en fait des capture faites dans la regex avec les parenthèses (regarde la regex, j'ai mis en gras)
En fait le 1er et le 3ème champ je ne les ai pas capturé. C'est pour ça que le deuxième champ et $1 et le quatrième est $2
karim_khouja
Messages postés
50
Date d'inscription
lundi 6 avril 2009
Statut
Membre
Dernière intervention
16 février 2010
3
9 avril 2009 à 10:22
9 avril 2009 à 10:22
bonjour mr Lami
c'est exactement ca c'est tres gentil de ta part
je te souhaite tout le bonheur Mr et tu merite vraiment le "king of perl"
merci bcp 1000 fois
c'est exactement ca c'est tres gentil de ta part
je te souhaite tout le bonheur Mr et tu merite vraiment le "king of perl"
merci bcp 1000 fois
karim_khouja
Messages postés
50
Date d'inscription
lundi 6 avril 2009
Statut
Membre
Dernière intervention
16 février 2010
3
9 avril 2009 à 15:14
9 avril 2009 à 15:14
ppp
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
9 avril 2009 à 15:15
9 avril 2009 à 15:15
Re,
De rien ;-)
Ben, je l'ai mis en résolu. Il y a d'(autres problèmes?!
De rien ;-)
Ben, je l'ai mis en résolu. Il y a d'(autres problèmes?!
karim_khouja
Messages postés
50
Date d'inscription
lundi 6 avril 2009
Statut
Membre
Dernière intervention
16 février 2010
3
9 avril 2009 à 16:14
9 avril 2009 à 16:14
j'ai mis les SNBL dans un tableau et les numero de sequence dans un autre
et j'ai les convertis en hexadecimal aussi
maintenant je suis entrain de faire découper le tableau rtp en plusieurs tableaux
for ($i=0; $i<=$#Fec; $i++)
{
if ($Fec[$i+1]-$Fec[$i]==33)
{
my $SNBL = $fec[$i+1];
for($j=0;$j<=$#Rtp;j++)
{
if (Rtp[$j] == $SNBL)
{
for (my $k=$j;my $diff=39;$k++)
{
$diff=$rtp[$k]-$rtp[$j];
push @res,$rtp[$k] if $diff==39;
}
}
}
}
}
chaque matrice contient 40 rtp
en fait supposant que j'ai un tableau rtp qui contient :
RTP[1,2,3,4,5,6,7,8,....,40|41,42,.....,80|81,82....,120|121.....160....]
fec contien ainsi :
FEC[1,2,3,4,5,6,7,8,41,42,43,43,44,45,46,47,48,.....81,...,88.....] les 8 premieres rtp de la matrice
j'espere que tu m'a bien compris
et j'ai les convertis en hexadecimal aussi
while(<LIRE>){ if($. % 4 == 3){ my ($data_1, $data_2, $data_3, $data_4, $data_5) = (split /\|/,$_)[45, 46, 47, 56, 57]; print ECRIRE "ligne$. \t $data_1 $data_2$data_3 $data_4$data_5 \n"; } } close LIRE; close ECRIRE; #2ème partie open FILE,"rtp.txt" or die "E/S : $!\n"; my @fec; my $fec; my @rtp; my $rtp; while(<FILE>){ /^\w+\s*(\w+)\s*(\w+)\s*(\w+)/; # regex push @fec, $3 if $1 == 60; push @rtp, $2 if $1 == 21; } for (my $i=0;$i<=$#fec;$i++) { $fec[$i] = hex($fec[$i]); print "$fec[$i] "; } #print '********\n'; for (my $j=0;$j<=$#rtp;$j++) { $rtp[$j] = hex($rtp[$j]); print "$rtp[$j] "; }
maintenant je suis entrain de faire découper le tableau rtp en plusieurs tableaux
for ($i=0; $i<=$#Fec; $i++)
{
if ($Fec[$i+1]-$Fec[$i]==33)
{
my $SNBL = $fec[$i+1];
for($j=0;$j<=$#Rtp;j++)
{
if (Rtp[$j] == $SNBL)
{
for (my $k=$j;my $diff=39;$k++)
{
$diff=$rtp[$k]-$rtp[$j];
push @res,$rtp[$k] if $diff==39;
}
}
}
}
}
chaque matrice contient 40 rtp
en fait supposant que j'ai un tableau rtp qui contient :
RTP[1,2,3,4,5,6,7,8,....,40|41,42,.....,80|81,82....,120|121.....160....]
fec contien ainsi :
FEC[1,2,3,4,5,6,7,8,41,42,43,43,44,45,46,47,48,.....81,...,88.....] les 8 premieres rtp de la matrice
j'espere que tu m'a bien compris
karim_khouja
Messages postés
50
Date d'inscription
lundi 6 avril 2009
Statut
Membre
Dernière intervention
16 février 2010
3
9 avril 2009 à 16:22
9 avril 2009 à 16:22
les print met les comme des commentaires car je les fait juste pour etre sure du resultat
karim_khouja
Messages postés
50
Date d'inscription
lundi 6 avril 2009
Statut
Membre
Dernière intervention
16 février 2010
3
9 avril 2009 à 17:55
9 avril 2009 à 17:55
# !/usr/bin/perl -w use strict; use warnings; open LIRE,"/home/sst/Bureau/karim/capture/louati.txt" or die "fichier in trouvable"; open ECRIRE,">/home/sst/Bureau/rtp.txt\n", or die "E/S : $!\n"; while(<LIRE>){ if($. % 4 == 3){ my ($data_1, $data_2, $data_3, $data_4, $data_5) = (split /\|/,$_)[45, 46, 47, 56, 57]; print ECRIRE "ligne$. \t $data_1 $data_2$data_3 $data_4$data_5 \n"; } } close LIRE; close ECRIRE; #2ème partie open FILE,"rtp.txt" or die "E/S : $!\n"; my @fec; my $fec; my @rtp; my $rtp; while(<FILE>){ /^\w+\s*(\w+)\s*(\w+)\s*(\w+)/; # regex push @fec, $3 if $1 == 60; push @rtp, $2 if $1 == 21; } for (my $i=0;$i<=$#fec;$i++) { $fec[$i] = hex($fec[$i]); #print "$fec[$i] "; } #print "********\n"; my @res; 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 ) { my $SNBL = $fec[$i+1]; for(my $j=0;$j<=$#rtp;$j++) { if ($rtp[$j] == $SNBL) { for (my $k=$j;my $diff=39;$k++) { $diff = $rtp[$k] - $rtp[$j]; push @res,$rtp[$k] if $diff==39; } } } } } print "@res ";
ces boucles imbriquées continnent encore des erreurs
j'ai fait ceci car j'ai toujours dans chaque matrice(40 rtp) 8 rtp perdus
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 à 10:01
10 avril 2009 à 10:01
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 "@A\n";
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 Mr Lami c'est urgent
je sais que je t'ai derangé mais c'est ma derniere demande
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 "@A\n";
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 Mr Lami c'est urgent
je sais que je t'ai derangé mais c'est ma derniere demande
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 à 11:29
10 avril 2009 à 11:29
Salut,
Je n'ai pas eu le temps de regarder. Je suis au boulot.
J'ai lu un peu, mais je n'ai pas compris ce que tu veux.
J'ai besoin des cas concrets. Ton code est un peu compliquer.
Par exemple pourquoi tu fait
for (my $j=0;$j<=$#rtp;$j++)
au lieu de
Je n'ai pas eu le temps de regarder. Je suis au boulot.
J'ai lu un peu, mais je n'ai pas compris ce que tu veux.
J'ai besoin des cas concrets. Ton code est un peu compliquer.
Par exemple pourquoi tu fait
for (my $j=0;$j<=$#rtp;$j++)
au lieu de
foreach my $j (@rtp){ traitement de $j }Donc explique ce que tu veux obtenir comme résultat (je parle d'un exemple concret) ensuite on verra pour le code.
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 à 12:22
10 avril 2009 à 12:22
Re,
Si on prends le résultat de message 30 http://www.commentcamarche.net/forum/affich 11871775 awk perl?page=2#30
$NBL c'est quoi?
$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}
}
Ca veut dire quoi fini par $NBL+40 ?
Sinon ton code je le vois plutôt
Si on prends le résultat de message 30 http://www.commentcamarche.net/forum/affich 11871775 awk perl?page=2#30
$NBL c'est quoi?
$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}
}
Ca veut dire quoi fini par $NBL+40 ?
Sinon ton code je le vois plutôt
for (@rtp){ if($_ == $A[0]){ # ce que tu veux et je ne comprends pas }