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

VB.NET Discussion :

Comparer fichier et remplacer


Sujet :

VB.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé Avatar de torrgovin
    Profil pro
    Inscrit en
    Décembre 2009
    Messages
    105
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2009
    Messages : 105
    Par défaut Comparer fichier et remplacer
    Bonjour à tous,

    Je cherche désespérément un script permettant de comparer 1 fichier avec 1 autre, et si le fichier contient une ligne différente, de le remplacer par le nouveau.

    Étant novice, j'ai essayé de modifier des scripts trouvés sur le net, mais sans succès.

    Merci à vous
    Bonne journée

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    154
    Détails du profil
    Informations personnelles :
    Localisation : France, Yvelines (Île de France)

    Informations forums :
    Inscription : Novembre 2006
    Messages : 154
    Par défaut
    Le plus simple :

    Ouvrir ton premier fichier et le charger dans un StringDictionary ou StringCollection.
    Faire de même avec le second.
    Ensuite en parcourrant les collections tu fais tes comparaisons et les permuttations entre les elements que tu souhaites.
    Enfin tu parcourres tes collections pour réécrire ton / tes fichiers.

    C'est ce qu'il y a de plus performant et de plus facile à mettre en place.

    @+

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Décembre 2009
    Messages
    80
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Décembre 2009
    Messages : 80
    Par défaut
    Bonjour,

    Personnellement je compare simplement la signature MD5 du fichier

  4. #4
    Membre Expert Avatar de Danyel
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juillet 2005
    Messages
    1 699
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Juillet 2005
    Messages : 1 699
    Par défaut
    Citation Envoyé par bobo10 Voir le message
    Personnellement je compare simplement la signature MD5 du fichier
    +1

  5. #5
    Membre confirmé Avatar de torrgovin
    Profil pro
    Inscrit en
    Décembre 2009
    Messages
    105
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2009
    Messages : 105
    Par défaut
    Salut à tous
    Merci pour vos conseils.
    En gros voilà ce que je voulais, j'ai reussi à modifier un script trouver sur le net et ça fonctionne.
    En gros si le fichier 1 & 2 ne sont pas les mêmes alors ... Et là j'ai mis les fonctions que je voulais exécuter.

    Merci à vous
    Je vais quand même essayer de voir pour la signature MD5, ça me parait être plus propre.


    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
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
     
    '''''''''''''''''''''''''''''''''''''''''''''''''
    'Fonction Compare
    '''''''''''''''''''''''''''''''''''''''''''''''''
     
    set WshShell = WScript.CreateObject("WScript.Shell")
    DesktopPath = WSHShell.SpecialFolders("Desktop")
     
    '''''''''''''''''''''''''''''''''''''''''''''''''
     
    WScript.Sleep 30000    'Délai d attente de 30 secondes le temps de l'installation de lagent
     
    Set objFSO = CreateObject("Scripting.FileSystemObject")
    Set objSourceFile = objFSO.OpenTextFile("FICHIER 1", 1) ' Fichier 1 a comparer
    Set objSourceFile2 = objFSO.OpenTextFile("FICHIER 2", 1) 'Fichier 2 a comparer
     
    vrNumLigne = 0
     
    Do Until objSourceFile.AtEndOfStream Or objSourceFile2.AtEndOfStream
       vrNumLigne = vrNumLigne + 1
       vrLigne = objSourceFile.ReadLine
       vrLigne2 = objSourceFile2.ReadLine
       vrComprLign = StrComp(vrLigne, vrLigne2, 1)
     
          If vrComprLign = 1 Or vrComprLign = -1 Or IsNull(vrComprLign) Then
                 vrNul = "Les fichiers ne sont pas les mêmes"
     
          Else
          End If
     
    Loop
    objSourceFile.Close
    objSourceFile2.Close
     
    If IsEmpty(vrNul) Then
                    'les fichiers sont identiques alors aucune opération
    Else
                    'les fichiers sont différents alors :
     
                                 'Supression du fichier service.ini par défaut
                    Set aFile = CreateObject("Scripting.FileSystemObject")
                    aFile.DeleteFile("LIEN DE VOTRE FICHIER A SUPPRIMER")
     
                    'Copie du nouveau fichier de config
                    Set fso = CreateObject("Scripting.FileSystemObject")
                    Set aFile = fso.GetFile("LIEN DU FICHIER ORIGINAL A COPIER")
                    aFile.Copy("LIEN DU FICHIER A REMPLACER")
     
                                    'Renommage du fichier de config
                    Set objFSO = CreateObject("Scripting.FileSystemObject")
                    objFSO.MoveFile "LIEN DU FICHIER A RENOMMER" , "NOM DU FICHIER FINAL"
     
     WScript.Sleep 10000    'Délai d attente de 10 secondes le temps de l'installation de lagent
     
                    'lance le fichier executable
                    Set aContact = WScript.CreateObject("WScript.Shell")
                    aContact.Run("LEIN DE VOTRE FICHIER.exe")
    End If

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    154
    Détails du profil
    Informations personnelles :
    Localisation : France, Yvelines (Île de France)

    Informations forums :
    Inscription : Novembre 2006
    Messages : 154
    Par défaut
    Ah Oui c'est bcp mieux le md5 si tu n'as que faire du contenu des fichiers.
    je n'avais pas pensé à ça et je n'y aurais jms pensé
    Je suis toujours partant pour apprendre, vous pouvez me dire en qq lignes comment vous faites pour obtenir le md5 du fichier.

    Un truc style : lecture avec ReadAllText et utilisation de la classe MD5 du System.Security.Cryptography pour obtenir un hash ?

    Pour ce qui est de ton Script, on dirais bien un VB Script...
    C'est pas trés pratique (surtout à debugger) sauf si t'as pas le choix.

    @+

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

Discussions similaires

  1. Fichier MYD remplacé par TMD
    Par fredouille31 dans le forum Outils
    Réponses: 1
    Dernier message: 08/02/2007, 08h47
  2. [Upload] upload de fichier et remplacement de l'ancien
    Par harlock59 dans le forum Langage
    Réponses: 3
    Dernier message: 29/09/2006, 13h53
  3. Importation de fichier texte/ remplacement
    Par catoucat dans le forum Access
    Réponses: 1
    Dernier message: 02/08/2006, 07h29
  4. Comparer fichiers A et B, mettre à jour B
    Par kafifi dans le forum Langage
    Réponses: 6
    Dernier message: 24/06/2006, 14h11
  5. [langage] comparer fichier
    Par pascal.cargouet dans le forum Langage
    Réponses: 10
    Dernier message: 12/10/2004, 12h54

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