Bonjour,
J'ai un souci de compréhension. J'ai deux fichiers identiques. Je veux les comparer des deux sens. Si chaque ligne ds fic1 existe elle bien ds fic2 et le sens inverse.
Mon programme d'un sens il marche très bien ( en utilisant biensur '=~'). Et quand je fais la même procédure de comparaison dans le sens inverse ça ne marche pas. Et pourtant j'utilse les chomp des deux côtés.
Et quand je fais l'operation inverse donc :
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
22
23
24
25
26
27
28
29 sub compare_fic1_fic2 { open (F, "a.txt"); my $ok = 0; while($ligne1 = <F>){ my $test = 0; chomp($ligne1); my $li = $ligne1; open (X, ,"$b.txt"); while($ligne2 = <X>){ chomp($ligne2); $ligne2 =~ s/\[(\d+)\]/\1/; # J'enlève les crochets pour comparer car $ligne1 =~ s/\[(\d+)\]/\1/; # avec crochets la comparaison ne pass pas if ($ligne1 =~ /$ligne2/){ $test = 1; } } close X; if($test == 0) { print "ERROR: $li (fic1) ne se trouve pas dans (fic2)\n\n"; $ok = 1; } } if($ok == 0){ print "pas d'erreur \n\n"; } close F; }
compare_fic2_fic1 avec le même bloc j'échange juste les noms des fichiers , la comparaison ne marche pas. et ça me donen toujours :
la ligne ds fic2 n'existe pas dans fic1.
Peut être quelque chose de futil m'échappe...Merci
Partager