Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1049 connectés 

  FORUM HardWare.fr
  Programmation

  [VB6] Pourquoi mon programme de téléchargement fonctionne mal ?

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[VB6] Pourquoi mon programme de téléchargement fonctionne mal ?

n°37836
LMF
///Miste & TDSiste
Posté le 07-06-2001 à 16:13:21  profilanswer
 

Mon programme doit lire dans une base de données access les différents parametres de connections a des comptes/serveurs FTP dans le but de télécharger tous les fichiers présents dans les comptes.
->MAis dans les différents comptes, quelques fichiers ont un nom identique mais de taille différentes.
Le probleme est que tous les fichiers de nom identiques sont remplacé sur le Disque dur (destination donnée par lecture de la base)par le premier du nom.
 
exemple : compte 1
fichier téléchargé :
azerty.log (1000KO)
aqw.aze(50KO)
 
compte 2
fichier téléchargé :
azerty.log (1000KO) (en réalité 1500KO, c'est donc meme que le premier)
vfr.aze(40KO)
...
De plus le second azerty.log met quelques secondes a etre téléchargé alors qu'il devrait mettre plus de temps (connection numéris), probleme de cache ????
 
voici le code :
' Déclaration des constantes
    Private Const SESSION As String = "Ftp Session"
    Private Const INTERNET_OPEN_TYPE_DIRECT = 1
    Private Const INTERNET_SERVICE_FTP = 1
    Private Const INTERNET_INVALID_PORT_NUMBER = 0
    Private Const ERROR_NO_MORE_FILES = 18
             
 'définition des variables globales
    Private mlINetHandle As Long
    Private mlConnection As Long
    Dim pData As WIN32_FIND_DATA
    Dim inetHandle As Long
Private Sub btquit_Click()
End
End Sub
 
Private Sub btstart_Click()
Dim dbimport As ADODB.Connection
Dim rstserveur As ADODB.Recordset
Dim nbenr As Integer
Dim ser, comp, pass, nom As String
 
     'ouverture catalogue
    Set dbimport = New ADODB.Connection
    With dbimport
        .Provider = "Microsoft.jet.OLEDB.4.0"
        .Mode = adModeShareDenyNone
        .Open "c:\fred\ftp\PR.mdb "
    End With
     
     ' Déclaration et ouverture du Recordset sur la table
     Set rstserveur = New ADODB.Recordset
 
    With rstserveur
         .LockType = adLockOptimistic
         .CursorLocation = adUseClient
         .Open "Serveur", dbimport, , , adCmdTable
    End With
     nbenr = rstserveur.RecordCount
         
    For i = 0 To 2
    'nbenr -1 (pour éviter de tout télécharger)
             
        ' Initialisation
          mlINetHandle = 0
          mlConnection = 0
         
        nom = rstserveur("nom" )
        Text1.Text = nom
       ' MsgBox ""
          ' Récupération des paramètres de connexion
         
        ser = rstserveur.Fields("serveur" )
        comp = rstserveur.Fields("compte" )
        pass = rstserveur.Fields("password" )
         
        'depart procédé de connection
         
        'Connexion internet
        mlINetHandle = FTP.InternetOpen(SESSION, INTERNET_OPEN_TYPE_DIRECT, vbNullString, vbNullString, 0)
     
         'ouverture connexion au site
        mlConnection = FTP.InternetConnect(mlINetHandle, ser, INTERNET_INVALID_PORT_NUMBER, _
        comp, pass, INTERNET_SERVICE_FTP, 0, 0)
    If (mlConnection = 0) Then
        MsgBox "erreur de connexion, vérifiez les paramètres ou attendez quelques instants", vbInformation, "Connexion"
    End If
     
     ' Déplacement au répertoire désiré
    cheminFTP = rstserveur.Fields("Rep_distant" )
       
    retour = FTP.FtpSetCurrentDirectory(mlConnection, cheminFTP)
    If (retour = False) Then MsgBox "erreur de changement de dossier", vbInformation, "FTP error"
       
    Text2.Text = "connection en cours; veuillez patienter..."
       
      'efface la liste
        List1.Clear
         
    'rempli la liste
    inetHandle = FTP.FtpFindFirstFile(mlConnection, "*.*", pData, 0, 0)
 
    If (inetHandle <> 0) Then
        If List1.List(0) = "" Then
        Do
        currentFile = Left$(pData.cFileName, InStr(1, pData.cFileName, vbNullChar, vbBinaryCompare) - 1)
        List1.AddItem currentFile
        fctreturn = FTP.FTPFindNextFile(inetHandle, pData)
 
        Loop While fctreturn
             End If
    End If
     
        Dim m4, dirname As String
        Dim z4, i4 As Integer
        Dim retour4 As Boolean
             
        z4 = List1.ListCount
         
           
        dirname = Dir(rstserveur.Fields("Rep_Local" ) + rstserveur.Fields("nom" ) + "\", 16)
        If dirname = "" Then
                MkDir rstserveur.Fields("Rep_Local" ) + rstserveur.Fields("nom" ) + "\"
            Else
                Set fso = CreateObject("Scripting.FileSystemObject" )
                fso.DeleteFile rstserveur.Fields("Rep_Local" ) + rstserveur.Fields("nom" ) + "\" + "*.*"
        End If
                             
        'crée un répertoire selon le nom du serveur
         
        'télécharge les fichiers du serveur dans le répertoire crée
         
        m4 = ""
        For i4 = 0 To (z4 - 1)
             m4 = ""
             m4 = List1.List(i4)
    '         MsgBox mlConnection
   '          MsgBox rstserveur.Fields("Rep_Local" ) & rstserveur.Fields("nom" ) & "\" & m4
             retour4 = FTP.FtpGetFile(mlConnection, m4, rstserveur.Fields("Rep_Local" ) + rstserveur.Fields("nom" ) + "\" + m4, True, FILE_ATTRIBUTE_NORMAL, INTERNET_FLAG_RELOAD + INTERNET_FLAG_TRANSFER_BINARY, 0)
             If retour = True Then
                Text2.Text = m4 + " copié"
            End If
        Next i4
       Text2.Text = "Fichiers téléchargés !"
       Text1.Text = ""
       rstserveur.MoveNext
        ' fermeture de la connexion au site FTP
        FTP.InternetCloseHandle mlConnection
       ' fermeture de la connexion internet
     
       FTP.InternetCloseHandle mlINetHandle
    Next i
   End Sub

mood
Publicité
Posté le 07-06-2001 à 16:13:21  profilanswer
 

n°37901
Kyle_Katar​n
Posté le 07-06-2001 à 18:59:30  profilanswer
 

Je te conseille mon composant K-ftp que j'ai codé tout seul est  qui est dispo gratos sur mon site.
 
Je suis ouvert à tout commentaire.

n°37931
LMF
///Miste & TDSiste
Posté le 07-06-2001 à 21:41:41  profilanswer
 

ok, je vais voir a quoi ca ressemble.
Sinon, ce programme est pour l'entreprise ou je fais mon stage( entr d'info en +), j'espere que c'est pas du tout pret :D

n°38243
LMF
///Miste & TDSiste
Posté le 08-06-2001 à 16:58:54  profilanswer
 

:hello:

n°38262
Kyle_Katar​n
Posté le 08-06-2001 à 18:54:58  profilanswer
 

Ca te va alors ?

n°38267
Kyle_Katar​n
Posté le 08-06-2001 à 19:19:05  profilanswer
 

Dans le pire des cas, je te mettre les sources à disposition sur mon site (c'est du vb6 + winsock "tout con" )

n°38627
LMF
///Miste & TDSiste
Posté le 11-06-2001 à 08:41:24  profilanswer
 

C'est sympa merci, mais je dois utiliser des outils maison.

n°38633
thegti
La constipation se soigne ...
Posté le 11-06-2001 à 09:43:47  profilanswer
 

Tiens les pros de la programmation "pour FTP"
J'ai une question moi:
est ce qu'on peut outrepasser l'utilisation de répertoire COM1, COM2, etc... ?
Comment connaitre les répertoires qui sont derrière ?

n°38863
Kyle_Katar​n
Posté le 11-06-2001 à 19:39:03  profilanswer
 

Ca te va pas alors ?

n°38908
LMF
///Miste & TDSiste
Posté le 12-06-2001 à 08:31:18  profilanswer
 

En fait, j'ai touvé un début de solution, les fichiers sont copié sur le DD dans le tépertoire temp...internet files dans diférents répertoires, il faut les supprimers entre chaque changement de serveur.
Merci quand meme Kyle.


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation

  [VB6] Pourquoi mon programme de téléchargement fonctionne mal ?

 

Sujets relatifs
Quelle instruction pour lançer un exe en VB6 ?[VB6] Passer des parametres dans un shell
[VB6] déploiement multi-langages[VB6]File System Object FSO
[VB6] comment séléctionner un nom avec la souris dans une listbox ?Lancer une requete sur Google depuis un programme Java
[VB6] Pb de type[VB6] Comment faire appel à un champ d'une table
[VB6] Comment lire les données dans une listbox ?[VB6] appeler une fonction faites depuis Access97
Plus de sujets relatifs à : [VB6] Pourquoi mon programme de téléchargement fonctionne mal ?


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR