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 :

Création d'un fichier txt depuis autres fichier


Sujet :

VBScript

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    45
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2005
    Messages : 45
    Points : 31
    Points
    31
    Par défaut Création d'un fichier txt depuis autres fichier
    Bonjour,

    J'ai une tache a faire don je ne sais pas vraiment comment m'y prendre,
    alors je vient vous demander conseil.

    Je dois l'aide d'un script vb, crée un nouveau fichier ".txt" et dans ce fichier je dois changer des paramètre de plusieurs anciens fichier txt.

    J'avais penser a faire quel que chose du style :

    1 Création d'un nouveau fichier CFG
    Pour cela : Set objFSO = CreateObject("Scripting.FileSystemObject")

    2 charger les fichiers txt qu'on a besion
    Example :
    Avez des imprimantes : Oui / Non
    --> Si oui, on importe le fichier txt
    --> si non, on importe ... pas le fichier txt (lol?)
    Mais la je sais vraiment pas comment faire....

    3 Remplacer les valeur indiquer
    Example:
    Une fois le fichier txt importer... on recois un nouveau dialogbox qui dis
    --> Non d'imprimant ...
    La je pense utiliser la valeur RemplaceValues

    Puis la sauvegard du fichier...

    Je voudrais savoir ce que vous pensez de la structure du script..

    Et si vous avez des idées.

    Merci a vous

  2. #2
    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 : 43
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Août 2006
    Messages : 3 364
    Points : 4 061
    Points
    4 061
    Par défaut
    Regarde les exemples ici ils t'aideront à faire ton script :
    http://vb.developpez.com/faqvbs/?page=II.2

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    45
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2005
    Messages : 45
    Points : 31
    Points
    31
    Par défaut
    Enfaite je l'avais déjà vue cette article.

    Mais il y a pas vraiment grand chose qui pourrais m'aider dans mon cas (a part copier un text).

    Merci sinon

  4. #4
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    45
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2005
    Messages : 45
    Points : 31
    Points
    31
    Par défaut
    une petite question (simple pour les pro lol)

    je suis occupé avec la première parti
    voici ce que je fait :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
      msgTexte = "Entrez le nom du fichier : " & vbCrLf & vbCrLf & _
                              "(ex.: C:\MonFichier.cfg)" & vbCrLf
      Fichier = InputBox(msgTexte, "Saisie de l'emplacement du fichier à créer", _ 
                                           "C:\Ce_Fichier.cfg")
     
     
    Dim oFSO
    Set oFSO = CreateObject("Scripting.FileSystemObject")
    oFSO.CopyFile "C:\test.cfg","Fichier",True
    Mais aulieu de me copier un fichier .cfg ver ce qu'on introduis, il me cree un fichier "FICHIER" dans le repertoir du script vbs

    savez vous comment ce fait il qu'il me crée pas le fichier demander ?

  5. #5
    Membre actif
    Inscrit en
    Mai 2008
    Messages
    189
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 189
    Points : 212
    Points
    212
    Par défaut
    essaie cà :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    msgTexte = "Entrez le nom du fichier : " & vbCrLf & vbCrLf & _
    "(ex.: C:\MonFichier.cfg)" & vbCrLf
    Fichier = InputBox(msgTexte, "Saisie de l'emplacement du fichier à créer", _
    "C:\Ce_Fichier.cfg")
     
     
    Dim oFSO
    Set oFSO = CreateObject("Scripting.FileSystemObject")
    oFSO.CopyFile "C:\test.cfg",Fichier,True
    J'ai retiré les Guillemets sur la variable Fichier...

  6. #6
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    45
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2005
    Messages : 45
    Points : 31
    Points
    31
    Par défaut
    Salut,

    Merci pour ton coup de main, mais il ne trouve pas la variable oFSO.copyfile

    Une idee ?

  7. #7
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    45
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2005
    Messages : 45
    Points : 31
    Points
    31
    Par défaut
    Non c'est bon j'ai trouvé d'ou venais le problème.

    Merci pour ton coup de main ca fonction correctement !

  8. #8
    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 : 43
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Août 2006
    Messages : 3 364
    Points : 4 061
    Points
    4 061
    Par défaut
    1 Création d'un nouveau fichier CFG
    Pour cela : Set objFSO = CreateObject("Scripting.FileSystemObject")
    http://vb.developpez.com/faqvbs/?page=II.2.4#fsowrite

    2 charger les fichiers txt qu'on a besion
    Example :
    Avez des imprimantes : Oui / Non
    --> Si oui, on importe le fichier txt
    --> si non, on importe ... pas le fichier txt (lol?)
    Mais la je sais vraiment pas comment faire....
    Inputbox
    +
    http://vb.developpez.com/faqvbs/?pag...#fsoLitFichier
    Avec cela tu récupère le contenu du fichier texte que tu souhaites, après libre à toi de traiter ce contenu ou non.
    Pour le traiter tu peux utiliser les exemples ici:
    http://vb.developpez.com/faqvbs/?page=II.6

    3 Remplacer les valeur indiquer
    Example:
    Une fois le fichier txt importer... on recois un nouveau dialogbox qui dis
    --> Non d'imprimant ...
    La je pense utiliser la valeur RemplaceValues
    Pas très clair ta formulation française, mais je suppose que c'est ce que j'ai appelé le traitement du contenu ci dessus.
    Donc inputbox pour obtenir le nom de l'imprimante, et autre.
    +
    http://vb.developpez.com/faqvbs/?page=II.6

    Puis la sauvegard du fichier...
    http://vb.developpez.com/faqvbs/?page=II.2.4#fsowrite
    Tu ecris le texte dans un fichier et tu le fermes.

  9. #9
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    45
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2005
    Messages : 45
    Points : 31
    Points
    31
    Par défaut
    Merci je vais voir ca

  10. #10
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    45
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2005
    Messages : 45
    Points : 31
    Points
    31
    Par défaut
    J'ai quel que problème avec la phase 3...

    A l'aide des InputBox j'ai u les informations que je voulais :

    Nom du host....

    Maintenant je fait :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Const ForWriting = 2
       Dim fso, f   
     
       Set fso = CreateObject("Scripting.FileSystemObject")
       Set f = fso.OpenTextFile("c:\temp\test.cfg", ForWriting,true)
       f.write("Salut")
    Mais je sais pas comment faire pour le f.write

    Il me semblais qu'il existait une command ReplaceValues X par le string

    Le string en question c'est le nom du host (hostname)

    mais la command f.write ecrit simplement

    Une idee ?

  11. #11
    Membre actif
    Inscrit en
    Mai 2008
    Messages
    189
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 189
    Points : 212
    Points
    212
    Par défaut
    Je ne comprends pas ce que tu veux faire, trop d'information, essaie d'être plus précis stp

    Tu peux combiner un f.write avec un replace si tu veux :

    exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    f.write(Replace(Ficher,"X", hostname)

  12. #12
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    45
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2005
    Messages : 45
    Points : 31
    Points
    31
    Par défaut
    C'est une superidee que ta !

    C'est exactement ce qu'il me faudrais...

    Mais malheureusement ca fonctionne pas...
    il me donne une erreur :
    Error: Expected ')'

    Comprend pas... je dois enlever le ")" ??

  13. #13
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    45
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2005
    Messages : 45
    Points : 31
    Points
    31
    Par défaut
    non c'est bon j'ai trouvé...
    falais justement en rajouter un lol

  14. #14
    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 : 43
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Août 2006
    Messages : 3 364
    Points : 4 061
    Points
    4 061
    Par défaut
    C'est une superidee que ta !

    C'est exactement ce qu'il me faudrais...

    Mais malheureusement ca fonctionne pas...
    il me donne une erreur :
    Error: Expected ')'

    Comprend pas... je dois enlever le ")" ??
    Non il manque un ) à la fin.

    Note que si tu ouvres un fichier contenant du texte en écriture, tu vas détruire le contenu et écrire dans un fichier texte.

    Ce que tu peux faire c'est de créer un nouveau ficheir vierge et de l'ouvrir en ecriture, d'ouvrir en lecture le ficheir contenant les informations, et copier celles qui t'interessent dans le nouveau fichier.

    Ensuite si tu ne veux conserver qu'un seul fichier, tu peux supprimer celui en trop, et même renommer le fichier conservé.

  15. #15
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    45
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2005
    Messages : 45
    Points : 31
    Points
    31
    Par défaut
    bon pour le

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    f.write(Replace(Ficher,"X", hostname)) 'J'ai du enlever le Fichier car, il me mèttais mon liens (C:\test.cfg)
    maintenant j'ai:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    f.write(Replace("X", hostname))
    Et la j'ai une erreur : Error: Wrong number of arguments or invalid property assignment: 'Replace'


    Un petit resumer de ce que je voulais faire...
    Copier un text => OK
    Avec les information InputBox j'ai des information (ex.:hostname)
    maintenant remplacer l'ancier hostname ($HOSTNAME$) par le nouveau

    pour ca le f.write(Replace("$HOSTNAME$, HostName))

    ... vous comprenez ?

  16. #16
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    45
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2005
    Messages : 45
    Points : 31
    Points
    31
    Par défaut
    Citation Envoyé par ced600 Voir le message
    Non il manque un ) à la fin.

    Note que si tu ouvres un fichier contenant du texte en écriture, tu vas détruire le contenu et écrire dans un fichier texte.

    Ce que tu peux faire c'est de créer un nouveau ficheir vierge et de l'ouvrir en ecriture, d'ouvrir en lecture le ficheir contenant les informations, et copier celles qui t'interessent dans le nouveau fichier.

    Ensuite si tu ne veux conserver qu'un seul fichier, tu peux supprimer celui en trop, et même renommer le fichier conservé.
    OK Merci je comprend mieux !

    J'ai vue des article dans la FAQ... je vais voir ce que je peu faire et si j'ai d'autres question je vous recontact

    --> et oui je prefère essayé par moi même avent de poser les question... ah et comment on fait ? lol

  17. #17
    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 : 43
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Août 2006
    Messages : 3 364
    Points : 4 061
    Points
    4 061
    Par défaut
    L'erreur te dit qu'il manque des paramètres lors de l'appel de ta fonction.
    C'est logique parce que Replace remplace une string2 contenue dans une string1 par une string3.

    Bref il faut mettre en argument : replace (source, chaine à remplacer, chaine de remplacement)

    Tu aurais eu l'info en tapant sur google replace vbs, au passage.

    remplacer l'ancier hostname
    C quoi ? C ou ?
    Une string du fichier que tu as ouvert en lecture ?
    Une variable d'environnement ?

    On dirait que tu tapes tes messages à l'arrache sans prendre le temps d'y réfléchir. On ne sait pas ce que tu fais, ce que tu veux faire, et le but de ce script. On ne connait pas ton envirronement de travail. Donc penses un peu à nous lorsque tu ecris des messages, et dit clairement ce que tu essayes de faire.
    Sinon on risque de se lasser et de ne pas continuer à répondre à tes messages.

  18. #18
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    45
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2005
    Messages : 45
    Points : 31
    Points
    31
    Par défaut
    Ce que j'essaye de faire c'est 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
    msgTexte = "Entrez le nom du fichier : " & vbCrLf & vbCrLf & _
    "(Dois etre un fichier .cfg)!" & vbCrLf
    Fichier = InputBox(msgTexte, "Saisie de l'emplacement du fichier à créer ", _
    "c:\")
     
    msgTexte = "Entrez le hostname : " & vbCrLf & vbCrLf & _
    "(ex.: LoLiTa)" & vbCrLf
    HostName = InputBox(msgTexte, "Saisie du Hostname", _
    "")
     
    Dim oFSO
    Set oFSO = CreateObject("Scripting.FileSystemObject")
    oFSO.CopyFile "c:\test.cfg",Fichier,True
     
     
    Const ForWriting = 2
    Dim fso, f 
     
    Set fso = CreateObject("Scripting.FileSystemObject")
    Set f = fso.OpenTextFile(Fichier, ForWriting,true)
    f.write(Replace(Fichier,"$HOSTNAME$", HostName))
    Explication :

    J'essaye de copier un fichier de config avec des information déjà remplis
    dans ce fichier de configuration il y a des parametre a partenant a des machine.

    J'essaye de faire un script qui va copier ce fichier .cfg puis ou on devrais introduire des information (a l'aide du INPUTBOX) et qui va remplacer le fichier recament crée (sans touché a l'original).

    Par exemple:
    je demare le script vbs
    je dois introduire le hostname
    le script va copier l'ancien cfg et en crée un nouveau
    dans le nouveau il dois y avoir tout les information précedent mais le hostname dois avoir changé (avec cellui que j'ai remplis)

    Maintenant mon problème est que lors que le fichier cfg est crée,
    je recois tout les information precedent (ca c'est bon) mais avec la command f.write il efface tout ... et me copier le lien (qui est aussi le string Fichier) du fichier et me remplace rien...
    Donc je voudrais savoir :

    Si il est possible d'utilisé la command remplace sans le F.Write ?

  19. #19
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    45
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2005
    Messages : 45
    Points : 31
    Points
    31
    Par défaut
    bon comme je vous les dis, je suis quel qui cherche

    Et cellui qui cherche, Trouve !

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    Const ForReading = 1
    Const ForWriting = 2
     
    Set objFSO = CreateObject("Scripting.FileSystemObject")
    Set objFile = objFSO.OpenTextFile("C:\Scripts\Text.txt", ForReading)
     
    strText = objFile.ReadAll
    objFile.Close
    strNewText = Replace(strText, "Jim ", "James ")
     
    Set objFile = objFSO.OpenTextFile("C:\Scripts\Text.txt", ForWriting)
    objFile.WriteLine strNewText
    objFile.Close
    En modifiant ce script (trouver sur le site de microsoft)
    j'ai pu faire ce que je voulais...

    Merci a tous pour votre coup de main

  20. #20
    Membre actif
    Inscrit en
    Mai 2008
    Messages
    189
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 189
    Points : 212
    Points
    212
    Par défaut
    Bon bah tant mieux ^^

    un tag "résolu" et bonne continuation ^^

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. Réponses: 1
    Dernier message: 05/11/2009, 16h25
  2. Réponses: 4
    Dernier message: 30/11/2006, 16h22
  3. Faire appel à un fichier txt depuis word
    Par snwotigers dans le forum VBA Word
    Réponses: 8
    Dernier message: 12/10/2006, 17h14
  4. [FLASH MX] Variables depuis un fichier txt
    Par mascagne dans le forum Flash
    Réponses: 4
    Dernier message: 01/03/2006, 17h57
  5. [VBA-E]Créer un fichier txt depuis une feuille Excel
    Par marie10 dans le forum Macros et VBA Excel
    Réponses: 9
    Dernier message: 20/02/2006, 17h36

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