Lister (dir) un ftp avec inet dans 2 listbox & filtre (sans rechager)

Contenu du snippet

Bonjour,

J'ai repris dans l'idée le code de PCPUNCH http://www.vbfrance.com/codes/LISTER-DIR-FTP-AVEC-INET-DANS-LISTBOX_6921.aspx
mais avec une facon differente de traiter les infos du dir effectué sur le FTP

;o)

Pour mise en oeuvre il faut:
2 boutons ( Command1 & Command2 )
1 Textbox ( Text1 )
2 listbox ( list1 & List 2 )

Source / Exemple :


Dim Fichier

Private Sub Command1_Click()

Dim dirtxt As String

   Inet1.Protocol = icFTP 'declaration protocole...
   Inet1.URL = "ftp://LOGIN:MOTdePASSE@ServeurFTP" 'le ftp

' changement d'un dossier / Chr$(34) = " permet de prendre les espaces en compte
Inet1.Execute , "CD " & Chr$(34) & DOSSIER_Distant & "/" & Chr$(34)

' Continu si INET1 à fini la commande si dessus
While Inet1.StillExecuting
   DoEvents
Wend

' On effectue le DIR dans le dossier actuel
Inet1.Execute , "dir"

' Continu si INET1 à fini la commande si dessus
While Inet1.StillExecuting
   DoEvents
Wend

' Recupere la liste des fichier dans dirtxt
dirtxt = Inet1.GetChunk(1024)

' Continu si INET1 à fini la commande si dessus
While Inet1.StillExecuting
   DoEvents
Wend

' Ferme la connexion en cours
Inet1.Execute , "close"

' On découpe et assigne chaque nom à la 'Fichier'
Fichier = Split(dirtxt, vbCrLf)
' determine le nombre d'enregistrement
Nbre_de_fichier = UBound(Fichier)

' i = 2 car le 0 = \. et le 1 = \..
' Nbre_de_fichier - 2 car le premier enregistrement commence a 0
' et a la fin il y a un enregistrement vide d^à un retour à la ligne
For i = 2 To Nbre_de_fichier - 2

   Select Case UCase(Right(Fichier(i), 4)) ' examine les 4 derniers caratere en majuscule
      Case ".JPG" ' Si les 4 derniers caratere en majuscule = .JPG alors...
         List1.AddItem Fichier(i) ' Ajoute le fichier JPG dans le controle LIST1
   End Select

   List2.AddItem Fichier(i) ' Ajoute tous les fichiers dans le controle LIST2

Next i

End Sub

Private Sub Command2_Click()

' Effacement le LIST1
List1.Clear

For i = 2 To UBound(Fichier) - 2
' Si les 1er caracteres en majuscule = le début du contenu de text1 en majuscule alors ajouter à LIST1
If UCase(Left(Fichier(i), Len(Text1.Text))) = UCase(Text1.Text) Then List1.AddItem Fichier(i)
Next i

End Sub

Private Sub Form_Load()
Text1 = ""
Command1.Caption = "Connexion"
Command2.Caption = "Filtrer"
End Sub

Conclusion :


Contrairement au code de PCpunch , ce code permet deja un traitement independant pour par exemple filtrer la selection sans avoir à recharger par le net etc... ( un genre de buffer )

a vos commentaires ;)

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.