Bonjour,
Je suis actuellement en stage et l'on me demande d'écrire un script en perl pouvant faire la comparaison entre 2 fichier à jour J et jour J-1.
D'en ressortir les différences pour prevenir l'admin d'une éventuelle modification de paramètre d'un individu (ex: date de sortie prorogé) ou d'ajout complet d'une personne.
Les fichiers sont de format txt sous la forme:
Apres avoir chercher sur le forum j'ai fait un premier jet qui ne fonctionne pas (et d'ailleurs qui ne prend pas en compte tout les desirata) en effet il n'arrive pas à comparer chaque valeur entre ";" de chaque fichier avec l'autre.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 Matricule;Sexe;Nom;Prenom;cf;libCF;Date sortie 0072583;MR;MOUGIN;PAUL;011;CARTERS;30; 0075350;MR;GENTILS;PATRICK;011;CARTERS;32; etc...
Pour faire un essai j'essaye juste de comparer les differentes date de sortie
Et depuis je me casse les dents dessus, toutes aides seraient la bienvenue.
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
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48 #!C:\Perl\bin\perl.exe use strict; my @tab=(); my $file="e:/fc.txt"; print "ouverture du fichier Jour J\n"; open(my $fd, $file) or die "$file : $!"; foreach my $line(<$fd>) { chomp($line); my @datas=split(";", $line); print $datas[6]."\n" } system "pause \n"; close($fd); print "ouverture du fichier Jour J-1\n", my @tab1=(); my $file="e:/fc1.txt"; open(my $fd, $file) or die "$file : $!"; foreach my $line(<$fd>) { chomp($line); my @datas1=split(";", $line); print $datas1[6]."\n" } system "pause \n"; close($fd); print "comparaison des 2 fichiers\n"; system "pause \n"; if (@tab != @tab1){print "Il y a eu ajout d'utilisateur \n";} else {print "Pas d'ajout dans la base de donnee\n";} system "pause \n"; if ( $tab[6] != $tab1[6] || $tab[6] ne $tab1[6] ){print "Il y a une modification de la date de sortie \n";} else {print "Pas de modification de la date de sortie\n";} system "pause \n";
merci d'avance
[Edit]
Balises [ code ] et [ /code ] ajoutées par 2Eurocents.
Merci d'y penser pour améliorer la lisibilité du forum
[/Edit]
Partager