Problème De programmation : VBScipt

Fermé
vidad Messages postés 19 Date d'inscription lundi 24 novembre 2003 Statut Membre Dernière intervention 24 octobre 2006 - 25 nov. 2003 à 11:05
Lepu Messages postés 32 Date d'inscription lundi 24 novembre 2003 Statut Membre Dernière intervention 19 décembre 2003 - 26 nov. 2003 à 11:03
Bonjour,

Voila mon problème : j'ai créé un script vbs qui créé un fichier texte et inscrit des données dedans. Jusqu'ici, pas trop de problèmes.

Mais maintenant, j'aimerais, via un autre script vbs, écrire d'autres données dans ce fichier texte sans effacer les données existantes ou, en gros, ajouter des données à ce fichier via un autre script.

Le problème, c'est que j'ai encore un peu de mal avec le FSO et donc dès que je lance le second script, le fichier texte perd ses données et n'affiche que les chaînes de caractère du second script vbs.

Un coup de main serait donc le bienvenu...
Merci d'avance.
A voir également:

1 réponse

Lepu Messages postés 32 Date d'inscription lundi 24 novembre 2003 Statut Membre Dernière intervention 19 décembre 2003 1
25 nov. 2003 à 13:33
Ca doit venir du fait que tu ouvres le fichier en mode écriture au lieu de l'ouvrir en mode ajout.
Il y a trois modes d'ouverture d'un fichier sur FSO , qui sont
1 (lecture)
2 (écriture)
8 (ajout)

Je te conseille de l'ouvrir comme ça :
Const cstForAppending = 8
Const cstFilePath = "C:\toto.txt"
Const cstCreateIfNotExisting = True
Dim objFso
Dim objFile

Set objFso = CreateObject("Scripting.FileSystemObject")

'Obtenir une référence vers le fichier à éditer (le créer s'il n'existe pas)
Set objFile = objFso.OpenTextFile(cstFilePath,cstForAppending,cstCreateIfNotExisting)

'Ajouter du contenu au fichier
objFile.WriteLine "Titi"
objFile.WriteLine = "Toto"
objFile.WriteLine = "Tata"

'Fermer le fichier
objFile.Close

'Libérer les références
Set objFile = Nothing
Set objFso = Nothing
0
vidad Messages postés 19 Date d'inscription lundi 24 novembre 2003 Statut Membre Dernière intervention 24 octobre 2006 2
25 nov. 2003 à 14:22
Merci bien mais je vais devoir vous déranger une fois de plus car je n'arrive pas à faire marcher mon programme.
Je crois que je suis en train de m'embrouiller totalement. Auriez-vous une adresse mail où je pourrais vous envoyer une copie de ce programme en toute sécurité afin que vous puissez mieux cerner le problème et donc mieux me guider ? Si cela ne vous dérange pas bien entendu...
Merci d'avance.
0
vidad Messages postés 19 Date d'inscription lundi 24 novembre 2003 Statut Membre Dernière intervention 24 octobre 2006 2
25 nov. 2003 à 15:22
Autre chose, comment peut-on, à l'intérieur d'un script vbs, faire appel à un autre script vbs situé dans un autre dossier afin qu'il soit traité, dans le programme principal, comme une fonction.
Je suppose qu'il faut utiliser la fonction "call" mais je ne vois pas trop s'il faut mettre l'adresse complète du fichier ou procéder d'une autre manière...
Merci d'avance.
0
Lepu Messages postés 32 Date d'inscription lundi 24 novembre 2003 Statut Membre Dernière intervention 19 décembre 2003 1
26 nov. 2003 à 11:03
Désolé de ne pas avoir eu le temps de traiter encore ton problème.
Je suis un peu overbooké en ce moment.

En ce qui concerne le problème d'appeler des scripts à partir d'autres scripts, je pense que ce n'est pas possible.

A moins que tu triches un peu sur Windows en utilisant un objet Shell qu tu utiliseserait pour explicitement lancer un autre script, tel que tu le ferais dans une fenêtre de console Windows. Comme ceci :
Const cstScriptPath = "c:\toto.vbs"

Dim objShell

'Obtenir une instance d'un environnement de console Windows
Set objShell = CreateObject("WScript.Shell")

'Exécuter l'interpréteur de script en lui passant en paramètre le chemin vers le fichier VBS
objShell.Run("cscript.exe " & cstScriptPath)

'Libérer la référence
Set objShell = Nothing


Voilà
0