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 chaine de caractères


Sujet :

VBScript

  1. #1
    Membre à l'essai
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Mars 2013
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Corrèze (Limousin)

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

    Informations forums :
    Inscription : Mars 2013
    Messages : 6
    Points : 10
    Points
    10
    Par défaut Comparaison chaine de caractères
    Bonjour,

    Je viens vers vous car je suis actuellement en train de réaliser des scripts batch et shell mais la je me retrouve bloqué et j'ai besoin de votre aide .

    Enfaite, j'ai besoin de réaliser une comparaison des 32 premiers caractères de 2 fichiers ".txt" (résultat d'un hash MD5). Cette comparaison ne doit pas prendre en compte les majuscules et les minuscules mais uniquement les 32 premiers caractères de mes fichiers.

    Dans le cas ou la comparaison est validée, le script s'arrête et on sort du programme. Si la comparaison n'est pas identique, un email doit m'être envoyé pour m'informer de l'erreur (pour cette partie je devrais m'en sortir).

    Pouvez-vous m'aider dans la réalisation de ce script qui semble bateau mais qui me bloque complet dans l'avancement de mon projet n'ayant jamais fais de programmation vbs?

    Merci d'avance à tous les membres,
    yoyohand

  2. #2
    Expert éminent
    Avatar de hackoofr
    Homme Profil pro
    Enseignant
    Inscrit en
    Juin 2009
    Messages
    3 839
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Juin 2009
    Messages : 3 839
    Points : 9 222
    Points
    9 222
    Par défaut

    postez vos 2 fichiers textes

  3. #3
    Membre à l'essai
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Mars 2013
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Corrèze (Limousin)

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

    Informations forums :
    Inscription : Mars 2013
    Messages : 6
    Points : 10
    Points
    10
    Par défaut
    Bonjour Hackoo,

    Désolé de la réponse tardive, mais le week-end pas d'informatique .
    Je t'ai mis en pièces jointes mes 2 fichiers textes en question.

    Merci d'avance pour ton aide!!
    Yoyohand
    Fichiers attachés Fichiers attachés

  4. #4
    Expert éminent
    Avatar de hackoofr
    Homme Profil pro
    Enseignant
    Inscrit en
    Juin 2009
    Messages
    3 839
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Juin 2009
    Messages : 3 839
    Points : 9 222
    Points
    9 222
    Par défaut

    Juste pour le test , mettez les deux fichiers textes avec ce script dans un même dossier et exécutez-le
    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
    File2Compare "administrationcpio.txt","ciemecpio.txt"
     
    Function File2Compare(File1,File2)
    Const ForReading = 1, ForWriting = 2 
    Dim objFSO,objSourceFile,objSourceFile2
    Titre ="Fichier à Comparer" 
    Dim bFileNotFound
    bFileNotFound = False
    Set objFSO = CreateObject("Scripting.FileSystemObject")
    If Not objFSO.FileExists(File1) Then
        MsgBox "Le Fichier N°1 n'existe pas, il faut choisir le Fichier N°1",VbExclamation,Titre
        bFileNotFound = True
    ElseIf Not objFSO.FileExists(File2) Then
        MsgBox "Le Fichier N°2 n'existe pas, il faut choisir le Fichier N°2",VbExclamation,Titre
        bFileNotFound = True
    End If
    If Not bFileNotFound Then
    Set objSourceFile = objFSO.OpenTextFile(File1, ForReading)  'Fichier Original
    Set objSourceFile2 = objFSO.OpenTextFile(File2, ForReading) 'Fichier Modifié 
    vrNumLigne = 0
     
       vrNumLigne = vrNumLigne + 1
       vrLigne = objSourceFile.ReadAll
       Tab1 = Split(vrLigne," ")
       vrLigne2 = objSourceFile2.ReadAll
       Tab2 = Split(vrLigne2," ")
       vrComprLign = StrComp(Tab1(0),Tab2(0), 1)
     If vrComprLign = 1 Or vrComprLign = -1 Or IsNull(vrComprLign) Then
       vrNul = "Le fichier n'a pas été modifié"
       vrLignDif = vrLignDif & vrNumLigne & ": " & vrLigne & vbCrLf & vrNumLigne & ": " & vrLigne2 & vbCrLf & vbCrLf
     End If
     
    objSourceFile.Close
    objSourceFile2.Close
    If IsEmpty(vrNul) Then
      MsgBox "Le fichier n'a pas été modifié ,les deux Fichiers sont identiques !",64,Titre
    Else
      'MsgBox vrLignDif,64,Titre
                 Dim fso, f 
                 Set fso = CreateObject("Scripting.FileSystemObject") 
                 Set f = fso.OpenTextFile("comparaison.txt", ForWriting,true)
                 f.WriteLine String(120,"*")
    f.writeline "Résultat de la Comparison entre le fichier " & File1 & " et le fichier "& File2 & vbNewLine    
    f.WriteLine String(120,"*")         
                 f.writeline(vrLignDif)
                 f.close
                 OpenLog("comparaison.txt")
    End If
    End If
    End Function
     
    Sub OpenLog(File)
    Dim ws
    Set ws = CreateObject("wscript.shell")
    ws.run "Notepad " & File,1,False
    Set ws = Nothing
    End Sub

  5. #5
    Membre émérite

    Homme Profil pro
    Ingénieur Réseaux
    Inscrit en
    Juin 2012
    Messages
    877
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur Réseaux
    Secteur : Conseil

    Informations forums :
    Inscription : Juin 2012
    Messages : 877
    Points : 2 427
    Points
    2 427
    Par défaut
    Bonjour,

    Pour le mail,
    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
    'FONCTION ENVOI MAIL
    Function SendMail(strTo, strBody, strTitre)
    Set objMail = CreateObject("CDO.Message")
    Set objConfig = CreateObject("CDO.configuration")
    Set objFields = objConfig.Fields
               With objFields
    			.Item("http://schemas.microsoft.com/cdo/configuration/SendUsing")= 2 'Définit le type d'envoi en SMTP
    			'Serveur Mail Interne
    			.Item("http://schemas.microsoft.com/cdo/configuration/smtpserver")= "@ IP"
    			.Item("http://schemas.microsoft.com/cdo/configuration/SMTPServerPort")= 25
    			.Update
    	End With
    	With objMail
    			Set .Configuration = objConfig
    			.To = strTo 'Destinataire
    			.Cc = strCc
    			.Bcc = strBcc
    			.AddAttachment("chemin")
    			.From = "Adresse Expéditeur"
    			.Subject = strTitre
    			.HTMLBody = strBody 'Message
    			.Send
    	End With
    End Function
    Si la réponse vous a été donnée, pensez au Tag .
    Un petit aide à se sentir utile. Merci.

    "La folie. C'est de faire et refaire la même chose en espérant que le résultat sera différent."
    Albert Einstein

  6. #6
    Membre à l'essai
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Mars 2013
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Corrèze (Limousin)

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

    Informations forums :
    Inscription : Mars 2013
    Messages : 6
    Points : 10
    Points
    10
    Par défaut
    Bonjour Miistik et Hackoofr,

    Tout d'abord merci beaucoup pour votre support et les scripts que vous me mettez à disposition .
    Alors avec le script de Hackoofr je rencontre quelques petits soucis.
    Lorsque je lance le script à la suite de mon bat avec la commande cscript j'ai un message d'erreur qui me dit qu'il ne trouve pas le premier fichier alors qu'il a été créé quelques secondes auparavant dans le même dossier que le script.
    J'ai essayé de faire un ping avec un résultat nul que ma commande cscript se lance pour réaliser une pause de quelques secondes, même erreur .

    Sinon, quand je lance le script manuellement ça fonctionne impeccable .
    Cependant je souhaiterai qu'il n'y ai pas de fenêtre qui s'affiche. Je pensais à quelque chose d'encore plus simple ; quand la comparaison est validé rien ne s'affiche et le script se termine et si c'est pas le cas, créer et indiquer dans un fichier texte comme tu l'as fait le résultat de la comparaison ("comparaison.txt"). En gros supprimer les pop-ups qui indique si ça a marché ou non, et indiquer dans le fichier texte "comparaison.txt" si il y a une erreur dans le chargement d'un des fichiers.
    Et dans un second temps, dans le cas d'une comparaison négative, je réaliserai la fonction de mail en ajoutant en pièce jointe le fichier texte du résultat de la comparaison.

    Miistik, je n'ai pas encore eu l'occasion de tester ton script, je m'y colle demain si j'ai le temps !!!

    Bonne fin de journée et encore merci,

  7. #7
    Expert éminent
    Avatar de hackoofr
    Homme Profil pro
    Enseignant
    Inscrit en
    Juin 2009
    Messages
    3 839
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Juin 2009
    Messages : 3 839
    Points : 9 222
    Points
    9 222
    Par défaut

    comment-vous générer les fichiers par le fichier bat si vous pouvez poster le batch pour mieux comprendre les choses

  8. #8
    Membre à l'essai
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Mars 2013
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Corrèze (Limousin)

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

    Informations forums :
    Inscription : Mars 2013
    Messages : 6
    Points : 10
    Points
    10
    Par défaut
    Voila les deux scripts batch:
    deb_lundi.txt est le batch qui se lance pas défaut et qui durant son traitement appelle par un "call" l'autre script pour la transaction FTP.

    Les 2 fichiers textes ne sont pas générés par le bat.
    Le premier (ciemecpio.txt) est généré par une commande shell qui exécute un MD5 sur le fichier stocké sur un serveur Linux.
    30 min après son exécution (Tous mes scripts se lancent en tâches planifiées), le résultat du MD5 (ciemecpio.txt) et le fichier concerné (ciemecpio.gz) sont transférés par FTP sur un autre serveur.
    Après avoir réceptionné le fichier par FTP, j'exécute sur le 2nd serveur (fonctionne sous OS Miscrosoft) une nouveau contrôle de la somme MD5 et après, j'appelle le script de comparaison que vous m'avez réalisé pour comparer la somme des 2 fichiers textes.
    Mes scripts s'exécutent dans cet ordre: deb_lundi => lanceftplun => Lundi => deb_lundi (on retourne au premier script quand la transaction FTP est terminée)
    Est-ce plus claire?

    En pièce jointes les scripts bat au format txt.
    Fichiers attachés Fichiers attachés

Discussions similaires

  1. Comparaison chaine de caractère dans deux fichiers différents
    Par ghostrider95 dans le forum Shell et commandes GNU
    Réponses: 5
    Dernier message: 09/02/2011, 20h25
  2. Comparaison chaines de caractères
    Par Invité dans le forum VBA Access
    Réponses: 2
    Dernier message: 07/11/2008, 13h56
  3. Réponses: 12
    Dernier message: 08/07/2008, 16h53
  4. comparaison chaines de caractères
    Par tom31 dans le forum C
    Réponses: 1
    Dernier message: 09/02/2008, 10h56
  5. Comparaison chaines de caractères
    Par mmarcoboss dans le forum C
    Réponses: 6
    Dernier message: 19/12/2006, 16h15

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