IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VBScript Discussion :

Comparaison fichiers TXT en vbscript


Sujet :

VBScript

  1. #1
    Candidat au Club
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Décembre 2012
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux

    Informations forums :
    Inscription : Décembre 2012
    Messages : 4
    Points : 4
    Points
    4
    Par défaut Comparaison fichiers TXT en vbscript
    Bonjour

    J'ai un petit soucis en VBS
    Je vous explique mon objectif :
    Je dispose de deux fichiers dans lesquels sont listés des chiffres : ex
    Fichier1 Fichier 2
    12 55
    15 66
    656 954
    45 21
    546 655
    22 45
    .... .....

    En fait je voudrai vérifier si les chiffres présents dans le fichier 1 existent dans le fichier 2 !
    Ça parait tout bête mais je tourne en rond.
    Je précise que tous les chiffres présent dans un fichier sont Unique.

    J'ai la trame de ce qu'il faut faire dans ma tête mais je n'arrive pas à la coder :
    - ouvrir les deux fichiers en lecture
    - récupérer les lignes une par une dans chacun des deux fichiers
    - comparer les lignes

    si quelqu'un a une idée, elle est la bienvenue !

    Merci d'avance.

    cordialement

  2. #2
    Nouveau membre du Club
    Profil pro
    Technicien Help Desk
    Inscrit en
    Décembre 2012
    Messages
    23
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Technicien Help Desk

    Informations forums :
    Inscription : Décembre 2012
    Messages : 23
    Points : 29
    Points
    29
    Par défaut
    La version la plus basique possible serait certainement :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
    Option Explicit
    Const ForWriting = 2, ForReading = 1, ForAppending = 8
     
    Dim objFSO, fic1, fic2, fic1_op, fic2_op, fic1_rl, fic2_rl, SortieSansErreur
    fic1 = "FICHIER1.TXT"
    fic2 = "FICHIER2.TXT"
    SortieSansErreur = True
     
    Set objFSO = CreateObject("Scripting.FileSystemObject")
     
    Set fic1_op = objFSO.OpenTextFile(fic1,ForReading)
    Do
    	fic1_rl = fic1_op.ReadLine
    	Set fic2_op = objFSO.OpenTextFile(fic2,ForReading)
    	Do
    		fic2_rl = fic2_op.ReadLine
    	Loop Until fic2_op.AtEndOfStream = True Or fic2_rl = fic1_rl
    	Set fic2_op = Nothing
    	If Not fic2_rl = fic1_rl Then
    		WScript.echo "Le nombre " & fic1_rl & " de " & fic1 & " n'a pas été trouvé dans " & fic2
    		SortieSansErreur = False
    	End If
    Loop Until fic1_op.AtEndOfStream = True 'Or Not fic1_rl = fic2_rl 'Pour sortir de la boucle directement en cas de nombre présent dans fic1 inexistant dans fic2
    Set fic1_op = Nothing
     
    'Attention, il n'y a pas de vérification que tous les nombres présents dans fic2 soient effectivement présents dans fic1,
    'la comparaison se limite à vérifier que tous les nombres dans fic1 sont bien présents dans fic2 !
    If SortieSansErreur Then
    	WScript.echo "Toutes les lignes de " & fic1 & " sont bien présentes dans " & fic2
    Else
    	WScript.echo "Il y a au-moins une ligne de " & fic1 & " qui n'est pas présente dans " & fic2
    End If
     
    Set objFSO = Nothing
    WScript.quit
    Comme indiqué en commentaire, il n'y a pas de vérification sur le contenu de fic2, donc (si fic2 contient plus de lignes) certaines lignes de fic2 peuvent ne pas être présentes dans fic1.

    - Ouvrir un fichier en lecture : Set fic1_op = objFSO.OpenTextFile(fic1,ForReading)
    Ne pas oublier de relâcher l'objet par Set fic1_op = Nothing
    - Récupérer les lignes une par une dans chacun des deux fichiers : une double boucle qui parcoure chaque ligne de fic1 pour la comparer avec les lignes de fic2
    - Comparer les lignes : lire la ligne dans une variable texte (fic1_rl = fic1_op.ReadLine), puis comparer à toutes les autres lignes de fic2 par un fic2_rl(variable)=fic1_rl.

  3. #3
    Candidat au Club
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Décembre 2012
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux

    Informations forums :
    Inscription : Décembre 2012
    Messages : 4
    Points : 4
    Points
    4
    Par défaut excellent !
    C'est exactement ce que je voulais !

    Merci beaucoup pour ton aide.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Comparaison et extraction de ligne de fichier.txt
    Par Gardel dans le forum VBScript
    Réponses: 1
    Dernier message: 09/11/2010, 00h25
  2. Réponses: 1
    Dernier message: 14/08/2008, 14h30
  3. Attribuer la valeur d'une variable à un fichier txt,VBScript
    Par MartinezGarcia dans le forum VBScript
    Réponses: 4
    Dernier message: 12/02/2008, 11h35
  4. fichier.txt comparaison de dates
    Par maniolo dans le forum Langage
    Réponses: 3
    Dernier message: 11/10/2006, 16h14
  5. Réponses: 3
    Dernier message: 29/09/2006, 17h27

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo