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 !

Partagez cet article avec vos amis

Vous avez aimé cet article ? Partagez le avec vos amis en cliquant sur les boutons ci-dessous:

  • Facebook
  • Twitter
  • Google Plus
  • Delicious
  • LinkedIn
  • Viadeo FR
  • Technorati
  • StumbleUpon
  • Add to favorites
  • Email
  • RSS
  • Pinterest

Une réflexion au sujet de « Supprimer 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.

Laissez un commentaire