Supprimer les doublons dans un fichier texte en VBScript
Vous avez besoin parfois d’exporter diverses informations (listes d’utilisateurs, droits d’accès NTFS d’une ressource, liste d’objets divers etc…) dans un format texte (.CSV, .LOG ou encore .TXT ), mais votre fichier d’export est envahit d’une multitude de lignes en doubles …
Plutôt que d’importer le fichier texte dans Excel puis de créer une macro qui va balayer les lignes et supprimer les doublons, puis d’exporter à nouveau le document en format texte avant de le réintégrer dans une applications tiers, je vous propose de le faire directement en VB Script. C’est simple, rapide, et tout ce fait directement en mémoire vive, sans passer par un fichier tampon. Vous avez la possibilité de réécrire dans le fichier texte source ou d’écrire dans un nouveau fichier afin de ne pas modifier la source.
Const ForReading = 1
Const ForWriting = 2
Set objDictionary = CreateObject("Scripting.Dictionary")
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objFile = objFSO.OpenTextFile _
("c:\namelist_source.txt", ForReading)
Do Until objFile.AtEndOfStream
strName = objFile.ReadLine
If Not objDictionary.Exists(strName) Then
objDictionary.Add strName, strName
End If
Loop
objFile.Close
Set objFile = objFSO.OpenTextFile _
("c:\namelist_cible.txt", ForWriting)
For Each strKey in objDictionary.Keys
objFile.WriteLine strKey
Next
objFile.Close
Ou c:\namelist_source.txt correspond au nom du fichier source et c:\namelist_cible.txt au nom du fichier cible.
La source et la cible peuvent être identique !
Dans le même esprit ...
Commentaires
One Response to “Supprimer les doublons dans un fichier texte en VBScript”
Déposez votre commentaire

Bonjour,
Ce script fonctionne sur les fichiers cr�es sous un �diteur.
Si je cr�e un fichier en VB comme suit :
Set wshshell = CreateObject(”wscript.shell”)
Set Fic_monfic = fso.CreateTextFile(monfic, ForWriting, True)
Fic_monfic.WriteLine “AAAA”
…. etc
les doublons sont supprim�s mais le retour est sur une seule ligne avec des s�parateurs ‘carr�s’ .
AAAA � � � � � �CCC � � � � DD � �
� repr�sentant un carr�.
Comment puis-je r�gler ce probl�me de format dans ce script ?
Merci de vos r�ponses.