OVH Cloud OVH Cloud

Passer des objets en argument lors de l'appel d'une sous-routine

2 réponses
Avatar
Major TOM
Bonjour à tous,

Je suis en train de travailler sur l'appel de fichier vbs depuis un autre
fichier vbs.

Ex : Shell.Run "Wscript MaSousRoutine.vbs " & strDefaultDN

Mon problème est que depuis le vbs principal j'ouvre un fichier de cette
façon :

'Création du fichier de sortie portant le même nom que le script
strOutputFileType = "htm"
strOutputFilePath = "./"
' - Nom du ficihier de sortie
strOutputFileName = Split(WScript.ScriptName, ".")(0) & "." &
strOutputFileType
' - Nom et chemin du fichier de sortie
strOutputFile = strOutputFilePath & strOutputFileName
' - Création du fichier
Set objFSO = CreateObject("Scripting.fileSystemObject")
Set objOutputFile = objFSO.CreateTextFile(strOutputFile, True)
'Note : pour écrire une ligne dans le fichier, utiliser la syntaxe
suivante :
' objOutputFile.WriteLine "<br>"

Dans le fichier MaSousRoutine.vbs je dois également écrire dans ce fichier.
De quelle manière je dois m'orienter fermer le fichier et le réouvrir ou une
solution par arguments ?
Si par arguments c'est possible, comment passer un objet ?

Par avance, merci de votre aide.

Thierry

2 réponses

Avatar
Fred
Dans son message
Major TOM nous dit :

Bonjour à tous,

Je suis en train de travailler sur l'appel de fichier vbs depuis un
autre fichier vbs.

Ex : Shell.Run "Wscript MaSousRoutine.vbs " & strDefaultDN

Mon problème est que depuis le vbs principal j'ouvre un fichier de
cette façon :

'Création du fichier de sortie portant le même nom que le script
strOutputFileType = "htm"
strOutputFilePath = "./"
' - Nom du ficihier de sortie
strOutputFileName = Split(WScript.ScriptName, ".")(0) & "." &
strOutputFileType
' - Nom et chemin du fichier de sortie
strOutputFile = strOutputFilePath & strOutputFileName
' - Création du fichier
Set objFSO = CreateObject("Scripting.fileSystemObject")
Set objOutputFile = objFSO.CreateTextFile(strOutputFile, True)
'Note : pour écrire une ligne dans le fichier, utiliser la syntaxe
suivante :
' objOutputFile.WriteLine "<br>"

Dans le fichier MaSousRoutine.vbs je dois également écrire dans ce
fichier. De quelle manière je dois m'orienter fermer le fichier et le
réouvrir ou une solution par arguments ?
Si par arguments c'est possible, comment passer un objet ?

Par avance, merci de votre aide.

Thierry


Bonjour,
Si j'ai bien compris, la sous-routine doit écrire à la suite de la
routine principale dans le même fichier ?
Dans ce cas, ferme le fichier et ouvre le en mode Append dans la
sous-routine (ou bien fait tout dans le même vbs).

Un petit détail encore : attention au split pour trouver le nom de
fichier. Il est parfaitement possible d'avoir un nom de fichier
contenant un point. "Mon.Fichier.htm" par exemple.


--
Fred
http://www.cerbermail.com/?3kA6ftaCvT

Avatar
Major TOM
Merci Fred

--

Par avance, merci de votre aide.

Thierry
"Fred" a écrit dans le message de news:

Dans son message
Major TOM nous dit :

Bonjour à tous,

Je suis en train de travailler sur l'appel de fichier vbs depuis un
autre fichier vbs.

Ex : Shell.Run "Wscript MaSousRoutine.vbs " & strDefaultDN

Mon problème est que depuis le vbs principal j'ouvre un fichier de
cette façon :

'Création du fichier de sortie portant le même nom que le script
strOutputFileType = "htm"
strOutputFilePath = "./"
' - Nom du ficihier de sortie
strOutputFileName = Split(WScript.ScriptName, ".")(0) & "." &
strOutputFileType
' - Nom et chemin du fichier de sortie
strOutputFile = strOutputFilePath & strOutputFileName
' - Création du fichier
Set objFSO = CreateObject("Scripting.fileSystemObject")
Set objOutputFile = objFSO.CreateTextFile(strOutputFile, True)
'Note : pour écrire une ligne dans le fichier, utiliser la syntaxe
suivante :
' objOutputFile.WriteLine "<br>"

Dans le fichier MaSousRoutine.vbs je dois également écrire dans ce
fichier. De quelle manière je dois m'orienter fermer le fichier et le
réouvrir ou une solution par arguments ?
Si par arguments c'est possible, comment passer un objet ?

Par avance, merci de votre aide.

Thierry


Bonjour,
Si j'ai bien compris, la sous-routine doit écrire à la suite de la routine
principale dans le même fichier ?
Dans ce cas, ferme le fichier et ouvre le en mode Append dans la sous-routine
(ou bien fait tout dans le même vbs).

Un petit détail encore : attention au split pour trouver le nom de fichier. Il
est parfaitement possible d'avoir un nom de fichier contenant un point.
"Mon.Fichier.htm" par exemple.


--
Fred
http://www.cerbermail.com/?3kA6ftaCvT