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 :

remplacer une chaine de caractère par une autre présent dans un fichier texte


Sujet :

VBScript

  1. #1
    Membre éprouvé
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Décembre 2006
    Messages
    1 080
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux

    Informations forums :
    Inscription : Décembre 2006
    Messages : 1 080
    Par défaut remplacer une chaine de caractère par une autre présent dans un fichier texte
    Bonjour,

    J'aimerai faire un script qui remplace une chaine de caractère par une autre présent dans un fichier texte.

    comment faire ceci ?

    Merci d'avance,

    Arnaud

  2. #2
    Rédacteur
    Avatar de omen999
    Profil pro
    Inscrit en
    Février 2006
    Messages
    1 303
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 1 303
    Par défaut
    bonjour,

    le sujet a été évoqué très souvent
    un exemple (au hasard): http://www.developpez.net/forums/d60...-fichier-texte
    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

  3. #3
    Membre éprouvé
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Décembre 2006
    Messages
    1 080
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux

    Informations forums :
    Inscription : Décembre 2006
    Messages : 1 080
    Par défaut
    oui j'avais déjà vu des exemples, notamment celui que tu m'as donné.

    j'ai réussie à l'adapter à mon besoin.

    Merci !

  4. #4
    Membre éprouvé
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Décembre 2006
    Messages
    1 080
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux

    Informations forums :
    Inscription : Décembre 2006
    Messages : 1 080
    Par défaut
    J'ai fais ceci comme fonction, mais j'ai une erreur :

    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
    Function update_files(Fichier,LigneCherche,LigneModifie)
    	' Mettre à jour les chemins dans les fichiers de configurations
    	Dim fso
    	Dim oRegEx
    	Dim monFichier
    	Dim sStream
    	Dim sNewStream
     
    	Set fso = CreateObject("Scripting.FileSystemObject")
    	Set oRegEx = New RegExp
     
    	oRegEx.Global = True
    	oRegEx.Pattern = LigneCherche
    	Set monFichier = fso.OpenTextFile(Fichier,1)
    	sStream = monFichier.ReadAll
    	monFichier.Close
     
    	sNewStream = oRegEx.Replace(sStream,LigneModifie)
     
    	If InStr(sNewStream,vbLf)=1 Then sNewStream = Replace(sNewStream, vbLf & "",1,1)
    	Set monFichier = fso.OpenTextFile(Fichier,2)
    	monFichier.Write sNewStream
     
    	monFichier.Close
     
    End Function
     
    update_files("apache\bin\httpd.conf","<CHEMIN>",ScriptPath)
    Auriez vous une idée (c'est ma 1er fonction en vbs )

    Merci d'avance

  5. #5
    Membre éprouvé
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Décembre 2006
    Messages
    1 080
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux

    Informations forums :
    Inscription : Décembre 2006
    Messages : 1 080
    Par défaut
    personne pour m'aider ?

  6. #6
    Membre éprouvé
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Décembre 2006
    Messages
    1 080
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux

    Informations forums :
    Inscription : Décembre 2006
    Messages : 1 080
    Par défaut
    les instruction de la fonction fonctionne parfaitement, mais des que je veux mettre tout cela dans une fonction erreur...

    je ne comprend pas

    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
    function update_files(Fichier,LigneCherche,Path)
     
    	wscript.echo Fichier
    	wscript.echo LigneCherche
    	wscript.echo Path
     
    	Dim fso
    	Dim oRegEx
    	Dim monFichier
    	Dim sStream
    	Dim sNewStream
     
    	Set fso = CreateObject("Scripting.FileSystemObject")
    	Set oRegEx = New RegExp
     
    	oRegEx.Global = True
    	oRegEx.Pattern = LigneCherche
     
    	Set monFichier = fso.OpenTextFile(Fichier,1)
     
    	sStream = monFichier.ReadAll
    	monFichier.Close
     
    	sNewStream = oRegEx.Replace(sStream, Replace(Path,"\","/"))
     
    	If InStr(sNewStream,vbLf)=1 Then sNewStream = Replace(sNewStream, Replace(Path,"\","/"),1,1)
    	Set monFichier = fso.OpenTextFile(Fichier,2)
    	monFichier.Write sNewStream
     
    	monFichier.Close
    end function
     
    update_files "apache\bin\httpd.conf","<CHEMIN>",ScriptPath
    merci d'avance pour vos indications

    Arnaud

  7. #7
    Expert confirmé
    Avatar de ced600
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Août 2006
    Messages
    3 364
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Août 2006
    Messages : 3 364
    Par défaut
    les instruction de la fonction fonctionne parfaitement, mais des que je veux mettre tout cela dans une fonction erreur...
    ?
    J'ai pas compris ce que tu veux dire.

    Je ne vois pas de faute sur le script mais un truc peux m'échapper.

    mais j'ai une erreur
    Et c'est quoi cette erreur ?

  8. #8
    Membre éprouvé
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Décembre 2006
    Messages
    1 080
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux

    Informations forums :
    Inscription : Décembre 2006
    Messages : 1 080
    Par défaut
    bah quand je fais ca :

    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
     
    	Fichier = "truc"
    	LigneCherche = "<CHEMIN>
    	Path = "truc"
     
    	Dim fso
    	Dim oRegEx
    	Dim monFichier
    	Dim sStream
    	Dim sNewStream
     
    	Set fso = CreateObject("Scripting.FileSystemObject")
    	Set oRegEx = New RegExp
     
    	oRegEx.Global = True
    	oRegEx.Pattern = LigneCherche
     
    	Set monFichier = fso.OpenTextFile(Fichier,1)
     
    	sStream = monFichier.ReadAll
    	monFichier.Close
     
    	sNewStream = oRegEx.Replace(sStream, Replace(Path,"\","/"))
     
    	If InStr(sNewStream,vbLf)=1 Then sNewStream = Replace(sNewStream, Replace(Path,"\","/"),1,1)
    	Set monFichier = fso.OpenTextFile(Fichier,2)
    	monFichier.Write sNewStream
     
    	monFichier.Close
    Ca fonctionne parfaitement, mais si je fais ca :

    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
    function update_files(Fichier,LigneCherche,Path)
     
    	wscript.echo Fichier
    	wscript.echo LigneCherche
    	wscript.echo Path
     
    	Dim fso
    	Dim oRegEx
    	Dim monFichier
    	Dim sStream
    	Dim sNewStream
     
    	Set fso = CreateObject("Scripting.FileSystemObject")
    	Set oRegEx = New RegExp
     
    	oRegEx.Global = True
    	oRegEx.Pattern = LigneCherche
     
    	Set monFichier = fso.OpenTextFile(Fichier,1)
     
    	sStream = monFichier.ReadAll
    	monFichier.Close
     
    	sNewStream = oRegEx.Replace(sStream, Replace(Path,"\","/"))
     
    	If InStr(sNewStream,vbLf)=1 Then sNewStream = Replace(sNewStream, Replace(Path,"\","/"),1,1)
    	Set monFichier = fso.OpenTextFile(Fichier,2)
    	monFichier.Write sNewStream
     
    	monFichier.Close
    end function
     
    update_files "apache\bin\httpd.conf","<CHEMIN>",ScriptPath
    j'ai une erreur sur la ligne "Set monFichier = fso.OpenTextFile(Fichier,1)".

  9. #9
    Membre éprouvé
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Décembre 2006
    Messages
    1 080
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux

    Informations forums :
    Inscription : Décembre 2006
    Messages : 1 080
    Par défaut
    non laisse tombé, cela fonctionne parfaitement, je me suis gourré sur le chemin de mon fichier à modifié ! trop nul que je suis !

  10. #10
    Expert confirmé
    Avatar de ced600
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Août 2006
    Messages
    3 364
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Août 2006
    Messages : 3 364
    Par défaut
    Ok.
    T'inquiètes pas cela arrive à tout le monde

  11. #11
    Membre éprouvé
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Décembre 2006
    Messages
    1 080
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux

    Informations forums :
    Inscription : Décembre 2006
    Messages : 1 080
    Par défaut
    voila une fonction pour ceux que ca intéresse :

    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
    function searchReplaceFile(File,LineSearch,LineReplace)
     
    	Dim oFSO
     
    	Set oFSO = CreateObject("Scripting.FileSystemObject")
     
    	if oFSO.FileExists(File) = true Then
     
    		Dim oRegEx
    		Dim monFile
    		Dim sStream
    		Dim sNewStream
     
    		Set oRegEx = New RegExp
     
    		oRegEx.Global = True
    		oRegEx.Pattern = LineSearch
     
    		Set monFile = oFSO.OpenTextFile(File,1)
     
    		sStream = monFile.ReadAll
    		monFile.Close
     
    		sNewStream = oRegEx.Replace(sStream,LineReplace)
     
    		if InStr(sNewStream,LineReplace) = true Then 
    			sNewStream = Replace(sNewStream,LineReplace,1,1) 
    		end if
     
    		Set monFile = oFSO.OpenTextFile(File,2,true)
    		monFile.Write sNewStream
    	 	monFile.Close
    		MsgBox "Modification terminé",vbInformation,"Succès"
    	else
    		MsgBox "Le fichier source est introuvable",Vbcritical,"Erreur"
    	end if
    end function
     
    searchReplaceFile "fichier.txt","2","hhhhhhhh"
    on peut surement l'améliorer, si vous avez des idées, je suis preneur

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

Discussions similaires

  1. Réponses: 7
    Dernier message: 21/01/2010, 23h03
  2. [XL-97] remplacement de chaine de caractères par une autre
    Par Oh!Tofocus dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 15/10/2009, 01h58
  3. Réponses: 18
    Dernier message: 10/08/2009, 11h14
  4. Réponses: 1
    Dernier message: 09/02/2009, 00h18
  5. JSP : comment remplacer une chaine de caractères par une autre
    Par techquos dans le forum Servlets/JSP
    Réponses: 2
    Dernier message: 14/12/2006, 10h37

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