Bonjour,

Je voudrais faire une comparaison entre 2 fichiers textes. J'ai trouvé un script qui effectue très bien cette action. Cependant, la sortie se fait en message box pour chaque différence trouvée.
Je voudrais que l'ensemble du résultat s'écrive dans un nouveau fichier texte.
Pour progresser en script je souhaiterai avoir des indications sur ce qu'il y a à faire mais essayer de trouver la solution par moi-même.

Voici le code de départ :

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
 
Option Explicit
Const ForWriting = 2, ForReading = 1, ForAppending = 8
 
Dim objFSO, fic1, fic2, fic1_op, fic2_op, fic1_rl, fic2_rl, SortieSansErreur
fic1 = "FICHIER1.TXT"
fic2 = "FICHIER2.TXT"
SortieSansErreur = True
 
Set objFSO = CreateObject("Scripting.FileSystemObject")
 
Set fic1_op = objFSO.OpenTextFile(fic1,ForReading)
Do
	fic1_rl = fic1_op.ReadLine
	Set fic2_op = objFSO.OpenTextFile(fic2,ForReading)
	Do
		fic2_rl = fic2_op.ReadLine
	Loop Until fic2_op.AtEndOfStream = True Or fic2_rl = fic1_rl
	Set fic2_op = Nothing
	If Not fic2_rl = fic1_rl Then
		WScript.echo "Le nombre " & fic1_rl & " de " & fic1 & " n'a pas été trouvé dans " & fic2
		SortieSansErreur = False
	End If
Loop Until fic1_op.AtEndOfStream = True 'Or Not fic1_rl = fic2_rl 'Pour sortir de la boucle directement en cas de nombre présent dans fic1 inexistant dans fic2
Set fic1_op = Nothing
 
'Attention, il n'y a pas de vérification que tous les nombres présents dans fic2 soient effectivement présents dans fic1,
'la comparaison se limite à vérifier que tous les nombres dans fic1 sont bien présents dans fic2 !
If SortieSansErreur Then
	WScript.echo "Toutes les lignes de " & fic1 & " sont bien présentes dans " & fic2
Else
	WScript.echo "Il y a au-moins une ligne de " & fic1 & " qui n'est pas présente dans " & fic2
End If
 
Set objFSO = Nothing
WScript.quit
Merci pour votre aide.