Est-ce possible en perl ?

Est-ce possible en perl ? - Perl - Programmation

Marsh Posté le 15-06-2010 à 08:04:44    

Bonjour,
 
J'ai deux fichiers et je souhaiterai les comparé car beaucoup de ligne (10 000)
Ces deux fichiers on des entêtes et les données sont séparé par des ;
Les trucs c'est que je peux avoir cela
 
fichier 1
colA;colB;colD;
 
fichier 2
colA;colB;colC;colD
 
les entête peuvent etre differente, c'est à dire un fichier peut contenir des colonnes differentes
est-ce possible en perl de faire un truc qui pour le deuxieme fichier,supprime la colonne C ?
 
 
Ensuite pour comparé les fichier, je pensai à faire deux boucle,
la premiere "split" le fichier 1 en fonction des ;
et la deuxieme le fichier 2
et je compare ensuite champs par champs (colA avec ColA puis colB avec colB... et ensuite je passe à la ligne 2..n)
et s'il y a des différence ,je met la ligne dans un fichier, ainsi que les champs qui diffère.
 
qu 'en pensez vous ?
 
Merci
 
 
 
 

Reply

Marsh Posté le 15-06-2010 à 08:04:44   

Reply

Marsh Posté le 15-06-2010 à 08:55:56    

C'est tout a fait faisable.
Selon le degré de contrôle que vous désirez, vous pouvez tout faire a la main, ou bien utiliser des modules.
Jetez un œil ici pour voir comment transformer une ligne d'un CSV en un array: http://forum.hardware.fr/hfr/Progr [...] 9579_1.htm et en particulier le code que je poste a mon avant dernière intervention.
Une fois que vous avez un array pour chaque ligne, vous pouvez utiliser Array::Compare (module à qui on peut dire quelles colonnes sauter dans la comparaison) pour les comparer, ou utiliser la technique de ce module et le faire à la main (concaténation en une chaine des champs non sautés d'un array, avec des^G entre chaque champ, puis comparaison ordinaire des deux chaines obtenues).
A+,


Message édité par gilou le 15-06-2010 à 08:57:20

---------------
There's more than what can be linked! --    Iyashikei Anime Forever!    --  AngularJS c'est un framework d'engulé!  --
Reply

Marsh Posté le 15-06-2010 à 10:17:06    

Merci
ok je vais voir ton poste
et je reviens

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed