Comparaison de fichiers [Perl] - Perl - Programmation
Marsh Posté le 11-07-2017 à 14:03:42
300.000 * 300.000 itérations ca fait beaucoup.
A mon avis il faut que tu arrives à trier tes lignes en amont.
Peu etre en fonction de la balise qui commence ta ligne.
Tu fais une map contenant le nom de la balise suivie des lignes ou elle se trouve. Au lieu d'itérer sur l'ensemble tu compares sur un plus petit sous ensemble.
Après si t'as beaucoup de balises avec des noms différents, c'est la merde.
Marsh Posté le 11-07-2017 à 14:15:01
Merci The_Kid
En fouillant un peu plus sur le net je suis tombé sur Array:Utils.
j'ai donc adapté ça :
Code :
|
Je suis en train de regarder mais à priori ça fait le taf.
Marsh Posté le 12-07-2017 à 00:50:21
Si c'est juste pour savoir quelles lignes de fichier2 ne sont pas dans fichier1 en se moquant de l'ordre des lignes,
Code :
|
Bon, c'est codé à vue, donc SGDG, j'ai pu faire des typos.
Si tu veux vraiment exploiter la structure xml des fichiers, il faudrait plutôt utiliser XML::Diff
A+,
Marsh Posté le 11-07-2017 à 13:14:37
Bonjour,
J'ai besoin de comparer basiquement 2 fichiers XML.
Le principe est si une ligne du xml2 n'est pas dans le xml1 alors j'écris la ligne dans un fichier de résultat.
j'ai écris le code suivant :
Le problème c'est que mes XML font chacun plus de 300 000 lignes et c'est donc très long et gourmand en CPU.
Avez vous une piste pour optimiser ce genre de traitement ?
Par avance merci.