Supprimer les doublons dans un fichier texte en VBScript

21/03/2007

Tags: excel, NTFS, Script, Scripting, Texte, VBScript

Leçon n°1 : Partager cet article pour aider SysKB à se développer

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:

  • Supprimer les doublons dans un fichier texte en VBScript kb  VBScript Texte Scripting Script NTFS excel
  • Supprimer les doublons dans un fichier texte en VBScript kb  VBScript Texte Scripting Script NTFS excel
  • Supprimer les doublons dans un fichier texte en VBScript kb  VBScript Texte Scripting Script NTFS excel
  • Supprimer les doublons dans un fichier texte en VBScript kb  VBScript Texte Scripting Script NTFS excel
  • Supprimer les doublons dans un fichier texte en VBScript kb  VBScript Texte Scripting Script NTFS excel
  • Supprimer les doublons dans un fichier texte en VBScript kb  VBScript Texte Scripting Script NTFS excel
  • Supprimer les doublons dans un fichier texte en VBScript kb  VBScript Texte Scripting Script NTFS excel
  • Supprimer les doublons dans un fichier texte en VBScript kb  VBScript Texte Scripting Script NTFS excel
  • Supprimer les doublons dans un fichier texte en VBScript kb  VBScript Texte Scripting Script NTFS excel
  • Supprimer les doublons dans un fichier texte en VBScript kb  VBScript Texte Scripting Script NTFS excel
  • Supprimer les doublons dans un fichier texte en VBScript kb  VBScript Texte Scripting Script NTFS excel
  • Supprimer les doublons dans un fichier texte en VBScript kb  VBScript Texte Scripting Script NTFS excel

  • http://www.free.fr Ch

    OUAH!!!!!

    Que du bonheur cette fonction.
    Je me demandait comment faire pour vider mon fichier csv généré (45000 lignes dont 90% sont des doublons), je l’ai sorti en 2 temps 3 mouvements.
    Je me voyais déjà lancer des boucles à la noix pour lire les lignes 1 par 1 et chercher leur existence dans le fichier à la suite, total en moins de 10 minutes, c’est ajouté dans mon script de départ.

    ENCORE MERCI

  • JJ Bourgain

    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.