Vb6 et FTP

pierrot3333 Messages postés 4 Date d'inscription lundi 15 mai 2006 Statut Membre Dernière intervention 17 mars 2008 - 1 févr. 2007 à 10:15
PCPT Messages postés 13272 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 - 1 févr. 2007 à 16:08
Bonjour,

j'ai 2 fichiers textes à uploader sur un serveur. le problème est que le traitement se termine avant que les fichiers ne soient complètement uploadés et donc ils sont tronqués. Existe-t'il un moyen d'attendre que le premier soit terminé pour que le 2 commence a etre uploadé ?

Voici mon code :

 chemin_frequence = "frequence.csv"
    chemin_colis = "colis.csv"
   
    adresse = "ftp://xxx.fff.com"
    user = "yyy"
    Password = "123456"
   
    Inet1.URL = adresse
    Inet1.UserName = user
    Inet1.Password = Password
    
    Inet1.Execute , "PUT " & chemin_frequence & " /" & "frequence.csv"
    Inet1.Execute , "PUT " & chemin_colis & " /" & "colis.csv"
   
    MsgBox "Transfert terminé"
   

Merci

6 réponses

cs_MPi Messages postés 3877 Date d'inscription mardi 19 mars 2002 Statut Membre Dernière intervention 17 août 2018 23
1 févr. 2007 à 11:13
Tu pourrais peut-être vérifier, dans une boucle, la grosseur des fichiers (sur le PC et sur le serveur)
S'ils sont identiques, tu commences le deuxième... et finalement tu termines

MPi
0
pierrot3333 Messages postés 4 Date d'inscription lundi 15 mai 2006 Statut Membre Dernière intervention 17 mars 2008
1 févr. 2007 à 11:16
mouais tu veux dire avec un truc du style doevents ?

Do while tailleserveur <> taillefichier
   DoEvents
Loop
0
cs_MPi Messages postés 3877 Date d'inscription mardi 19 mars 2002 Statut Membre Dernière intervention 17 août 2018 23
1 févr. 2007 à 11:36
Je n'ai pas testé, mais ça pourrait être quelque chose comme ça. Avec ou sans DoEvents, il s'agirait de vérifier les 2 fichiers.

J'ai déjà utilisé un contrôle de la compagnie Distinct qui permettait de calculer le nombre de bits transférés. Il y a peut-être moyen de travailler de ce côté aussi, mais là, je ne pourrais t'aider....

MPi
0
PCPT Messages postés 13272 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 47
1 févr. 2007 à 13:41
salut,
jamais testé inet en ftp, mais il a la propriété booléenne StillExecuting qui devrait servir pour ce test

genre....

        Do Until Inet1.StillExecuting = False
           DoEvents
        Loop

nb : doevents indispensable ;)

++
PCPT   [AFCK]
<hr size ="2" width="100%" />Prenez un instant pour répondre à [infomsg_SONDAGE-POP3-POUR-CS_769706.aspx ce sondage] svp
0

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

Posez votre question
pierrot3333 Messages postés 4 Date d'inscription lundi 15 mai 2006 Statut Membre Dernière intervention 17 mars 2008
1 févr. 2007 à 14:57
et donc je le place où ?

comme ceci 2 fois :

   chemin_frequence = "frequence.csv"
    chemin_colis = "colis.csv"
   
    adresse = "
ftp://xxx.fff.com
"
    user = "yyy"
    Password = "123456"
   
    Inet1.URL = adresse
    Inet1.UserName = user
    Inet1.Password = Password
    
    Inet1.Execute , "PUT " & chemin_frequence & " /" & "frequence.csv"
   
   Do Until Inet1.StillExecuting = False
     DoEvents
   Loop

    Inet1.Execute , "PUT " & chemin_colis & " /" & "colis.csv"

 Do Until Inet1.StillExecuting = False
     DoEvents
   Loop

    
    MsgBox "Transfert terminé"

merci
0
PCPT Messages postés 13272 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 47
1 févr. 2007 à 16:08
oui... ou presque.
et tu es sûr de tes variables?

çà me parraît bizarre, tes chaînes seront :
"PUT frequence.csv /frequence.csv"
"PUT colis.csv colis.csv"

reste juste à synthétiser, ne jamais mettre 2 fois le même code?!!
un truc dans ce genre (pas testé)

Option Explicit

Private Sub Form_Load()
    Call InitInet("ftp://xxx.fff.com", "yyy", "123456")
    Call InetPUT("chemin_machin_VRAINOM1/frequence.csv")
    Call InetPUT("chemin_machin_VRAINOM2/colis.csv")
    MsgBox "Transfert terminé"
End Sub

Private Sub Form_QueryUnload(Cancel As Integer, UnloadMode As Integer)
    Me.Hide
    Do Until Not (Inet1.StillExecuting)
        Inet1.Cancel
        DoEvents
    Loop
End Sub

Private Sub InitInet(sFtpUrl As String, sUser As String, sPassword As String)
    Inet1.URL =  sFtpUrl
    Inet1.UserName = sUser
    Inet1.Password = sPassword
End Sub

Private Sub InetPUT(sPathFile As String)
    Inet1.Execute , "PUT " & sPathFile
    Do Until Not (Inet1.StillExecuting)
        DoEvents
    Loop
End Sub

<small>Coloration
syntaxique automatique [AFCK] </small>
       

++
PCPT  [AFCK]
<hr size ="2" width="100%" />Prenez un instant pour répondre à [infomsg_SONDAGE-POP3-POUR-CS_769706.aspx ce sondage] svp
0
Rejoignez-nous