Bonjour,
Je suis actuellement en train de tenter le projet suivant:
Extraire des noms de fichiers vidéos listés dans deux fichiers différents, un xml et un txt, les comparer et remonter les fichiers qui sont dans l'un mais pas dans l'autre et inversement.
j'ai sur ma feuille1(xml) la copie d'un fichier "liste.xml" dans lequel je retrouve une liste de nom de fichier vidéo accompagné d'autre information dans le type :
<camion id="DémontageReservoir.mp4">
<intro>Loading.mp4</intro>
<thumbnail>DémontageReservoir</thumbnail>
</camion>
<camion id="ControleRoutine.avi">
<intro>Loading.mp4</intro>
<thumbnail>ControleRoutine</thumbnail>
</camion>
<voiture id="FiltreaHuile.mp4">
<intro>Loading.mp4</intro>
<thumbnail>FiltreaHuile</thumbnail>
</voiture>
et sur ma feuille2 (txt) la copie d'un txt créé par une commande "dir" qui arrive comme ceci :
03/14/2011 09:43 PM 177,580,193 DemontageReservoir.mp4
03/14/2011 09:44 PM 164,585,906 FiltreaHuile.mp4
03/15/2011 01:49 PM 166,545,186 ControleRoutine.avi
03/14/2011 10:09 PM 434,646,033 VitreAvant.mp4
03/19/2013 07:18 PM 304,451,947 Vidange.mp4
je traite ces deux fichiers afin de récupérer sur une colonne juste le nom des fichiers avec leur extension.
le fichier XML est traité par la ligne
=SI(OU(STXT(A1;NBCAR(A1)-4;3)="mp4";STXT(A1;NBCAR(A1)-4;3)="avi");STXT(A1;CHERCHE("""";A1)+1;NBCAR(STXT(A1;CHERCHE("""";A1)+1;NBCAR(A1)))-2);"")
et affiche le résultat sur la colonne G.
et le fichier txt par la ligne :
=DROITE(A1;NBCAR(A1)-CHERCHE("|";SUBSTITUE(A1;" ";"|";NBCAR(A1)-NBCAR(SUBSTITUE(A1;" ";"")))))
et affiche le résultat sur la colonne H.
j'essaie ensuite d'utiliser une macro vba pour comparer chaque ligne extraite du fichier 1 à chaque ligne du fichier 2.
en gros, mon idée serait :
mes lignes extraites sont toute sur une même colonne pour chaque fichier donc
-faire une boucle qui dur tant que l'on a une valeur dans la colonne "H"
-récupérer cette valeur et la comparer a toute les valeurs récupéré de la même facon dans la feuille2
si on ne trouve pas de correspondance, on envoie dans un fichier la valeur suivie d'un truc genre "n'a pas été trouvé dans le txt"
- faire la même chose dans l'autre sens avec " n'a pas été trouvé dans le xml"..
pour mon module VBA, je suis parti sur un FileSystemObject.
je pense avoir trouvé certaine fonction utile pour mes différents besoin mais aucune certitude:
. récuperer la valeur d'une colonne : cells() mais je ne suis pas sur que la fonction renvoie la valeur contenue dans la cellule
.création du fichier : CreateTextFile() et WriteLine() mais je ne sais pas comment ajouter une ligne sans effacer le début.
Voila ou j'en suis pour le moment. je n'ai pas de nécessité à passer par VBA mais cela me semble obligatoire pour mon projet.
si vous aviez des conseil afin que je ne m'enlise pas dans un truc super lourd, je les écouterais (par mes yeux) avec grand plaisir.
Bonne journée à tous !