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 :

Manipulation fichier: ouvrir/lire/écrire/sauver


Sujet :

VBScript

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Juin 2009
    Messages : 12
    Points : 3
    Points
    3
    Par défaut Manipulation fichier: ouvrir/lire/écrire/sauver
    Bonjour à tous,

    je fais un travail en VBS et je viens de commencer.

    J'utilise WinCC flexible et j'ai besoin de créer une base de donnée en enregistrant la valeur d'une variable.

    Dans mon script j'ai une boucle infinie avec une condition servant de bit de start.

    J'ai besoin de pouvoir créer un fichier et de le mettre à jour en ajoutant une valeur à chaque boucle. Je l'enregistre et le ferme.

    j'ai déjà un bout de code mais je ne connais pas vraiment les instructions de base et pour l'instant il s'agit plus de bout de code recopié d'autre sites.

    ce que je sais pour l'instant:

    - Il faut créer le FSO au début.
    - écrire dans un fichier.

    Mais je ne sais pas encore très bien comment on fais pour modifier le fichier. J'entends par là l'ouvrir, placer le curseur en fin de fichier pour ne pas écraser ce qu'il y a déjà. Ensuite écrire et sauver.

    J'ai cru comprendre que avec un fichier txt, l'enregistrement se fait automatiquement quand on écrit et qu'on ferme le fichier, mais est-vrai?

    Merci à tous

  2. #2
    Candidat au Club
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Juin 2009
    Messages : 12
    Points : 3
    Points
    3
    Par défaut
    Pour l'instant j'ai ça:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Set fso=CreateObject("Scripting.FileSystemObject")
    Set feuille=fso.OpenTextFile("c:\temp\DataBase.txt", ForReading, True)
    ensuite ma boucle infinie:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    While True
     
             Set feuille = fso.OpenTextFile("c:\temp\DataBase.txt",ForWriting,False)
             feuille.Write(MaVariable)
     
    Wend
     
    feuille.Close
    Je vous épargne les déclarations de variables.


    Lorsque je l'utilise ensuite, le programme écrit bien mais à la boucle suivante, il y a une erreur et le debuggeur windows me dit que c'est là que 4a plante:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Set feuille = fso.OpenTextFile("c:\temp\DataBase.txt",ForWriting,False)
    Si ça peut vous aider à m'aider

    Merci à tous

  3. #3
    Candidat au Club
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Juin 2009
    Messages : 12
    Points : 3
    Points
    3
    Par défaut
    rebonjour,

    J'avance de mon côté et j'ai réussi à trouver une solution pour écrire à la suite.

    Maintenant je lance l'instruction:

    set feuille=.....(..., ForWriting, true)

    mais juste après la déclaration du FSO donc en dehors de la boucle infinie.

    Mais la seul chose, pour l'instant, qui me manque est comment faire un saut à la ligne.

    Le "\n" du C mais en VBS.

    Merci à vous

  4. #4
    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
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    feuille.WriteLine "test d'écriture"
    Te permet d'écrire à la nouvelle ligne

    Sinon l'équivalent du c'est

  5. #5
    Candidat au Club
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Juin 2009
    Messages : 12
    Points : 3
    Points
    3
    Par défaut
    ok merci

    j'ai aussi trouvé la constante pour la tabulation horizontale.

    Bien utile pour un minimum de mise en page.


    Merci à tous

  6. #6
    Candidat au Club
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Juin 2009
    Messages : 12
    Points : 3
    Points
    3
    Par défaut
    re bonjour à tous,

    est-ce que vous pouvez me fournir un canevas montrant:

    - la création du fichier (txt)
    - écriture
    - fermeture
    - ouverture
    - déplacement du pointeur en fin de fichier
    - écriture
    - fermeture


    je ne pourrai jamais assez remercier celui ou celle qui m'aura aidé dans ma situation désespérée.

    Merci à tous!!

  7. #7
    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
    Citation Envoyé par kurtaliasdiablo Voir le message
    1) - la création du fichier (txt)
    2) - écriture
    3) - fermeture
    4) - ouverture
    5) - déplacement du pointeur en fin de fichier
    6) - écriture
    7) - fermeture
    1)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Set objFSO = CreateObject("Scripting.FileSystemObject")
    Set objTextFile = objFSO.CreateTextFile("C:\FSO\ScriptLog.txt")
    2)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Const ForWriting = 2
    Set objFSO = CreateObject("Scripting.FileSystemObject")
    Set objTextFile = objFSO.OpenTextFile("c:\scripts\Comments.txt", _ 
        ForWriting, TRUE)
    3)
    4) je te l'ai mis plus haut pour l'écriture, si tu veux l'ouvir pour le lire c'est :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Const ForReading = 1
    Set objFSO = CreateObject("Scripting.FileSystemObject")
    Set objTextFile = objFSO.OpenTextFile("C:\Windows\Debug\Netsetup.log", _
        ForReading)
    5) Il n'y a pas de pointeurs, soit tu stockes tout dans la variable soit tu lis ligne par ligne.
    6) = 2)
    7) = 3)

  8. #8
    Candidat au Club
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Juin 2009
    Messages : 12
    Points : 3
    Points
    3
    Par défaut
    merci pour ta réponse.

    Est-ce que c'est voulu que chaque chemin de fichier soit différent?

    Mon but en fait est de réaliser une base de donnée.

    Au début j'écris une en-tête.

    Et ensuite avec un autre événement, je viens rajouter des valeurs les unes après les autres à la suite de cette en-tête.

    Bien sûr la création de l'en-tête et l'ajout des valeurs se font dans 2 scripts différents.


    Pour faire simple ça doit donner un truc comme ça:

    --------
    en-tête
    --------

    Valeur1
    valeur2
    .
    .
    .

  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 040
    Points
    20 040
    Par défaut
    Ben pour ouvrir un fichier, et écrire à la fin utilise
    la constante ForAppending (8)..


    Commence par tester son existence :

    Comment tester l'existence d'un fichier ?

    s'il n'existe pas tu crée l'entête et tu rajoute ta première ligne de donnée..

    s'il existe tu l'ouvre en mode "ForAppending" et tu rajoute ta première ligne de donnée..

Discussions similaires

  1. Ouvrir et écrire dans un fichier .txt en T-SQL
    Par joul's dans le forum MS SQL Server
    Réponses: 11
    Dernier message: 27/10/2008, 21h04
  2. Ouvrir, lire, écrire, ferme fichier .txt
    Par greg26 dans le forum VB.NET
    Réponses: 13
    Dernier message: 19/09/2007, 17h12
  3. lire / écrire dans un fichier excel au format xml
    Par crisflo dans le forum Format d'échange (XML, JSON...)
    Réponses: 7
    Dernier message: 28/01/2006, 10h50
  4. Réponses: 1
    Dernier message: 24/11/2004, 16h54
  5. Réponses: 5
    Dernier message: 11/01/2004, 20h17

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