Excecuter un fichier .vb dans un autre

Signaler
Messages postés
12
Date d'inscription
lundi 6 décembre 2010
Statut
Membre
Dernière intervention
19 mai 2011
-
Messages postés
14770
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
27 février 2021
-
Bonjour,

Je suis dans nouveau dans prog VB, je veux excecuter un .vb dans un autre fichier vb. Quelqu'un pourrait me donner un coup de main???

Merci d'avance.

8 réponses

Messages postés
12
Date d'inscription
lundi 6 décembre 2010
Statut
Membre
Dernière intervention
19 mai 2011

Bonjour,

Je suis nouveau dans la prog VB, je veux excecuter un .vb dans un autre fichier vb. Quelqu'un pourrait me donner un coup de main???

Merci d'avance.
Messages postés
14770
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
27 février 2021
151
Bonjour,

Appeller une fonction d'un autre fichier, c'est quoi, un module, une classe ?

Mon site
Messages postés
12
Date d'inscription
lundi 6 décembre 2010
Statut
Membre
Dernière intervention
19 mai 2011

Bonjour NHenry,

Dslé pour la reponse tardive, c'est bien un module dans lequel je recuperer un code vb que je convertit en txt, puis modifie des chaines de caracteres dans ce fichier que je reconvertit ensuite en .vb et enfin je dois executer ce fichier dans le mon module. J'ai utilisé la fonction Shell qui ne lance que les .exe et moi j'ai besoin d'excecuter le .vb dans mon module.

Merci d'avance!!!
Messages postés
14770
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
27 février 2021
151
Bonjour,

Pourquoi ne pas rendre ces chaines paramétrables ?
Car quand on commence à faire ça, c'est que :
- On se trompe dans la solution à apporter
- On a un besoin extrêmement spécifique

Un exemple de tes besoins (code origine/destination) sera utile pour apporter une réponse la plus adaptée.

Mon site
Messages postés
12
Date d'inscription
lundi 6 décembre 2010
Statut
Membre
Dernière intervention
19 mai 2011

Voici mon code:
Imports System
Imports System.IO
Module Module1
Sub Main()
Dim oFSO, WScript
Const ForReading As Integer = 1
Const ForWriting As Integer = 2
Dim a As String
Dim T(1) As String
Dim b As String
Dim c
Dim Strtxt As String
Dim fi, fivb, WshShell
Dim StrNewtxt As String
fi = "c:\file.txt"
fivb = "c:\file.vb"
If System.IO.File.Exists(fi) = True Then
System.IO.File.Delete(fi)
End If

a = InputBox("saisir un nom")
MsgBox(a)
T(0) = a
b = Right(a, 2)
MsgBox(b)
oFSO = CreateObject("Scripting.FileSystemObject")
c = oFSO.OpenTextFile("c:\file1.txt", ForReading)
File.Copy("c:\om.txt", "c:\file.txt")
Strtxt = c.ReadALL
StrNewtxt = Replace(Strtxt, "xx", b)
c = oFSO.OpenTextFile("c:\file.txt", ForWriting)
c.WriteLine(StrNewtxt)
'Conversion file.txt en file.vb
c.Close()
If System.IO.File.Exists(fivb) = True Then
System.IO.File.Delete(fivb)
End If
File.Move("c:\file.txt", "c:\file.vb")
WshShell = CreateObject("WScript.Shell")
WshShell.Run("c:\file.vb")
End Sub
End Module

/*******************************************************************************************/
Mon probleme est le fait que j'arrive pas a excecuter le file.vb et ce fichier contient un code à modifier.
Merci!!!
Messages postés
14770
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
27 février 2021
151
Bonjour,

2 choses :
1) Pourquoi utiliser FSO alors que tout est dispo dans le Framework ?
IO.File.ReadAllText (et ses amis)

2) Au lieu de faire une sub sans paramètre, pourquoi ne pas lui ajouter les paramètres qui te conviennent ?

Public Sub TraiteFichier(Byval pSource as String, byval pFichierDestination as String)

Mon site
Messages postés
12
Date d'inscription
lundi 6 décembre 2010
Statut
Membre
Dernière intervention
19 mai 2011

Je maitrise pas trop, je viens de commencer vb. Par contre ça marche jusqu'au niveau de l'excution du fichier vb que j'ai appelé avec le shell. Du coup, j'ai juste besoin de l'excecuter à l'interieur de mon module.

Merci!!!
Messages postés
14770
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
27 février 2021
151
Bonjour,

Je reprends, car je pense que tu vas dans la mauvaise direction.

Tu as fourni le code de changement du texte, ce qui n'est pas ce que je voulais voir.

Pour la coloration syntaxique, regardes la 3ième icône à droite dans la boite de rédaction des messages ;)

Je remarques aussi quelques points choquant (même pour un débutant, c'est un point important) :
- TOUJOURS mettre Option Explicit et Option Strict à ON (propriétés du projet)
- Utiliser de préférence les éléments du framework, FSO est lent et est inutile en .NET (dans ton cas). (Regardes l'aide de IO.File.ReadAllText et de ses fonctions associées)
- Tu déclare une variable tableau T et tu ne t'en sert jamais
- Nomme tes variables de manière claire, "a", "b", "c", "T", ...
- N'utilises pas MsgBox, mais MessageBox.Show
- De base, retires l'import System.Visualbasic des propriétés de ton projet. Il s'agit d'une "compatibilité" pour les personnes venant de VB6/A et qui ne fait que maintenir un code qui n'est pas totalement .NET (à la lecture).
- "If System.IO.File.Exists(fi) = True Then" peut être amélioré "If System.IO.File.Exists(fi) Then" est suffisant.
- "b Right(a, 2)" est équivalent à "b a.SubString(a.lenght-2)"

Mon site