j'ai pu extraire en premier lieu les donnés qui m'interesse d'un fichier hexa.text

a l'aide de ces ligne de commandes :

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
# !/usr/bin/perl -w
 
use strict;
use warnings;
 
 
open LIRE,"/home/sst/Bureau/karim/capture/hexa.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";
}
}
ce que je voudrai bien le savoir c'est comment extraire les deux premiers arguments en les concatenant puis convertir ce nombre hexa en decimal

(c'est un bout de resultata) exple :

ligne3 21 a515 4704
ligne7 21 a516 4704
ligne11 21 a517 4704
ligne15 21 a518 4704
ligne19 60 876c a4e4
ligne23 21 a519 4704
ligne27 21 a51a 4704
ligne31 21 a51b 4704
ligne35 60 876d a4e5
ligne39 60 876e a4e6
trouve = false;
while (trouve ==true)
je voudrai exactement analyser la deuxieme colonne
si $2==60
first=hex($4);
chercher d'avantage la seconde apparition de '60' a la colenne 4 ($4)
second = hex ($4);
si (second - first==33)
trouve = true;



pour le moment chui entrain de programmer cette tache
je veux juste un coup de main pour que je puisse continuer
car comme vous le savez chui debutant en perl

merci bcp