Salut à tous
Après plusieurs essais pour extraire des trames dans un fichier de traces je reviens vous voir parce que je bloque(oui encore et toujours aussi mauvais dsl :s)
Donc que je vous explique :p
Mon premier script avait pour but d'extraire des constantes d'un fichier d'entête C, maintenant je dois analyser un fichier de trace en y extractant (?) les trames émises par un matériel (lecteur de carte sans contact).
Mon problème est que le fichier est très long et qu'il y a peu de trames et que la tailles de celles ci est variable:
on peut avoir une trame du genre
FF 08 41 50 50 5F 53 50 49 00
comme une
04 3B 30 32 2F 30 33 2F 30 39 00 31 35 3A 33 37
00 00 00 00 00 01 00
ou voir même une du genre
01 01 01 01 00 75 63 30 30 30 56 30 30 30 41 72
66 30 30 33 56 30 30 32 42 00 43 4C 5F 44 42 52
32 5F 30 30 34 56 31 30 30 45 00 00 00 00 00 01
00 00 00 43 4B 53 00 00 00 00 00 00 00 30 30 31
56 31 30 30 41 00 00 00 00 00 00 00 00 00 00 30
30 30 31 38 34 35 39 00 00 00 00 00 00 00 41 50
50 5F 53 50 49 00 00 00 30 30 31 56 31 30 30 45
00 00 00 00 00 00 00 00 00 00 2D 2D 2F 2D 2D 2F
2D 2D 00 00 00 00 00 00 00 55 4E 4B 4E 4F 57 4E
43 00 00 30 30 31 56 31 30 31 41 00 00 00 00 00
00 00 00 00 00 2D 2D 2F 2D 2D 2F 2D 2D 00 00 00
00 00 00 00
Tout ça pour dire que ca varie:
Donc j'ai commencé mon script en essayant d'extraire des couples de nombres (ou lettres vu que c'est de l'hexa) de cette manière:
donc j'obtiens bien mes trames dans mon fichier texte, sauf que certaines ne sont pas complètes.
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 #englobe le fichier de traces à analyser my $FichierTrace = slurp "traces_brutes\\gcam02.dbg"; #ouvre le fichier où seront affiché les trames open WRITER2, '>', "traces_formatées\\Analyse_traces.txt" or die "Le fichier ne peut être édité !\n"; #explore tout le fichier my @Tableau_trames = $FichierTrace =~ m{ \w{2}\s{1,}\w{2}\s{1,}\w{2}\s{1,}\w{2}\s{1,}\w{2}\s{1,} \w{2}\s{1,}\w{2}\s{1,}\w{2}\s{1,}\w{2}\s{1,}\w{2}\s{1,} \w{2}\s{1,}\w{2}\s{1,}\w{2}\s{1,}\w{2}\s{1,}\w{2}\s{1,} \w{2}\s{1,} }mgix; foreach my $truc(@Tableau_trames) { print WRITER2 $truc; print WRITER2 "\n"; }
et je n'arrive pas à faire un affichage un peux plus propre en fait la j'ai un énorme bloc de chiffres et de lettres et c'est pas facile à analyser ce que fait mon appli.
donc si quelqu'un à des conseils je suis preneur(encore et toujours
)
Merci![]()
Partager