Problème de lecture d'un stream dans une boucle
Bonjour à tous,
Je cherche à faire le ménage dans des bases.
Je génère par des script 2 listes comportant des ordinateurs.
Sachant qu'une liste est propre et pas l'autre j'aurais voulu automatisé le processus trouvé les incohérence. Cependant avec mon script lors de la 2e boucle il ne lis qu'une fois le stream du 2e fichier par conséquent, le test ne s'effectue pas correctement.
N'y à t'il pas un moyen simple de réinitialise la boucle?
Cf-ci dessous le code.
Code:
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
| Option Explicit
Const ForReading = 1, ForAppending=8, ForWriting = 2
Const FileAD = "C:\Temp\AD_Computers.txt"
Const FileLanDesk= "C:\Temp\LanDesk_Computers.txt"
Const FicResultat= "C:\Temp\NotFound.txt"
Dim oFSO 'Accès au système de fichier
Dim oFileAD 'Accès au fichier Fichier FileAD
Dim oFileLanDesk 'Accès au fichier FileLanDesk
Dim sLineAD 'Line d'un fichier
Dim sLineLanDesk 'Line fichier LanDesk
Dim oFicResultat 'Accès au fichier Resultat
Set oFSO = CreateObject("Scripting.FileSystemObject")
Set oFicResultat = oFSO.OpenTextFile(FicResultat, ForWriting, True)
Set oFileLanDesk = oFSO.OpenTextFile(FileLanDesk, ForReading)
Set oFileAD = oFSO.OpenTextFile(FileAD, ForReading)
while Not oFileLanDesk.AtEndOfStream
sLineLanDesk = oFileLanDesk.ReadLine
If not sLineLanDesk = Empty Then
while not oFileAD.AtEndOfStream
sLineAD = oFileAD.ReadLine
If Not sLineAD = Empty Then
If sLineLanDesk = sLineAD Then
'oFicResultat.WriteLine("Les valeurs sont égales")
' on ne fait rien
Else
oFicResultat.WriteLine(sLineLanDesk) 'on écrit le nom du pc Fantôme
End If
Else
'oFicResultat.WriteLine("Ligne vide AD")
'on ne fait rien
End If
Wend
Else
'oFicResultat.WriteLine("Ligne vide LanDesk")
' on ne fait rien
End If
Wend
oFileLanDesk.Close
Set oFileLanDesk = Nothing
oFileAD.Close
Set oFileAD = Nothing
oFicResultat.Close
Set oFicResultat = Nothing
msgbox("Process Done...") |
Merci de votre précieuse aide. :)