Supprimer automatiquement les doublons dans un fichier texte en VBScript

Je vous propose un petit script en VBScript permettant de supprimer toutes les lignes en double dans n’importe quel fichier texte sous Windows (CSV, INI, LOG, TXT, …).

Ce petit script vous évitera d’avoir à importer le fichier texte dans Excel, de créer une macro qui va balayer les lignes pour supprimer les doublons, puis d’exporter à nouveau le document en format texte.

Au delà de la simplicité, le processus est également beaucoup plus rapide qu’en passant par Excel.

Le script permet de modifier le directement le fichier source mais vous pouvez également écrire le résultat dans un nouveau fichier.

Copiez le code suivant dans un fichier portant l’extension .vbs

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

Remplacez c:\namelist_source.txt par le nom du fichier source dans lequel vous souhaitez supprimer des doublons et c:\namelist_cible.txt par le nom du fichier cible.

La source et la cible peuvent être identique si vous souhaitez écraser le fichier d’origine

2 commentaires sur “Supprimer automatiquement les doublons dans un fichier texte en VBScript”

  1. 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.

Laisser un commentaire