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 :

Vbs chercher et remplacer mais pas le texte recherché


Sujet :

VBScript

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Août 2016
    Messages
    29
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

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

    Informations forums :
    Inscription : Août 2016
    Messages : 29
    Par défaut Vbs chercher et remplacer mais pas le texte recherché
    Bonjour,

    N'étant pas trop familiarisé avec le vbs,

    Je souhaite rechercher un texte dans un fichier txt puis remplacer une autre valeur si elle est trouvée sur la même ligne.
    J'ai déjà trouvé ce script sui me permet de remplacer du texte

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Const ForReading = 1
    Const ForWriting = 2
    Set objFSO = CreateObject("Scripting.FileSystemObject" )
    Set objFile = objFSO.OpenTextFile("CHEMIN\FICHIER.TXT", ForReading)
    strText = objFile.ReadAll
    objFile.Close
    strNewText = Replace(strText, "backup", "OK backup")
    Set objFile = objFSO.OpenTextFile("CHEMIN\FICHIER2.TXT", ForWriting)
    objFile.WriteLine strNewText
    objFile.Close
    dans ce scipt, le mot backup est remplacé par OK backup

    ce que je souhaite faire c'est rechercher le mot success et remplacer le mot backup par OK backup en fonction de la réussite de la recherche du mot success.
    exemple :
    backup xxx success
    backup yyy failed

    après modification :
    OK backup xxx success
    backup yyy failed

    cela fait un moment que je cherche sans trouver.

    Merci d'avance pour votre aide !
    batist3

  2. #2
    Expert confirmé
    Avatar de ProgElecT
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2004
    Messages
    6 131
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 69
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Décembre 2004
    Messages : 6 131
    Par défaut
    Salut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Const ForReading = 1
    Const ForWriting = 2
    Set objFSO = CreateObject("Scripting.FileSystemObject" )
    Set objFile = objFSO.OpenTextFile("CHEMIN\FICHIER.TXT", ForReading)
    strText = objFile.ReadAll
    objFile.Close
    If InStr(1, strText, "success", vbTextCompare) <> 0 Then 'si une occurrence été trouvée, une position a été retournée
    	strNewText = Replace(strText, "backup", "OK backup")
    	Set objFile = objFSO.OpenTextFile("CHEMIN\FICHIER2.TXT", ForWriting)
    	objFile.WriteLine strNewText
    	objFile.Close
    End If
    :whistle:pourquoi pas, pour remercier, un :plusser: pour celui/ceux qui vous ont dépannés.
    saut de ligne
    OOOOOOOOO👉 → → Ma page perso sur DVP ← ← 👈

  3. #3
    Membre averti
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Août 2016
    Messages
    29
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

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

    Informations forums :
    Inscription : Août 2016
    Messages : 29
    Par défaut
    Merci pour cette réponse rapide

    Cependant, en faisant le test cela ne fonctionne pas.
    voici le test que j'ai fait

    texte du fichier1.txt
    backup success
    backup failed

    contenu du fichier vbs
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Const ForReading = 1
    Const ForWriting = 2
    Set objFSO = CreateObject("Scripting.FileSystemObject" )
    Set objFile = objFSO.OpenTextFile("C:\Users\Utilisateur\Desktop\fichier1.txt", ForReading)
    strText = objFile.ReadAll
    objFile.Close
    If InStr(1, strText, "success", vbTextCompare) <> 0 Then 'si une occurrence été trouvée, une position a été retournée
    	strNewText = Replace(strText, "backup", "OK backup")
    	Set objFile = objFSO.OpenTextFile("C:\Users\Utilisateur\Desktop\fichier2.txt", ForWriting)
    	objFile.WriteLine strNewText
    	objFile.Close
    End If
    Résultat du fichier2.txt
    OK backup success
    OK backup failed

    le résultat attendu étant :
    OK backup success
    backup failed

    Je me suis trompé quelque part ?

  4. #4
    Expert confirmé
    Avatar de ProgElecT
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2004
    Messages
    6 131
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 69
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Décembre 2004
    Messages : 6 131
    Par défaut
    Essais, ligne 8, avec ce code légèrement modifié
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
        strNewText = Replace(strText, "backup", "OK backup", 1, -1, vbTextCompare)
    :whistle:pourquoi pas, pour remercier, un :plusser: pour celui/ceux qui vous ont dépannés.
    saut de ligne
    OOOOOOOOO👉 → → Ma page perso sur DVP ← ← 👈

  5. #5
    Expert confirmé
    Avatar de ProgElecT
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2004
    Messages
    6 131
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 69
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Décembre 2004
    Messages : 6 131
    Par défaut
    toujours ligne 8
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
        strNewText = Replace(strText, "backup", "OK backup", 1, 1, vbTextCompare)
    comme quoi un moins (le signe - du 6° paramètre) te donnais un + dans le remplacement
    :whistle:pourquoi pas, pour remercier, un :plusser: pour celui/ceux qui vous ont dépannés.
    saut de ligne
    OOOOOOOOO👉 → → Ma page perso sur DVP ← ← 👈

  6. #6
    Membre averti
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Août 2016
    Messages
    29
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

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

    Informations forums :
    Inscription : Août 2016
    Messages : 29
    Par défaut
    Désolé mais cela ne marche toujours pas

    après différents test, ce script permet de vérifier la présence du terme success
    s'i est présent cela modifie toutes les lignes contenant le mot backup
    s'il est absent, le texte n'est pas modifié

    exemple
    fichier1 :
    backup xxx success
    backup yyy failed
    backup zzz success

    vu qu'il y a au moins un success dans le fichier, toutes les lignes seront modifiées avec OK backup
    J'aimerai mettre le OK backup seulement devant les lignes contenant success
    et un autre script avec KO backup failed

    avec tes dernières instructions, cela ne modifie que la première ligne.
    si le texte1 contient :
    backup xxx failed
    backup yyy success

    le résultat sera
    OK backup xxx failed

    Je pense que si il existe une commande pour vérifier ligne par ligne si le terme existe et remplace le mot backup par OK backup, cela fonctionnera
    A priori je vois des références à split mais je ne sais pas si ça a un rapport avec ce que je cherche

    Merci en tout cas de ton intérêt
    je me répète mais je suis novice en vbs.

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

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