Fonction Inet non reconnue

peacand Messages postés 16 Date d'inscription mercredi 29 novembre 2000 Statut Membre Dernière intervention 24 octobre 2007 - 23 oct. 2007 à 19:05
cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 - 25 oct. 2007 à 20:18
Bonjour , je suis en train d'essayer d'apprendre les bases d'une connection FTP avec VB 2005 et j'ai trouvé l'outil Inet qui a l'air simple d'utilisation . Le seul probleme est que cet outil fonctionne tres bien sauf la commande Inet.Execute() qui n'est pas reconnue.Du moins la commande Inet.Execute() est reconnue mais les codes du type

 Inet1.Execute( , "get " & fichier & "" & fichier) ou toute commande a l'interieur du Execute est impossible. Il me dit que "La résolution de surcharge a échoué,car aucun Execute n'accepte ce nombre d'arguments" . Pourtant tous les codes utilisants Inet fonctionnent comme ca . Je ne connais pas du tout ce composant , ca peut etre tout bete , je ne sais pas du tout . Si quelqu'un peut m'aider . ...
Merci

5 réponses

cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
23 oct. 2007 à 19:38
Salut
Tu as dû oublier de nous dire si tu as paramétré .URL, .Protocole et éventuellement .Username / .Password.
Supposons.
Dans ta syntaxe, respecte bien les espaces : La commande Get (qui est une commande FTP, INet n'est qu'un support) nécessite la structure suivante :
   GET  NomFichierSource   NomFichierLocal
en respectant bien les espaces entre ces noms.
GET s'attend donc à voir deux paramètres séparés par un espace.
Si le nom du fichier local comporte des espaces, il va considérer qu'il s'agit de paramètres supplémentaires dont il ne peut rien faire, d'où l'erreur.
Il te faut donc encadrer le nom du fichier local (et de son répertoire) avec des guillemets ", ce qui donnerait la syntaxe suivante :
   Inet1.Execute( , "get " & fichier & " " & """" & fichier & """")
                Ici, espace obligatoire ^     ^^ (1)       (1) ^^
(1)
Ici, le double " insère un " seul dans la chaine (grand classique)

Quant au nom du fichier source sur le net, normalement il n'est pas possible qu'il contienne d'espace.
S'il en contient, il faut :
- Soit transformer les espaces par des %20 (% suivi du code Ascii en Hexa)
- Soit essayer de l'encadrer aussi avec des guillemets (mais je n'y crois pas trop)

Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés

<hr />Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)
0
peacand Messages postés 16 Date d'inscription mercredi 29 novembre 2000 Statut Membre Dernière intervention 24 octobre 2007
23 oct. 2007 à 20:02
Oui d'accord et apres les variables fichier sont de quel type ? Ce sont simplement des String avec le chemin du fichier ? Parce que quand je fais ca ca ne marche pas
0
cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
24 oct. 2007 à 18:38
Oui, de type String mais ne doivent pas contenir d'espace. Or le fichier de destination contient aussi le chemin, et rares sont les chemins sans espaces.
Donne un exemple de valeur de ta chaine "fichier" qui marche pas.
Au lieu de 
   Inet1.Execute( , "get " & fichier & "" & fichier)
fais
   Dim sTemp As String
   sTemp = "get " & fichier & " " & fichier
   Debug.Print (sTemp)
   Inet1.Execute( , sTemp)
et copie-nous le contenu de sTemp, stp

Utilises-tu l'authentification ? (Username et Password)
Quand tu dis "ça marche pas", c'est que tu as toujours une erreur ? (laquelle)
... donne nous le max de détail

Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés

<hr />Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)
0
peacand Messages postés 16 Date d'inscription mercredi 29 novembre 2000 Statut Membre Dernière intervention 24 octobre 2007
24 oct. 2007 à 18:51
Je ne peux pas te copier le contenu de sTemp car je ne peux meme pas débuger . Il me trouve une erreur dès que j'écris quelque chose apres Inet.Execute . Par exemple je te met un code le plus simple possible :

dim source as string
dim destination as string

source = "test.txt" ( dans mon dossier source du projet )
destination = "\test"

With Inet1

.url = "ftpperso.free.fr"
.UserName = "monuser" 
.password = "monpass"
.Execute (, "PUT " & souce & " /" & destination )

EndWith

A partir de la il me souligne toute la ligne depuis Execute jusqu'à destination et il me met l'erreur suivante :
"Erreur 1 La résolution de surcharge a échoué, car aucun 'Execute' accessible n'accepte ce nombre d'arguments. F:\Mes documents\Visual Studio 2005\Projects\inet\inet\Form1.vb 10 9 inet"

Et impossible de débuger . Il n'y a que Inet.Execute() qui ne sort pas d'erreur ; dès que je met quoi que se soit entre les parenthèses il me remet cette meme erreur .
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
25 oct. 2007 à 20:18
Ok
Donc, si on remplace tes variables par leur contenu, la commande serait :
   .Execute (, "PUT test.txt /\test")
Il me semble que cela ne peut pas être correct.
Pour la syntaxe de debuggage que je t'ai proposé, met la ligne du inet.Execute en commentaire afin de savoir (enfin) la syntaxe que tu lui fournis. Bien sûr, il n'exécutera pas la commande, mais la fenêtre de debug affichera le contenu de la commande (sTemp) que je te demande de coller ici.

De toute façon, je crains que ce ne soit pas une erreur de syntaxe mais du composant, mais je n'ai pas assez d'expérience en .Net pour interpréter ce message d'erreur.
Vérifie, à la virgule près, que ton message d'erreur est bien celui-là et essaye de le coller dans LiveSearch ou Google avec des guillemets pour qu'il recherche cette phrase exacte :
"La résolution de surcharge a échoué, car aucun 'Execute' accessible n'accepte ce nombre d'arguments"

En ne tapant qu'une partie du message, je suis tombé sur cette page de MSDN :
http://msdn2.microsoft.com/fr-fr/library/ms234658(vs.80).aspx

Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés

<hr />Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)
0
Rejoignez-nous