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]Gestion des chaînes de caractères


Sujet :

VBScript

  1. #1
    Inactif
    Inscrit en
    Janvier 2006
    Messages
    202
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 202
    Points : 70
    Points
    70
    Par défaut [VBS]Gestion des chaînes de caractères
    Bonjour, j'ai besoin de créer un vbs qui remplace une chaîne de caractères par une autre dans un fichier .txt, mais je ne connait rien en vbs, y t il des gens ici qui savent faire sa ?

  2. #2
    Expert éminent sénior


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Points : 20 038
    Points
    20 038
    Par défaut
    tu peu utiliser
    replace : pour les "remplacement"
    et fileSystem object pour lecture/ecriture fichier ...

    ce qui peu donner le sript .vbs :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    Const ForReading = 1, ForWriting = 2, ForAppending = 8
    Dim fso, f
    Dim st
    Set fso = CreateObject("Scripting.FileSystemObject")
     
    'Ouverture et lecture du fichier à modifier
    Set f = fso.OpenTextFile("c:\temp\ecr.txt", ForReading)
    st = f.readAll
    f.Close
     
    'ecriture du fichier modifier... aprés avoir remplacer "Salut" par "bonjour"..
    Set f = fso.OpenTextFile("c:\temp\ecr.txt", ForWriting)
    f.Write replace(st,"Salut","bonjour")
    f.close

  3. #3
    Rédacteur
    Avatar de DarkVader
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2002
    Messages
    2 130
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2002
    Messages : 2 130
    Points : 3 118
    Points
    3 118
    Par défaut
    Bonjour,
    Cette question a déjà été abordée de nombreuses fois - je vous rappelle les régles d'utilisation des forums
    et que ceux-ci n'ont vocation à répondre qu'à des questions techniques précises ne trouvant pas de réponse sur le site soit par le biais :
    * des Faq & Tutoriels
    * soit de la fonction Recherche avancée sur le forum
    mot clé : remplacer+texte (par exemple)

    Merci d'y penser la prochaine fois afin de ne pas surcharger inutilement la base de données servant de support à la fonction de recherche.

  4. #4
    Inactif
    Inscrit en
    Janvier 2006
    Messages
    202
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 202
    Points : 70
    Points
    70
    Par défaut
    Bonjour bbil , merci se script est parfait

    Bonjour modo ok j'y pensserai la prochaine foie

    Je voudrai apporter une petite modification a se script, j'ai commencer un vbs qui ouvre une boite de dialogue pour selectionner un fichier sur le disque dur, voici le code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    ' Simple Code pour le choix d'un fichier
    Set oUA = CreateObject("UserAccounts.CommonDialog")
    '
    ' Affichage de la boite de dialogue
    x = oUA.ShowOpen
    '
    ' x renvoie 0 si l'utilisateur n'a pas choisi de fichier
    wscript.echo x
    '
    ' oUA.FileName est NULL si pas de fichier selectionne
    wscript.echo oUA.FileName
    Il marche normalement, donc je voudrai une foie que j'ai selectioner un fichier utiliser la variable FileName dans le script de remplacement de chaine de caractère pour désigner le fichier sur le quel agir, voila mon code test:
    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
    ' Simple Code pour le choix d'un fichier
    Set oUA = CreateObject("UserAccounts.CommonDialog")
    '
    ' Affichage de la boite de dialogue
    x = oUA.ShowOpen
    '
    ' x renvoie 0 si l'utilisateur n'a pas choisi de fichier
    wscript.echo x
    '
    ' oUA.FileName est NULL si pas de fichier selectionne
    wscript.echo oUA.FileName
    '
    '
    '
    '''' La variable ci dessous devra récupérer le fichier pris en paramètre par la boite
    '''' de dialogue de selection de fichier:
    '
    Set fich1747 = (FileName.Run)
    '
    '
    Const ForReading = 1, ForWriting = 2, ForAppending = 8 
    Dim fso, f 
    Dim st 
    Set fso = CreateObject("Scripting.FileSystemObject") 
     
    'Ouverture et lecture du fichier à modifier 
    Set f = fso.OpenTextFile("FileName", ForReading) 
    st = f.readAll 
    f.Close 
     
    'ecriture du fichier modifier... aprés avoir remplacer "Salut" par "bonjour".. 
    Set f = fso.OpenTextFile("FileName", ForWriting) 
    f.Write replace(st,"chaine1","chaine2") 
    f.close
    Ici j'ai remplacer le nom du fichier.txt par la variebl filename, mais se code me renvoie une erreur, voici la capture de l'erreur:

  5. #5
    Expert éminent sénior


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Points : 20 038
    Points
    20 038
    Par défaut
    Déjà si filename est ta variable il ne faut pas la mettre entre "" ..
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Set f = fso.OpenTextFile("FileName",

    ensuite j'ai pas bien comris ce que tu fais avec
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Set fich1747 = (FileName.Run)
    ?

    cette ligne ne te epermet-'elle pas d'afficher le nom complet ( avec chemin) du fichier :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    wscript.echo oUA.FileName
    utilise la oUA.FileName ... comme variable... ( il faut peu être y rajouter le chemin ... je vérifie...

  6. #6
    Inactif
    Inscrit en
    Janvier 2006
    Messages
    202
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 202
    Points : 70
    Points
    70
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Set fich1747 = (FileName.Run)
    S'été pour récupérer la variable dans une autre variable mais je l'ai enlever, s'est inutile.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    wscript.echo oUA.FileName
    Affiche bien le nom et le chemin du fichier.

    Avec oUA.FileName sa va mieux, mais dans le fichier selcetioner la chaîne de caractère que je veut supprimer est à la foie sur plusieur ligne, le script ne remplace que sur une ligne, faut-il que je fasse une boucle ?
    Par ce que je ne sais pas comment faire une boucle.

  7. #7
    Expert éminent sénior


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Points : 20 038
    Points
    20 038
    Par défaut
    est tu sur que le remplacement n'est effectué qu'une fois ? ce n'est pas plutôt un probléme majuscule/minuscule....?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    replace(st,"chaine1","chaine2")
    equivaut à
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    replace(st,"chaine1","chaine2",1,-1,0)
    le -1 ..étant la pour effectuer tous les remplacement possible....!

    le dernier 0 = vbBinaryCompare : comparaison binaire (tiens compte des minuscule/majuscule), tu peu le remplacer par 1 = vbTextCompare
    : comparaison de texte ...

  8. #8
    Inactif
    Inscrit en
    Janvier 2006
    Messages
    202
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 202
    Points : 70
    Points
    70
    Par défaut
    Je suis sur que se n'est pas une affaire de majuscule minuscule, avec ceci s'est le même résultat:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    replace(st,"chaine1","chaine2",1,-1,0)

  9. #9
    Expert éminent sénior


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Points : 20 038
    Points
    20 038
    Par défaut
    ben je sais pas ... tu ne dois pas tout nous dire chez moi cela marche... toutes les chaine1 deviennent chaine2 ... même s'il y en as plusieurs par lignes...
    le fichier :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    TITI
    chaine1
    chaine1
    chaine1 chaine1
    LOL
    chaine1
    chaine1 mldmsdl chaine1
    devient ...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    TITI
    chaine2
    chaine2
    chaine2 chaine2
    LOL
    chaine2
    chaine2 mldmsdl chaine2
    [/code]

  10. #10
    Inactif
    Inscrit en
    Janvier 2006
    Messages
    202
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 202
    Points : 70
    Points
    70
    Par défaut
    Effectivement j'ai négliger un détail asser important , en faite je ne veut pas remplacer la chaîne de caractère dans se script comme je le voulai pour mon premier script mais la je veut la supprimer, voici donc la ligne replace:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    replace(st,"chaine1","",1,-1,0)
    Sa doit surement venir de la, mais je ne sais vraiment pas quoi faire.

    J'ai tester en modifianf la chaîne sa marche super.

  11. #11
    Expert éminent sénior


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Points : 20 038
    Points
    20 038
    Par défaut
    non
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    replace(st,"chaine1","",1,-1,0)
    marche aussi et supprime tous les chaine1 du fichier...!

  12. #12
    Inactif
    Inscrit en
    Janvier 2006
    Messages
    202
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 202
    Points : 70
    Points
    70
    Par défaut
    OK merci pour votre aide

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

Discussions similaires

  1. Gestion des chaînes de caractères
    Par gl dans le forum Télécharger
    Réponses: 0
    Dernier message: 01/12/2010, 10h23
  2. Gestion des chaînes de caractères
    Par Furius dans le forum VBScript
    Réponses: 5
    Dernier message: 06/01/2006, 15h01
  3. [VBS]Gestion des exceptions
    Par Fiquet dans le forum VBScript
    Réponses: 1
    Dernier message: 14/10/2005, 16h34
  4. Problème sur des chaînes de caractères
    Par Anonymous dans le forum Access
    Réponses: 9
    Dernier message: 16/09/2005, 08h21
  5. Passage des chaînes de caractères à une application CGI
    Par Thom@s dans le forum Composants VCL
    Réponses: 10
    Dernier message: 03/12/2004, 00h13

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