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 :

Remplacement d'une ligne d'un fichier txt par vbs


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
    Janvier 2017
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Bas Rhin (Alsace)

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

    Informations forums :
    Inscription : Janvier 2017
    Messages : 10
    Par défaut Remplacement d'une ligne d'un fichier txt par vbs
    Bonjour,

    je débute en VBS donc excuser moi par avance si j'utilise des termes exotiques.

    Je souhaiterais remplacer une chaine de caractères par une autre ce qui fonctionne en partie mais pas optimale.

    Voici mon code :

    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
    Const ForReading = 1
    Const ForWriting = 2
    dim Version
    dim EngineX64
    engine= "EngineX64_Version=9.100"
    Version = InputBox ("Saisie du num version OfficeScan (ex : 9.800.1009) : ", "NUMERO MOTEUR OFFICESCAN")
    Set objFSO = CreateObject("Scripting.FileSystemObject")
    Set objFile = objFSO.OpenTextFile("D:\Script\test\ofcscan.ini", ForReading)
    strText = objFile.ReadAll
    objFile.Close
    strNewText = Replace(strText, engine, "EngineX64_Version="& Version)
    Set objFile = objFSO.OpenTextFile("D:\Script\test\ofcscan.ini", ForWriting)
    objFile.WriteLine strNewText
     
    objFile.Close

    Cette ligne est bien remplacer avec la saisie de l'utilisateur mais étant donner que "EngineX64_Version=9.100" aura un futur numéro en fonction de la saisie de l'utilisateur (strNewtext), le problème c'est que le nouveau numéro s'ajoutera au précedent et ainsi de suite...

    Avez-vous une astuce pour remplacer toute la ligne par la nouvelle afin que ce script soit réutilisable ?

  2. #2
    Expert confirmé
    Avatar de ProgElecT
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2004
    Messages
    6 130
    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 130
    Par défaut
    Salut pascaldu67, bienvenue sur DVP

    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
    Dim RegularExpressioN
    'Set RegularExpressioN = CreateObject("VBScript.RegExp")
    Set RegularExpressioN = New RegExp
    RegularExpressioN.Pattern ="EngineX[0-9]{1,}_Version=\d[.][0-9]{1,}"
    '
    '
    '
    '
    '
    '
    'strNewText = Replace(strText, engine, "EngineX64_Version=" & Version)
    strNewText = RegularExpressioN.Replace(strText, "EngineX64_Version=" & Version)
    Set RegularExpressioN = Nothing
    Set objFile = objFSO.OpenTextFile("D:\Script\test\ofcscan.ini", ForWriting)
    objFile.WriteLine strNewText
     
    objFile.Close
    Avec le Pattern "EngineX[0-9]{1,}_Version=\d[.][0-9]{1,}", dans la variable strText (EngineX??), peut être 16,32,64,128 ........
    :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
    Rédacteur
    Avatar de omen999
    Profil pro
    Inscrit en
    Février 2006
    Messages
    1 302
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 1 302
    Par défaut
    bonjour,
    et pour chipoter dans le détail... l'objet RegExp est directement accessible en VBS à la différence du VB6 :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Set RegularExpressioN = New RegExp
    nomen omen, nemo non omen - Consultez la FAQ VBScript et les cours et tutoriels VBScript
    le plus terrible lorsqu'une voiture renverse un piéton, c'est que ce sont les freins qui hurlent. (ramón)
    pas de questions techniques par mp

  4. #4
    Expert confirmé
    Avatar de ProgElecT
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2004
    Messages
    6 130
    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 130
    Par défaut
    Re

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    RegularExpressioN.Pattern = "EngineX[0-9]{1,}_Version=[0-9]{1,}[.][0-9]{1,}[.][0-9]{1,}|EngineX[0-9]{1,}_Version=[0-9]{1,}[.][0-9]{1,}"
    car certains cas ne fonctionnaient pas.
    Version peut être composé de N° Principal, N° Secondaire et N° Révision exemple: 1.25.456 ou 12.785 ou encor 7.2
    Le pattern est composé de 2 conditions, EngineX[0-9]{1,}_Version=[0-9]{1,}[.][0-9]{1,}[.][0-9]{1,} et EngineX[0-9]{1,}_Version=[0-9]{1,}[.][0-9]{1,}
    Il agit avec la condition ou le séparateur de ces conditions est donc |
    Si tu veux faire des essais de rédaction du Pattern, une de mes contributions Manipulation de l'objet RegExp

    Citation Envoyé par omen999 Voir le message
    bonjour,
    et pour chipoter dans le détail... l'objet RegExp est directement accessible en VBS à la différence du VB6 :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Set RegularExpressioN = New RegExp
    je ne suis pas surpris d'en apprendre chaque jours la programmation étant si vaste, merci omen999
    :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
    Membre averti
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Janvier 2017
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Bas Rhin (Alsace)

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

    Informations forums :
    Inscription : Janvier 2017
    Messages : 10
    Par défaut GREAT
    Merci à vous car j'étais loin du compte.. J'ai passé des heures sur le net à la recherche de forum et vous d'un trait vous régler mon pb.

    Merci encore

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

Discussions similaires

  1. Commande pour remplacer une ligne dans un fichier.txt
    Par ludobspp dans le forum Tcl/Tk
    Réponses: 1
    Dernier message: 07/11/2013, 08h19
  2. Remplacer une ligne d'un fichier texte par une autre
    Par devalender dans le forum WinDev
    Réponses: 12
    Dernier message: 24/07/2007, 19h51
  3. suprimmer une ligne dans un fichier .txt
    Par Totuch dans le forum Windows Forms
    Réponses: 1
    Dernier message: 06/06/2007, 11h28
  4. supprimer une ligne d'un fichier txt
    Par warubi dans le forum C++
    Réponses: 5
    Dernier message: 10/01/2007, 18h57
  5. extraction d'une ligne d'un fichier txt
    Par tim69000 dans le forum VB 6 et antérieur
    Réponses: 12
    Dernier message: 19/01/2006, 15h28

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