cs_erwan35
Messages postés57Date d'inscriptionmercredi 23 avril 2003StatutMembreDernière intervention21 avril 2006
-
29 janv. 2004 à 11:30
cs_erwan35
Messages postés57Date d'inscriptionmercredi 23 avril 2003StatutMembreDernière intervention21 avril 2006
-
29 janv. 2004 à 13:57
Bonjour à tous!
Tout d'abord je souhaite remercier Jujufouq pour sa source que j'ai réutilisé.
En fait, je veux parcourir tous les fichiers de C:\ et je veux qu'il m'indique dans label1 le nom du fichier parcouru, mais j'ai l'impression que c'est trop rapide, ça bouffe toute la ressource, rien n'apparit dans le label1.
Que faire?
Autre question, comment faire pour arrêter le scan en cours avec un bouton de commande?
Voici le code:
Dim fso As New FileSystemObject
Private Sub Command1_Click()
On Error Resume Next
Scan "C:"
End Sub
Private Sub Scan(DossierEnCours As String)
On Error Resume Next
'#Déclarations
Dim Dossier As Folder
Dim SousDossier As Folder
Dim Fichier As File
Dim nomfichier As String
'#Affectations
Set Dossier = fso.GetFolder(DossierEnCours)
'#Exécution
'Fichiers
For Each Fichier In Dossier.Files
Label1.Caption = Fichier.Path
Next Fichier
'Dossiers
For Each SousDossier In Dossier.SubFolders
Label1.Caption = SousDossier.Path
Scan SousDossier.Path & ""
Next SousDossier
End Sub
cs_BFR
Messages postés88Date d'inscriptionmardi 30 juillet 2002StatutMembreDernière intervention 1 mars 2008 29 janv. 2004 à 12:08
Salut
c'est une des solutions qui existe pour interrompre une boucle tu peut utiliser cela:
'A COLLER DANS UN MODULE
'-INTERROMPRE UNE BOUCLE DO***********************
Public Declare Function GetAsyncKeyState Lib "user32" (ByVal vKey As Long) As Integer
Public Const VK_ESCAPE = &H1B'Touche échappement
Public Const VK_LBUTTON = &H1'Clic gauche
Public Const VK_RBUTTON = &H2'Clic droit
'-INTERROMPRE UNE BOUCLE DO FIN*******************
'APPEL A METTRE DANS LA BOUCLE
For Each Fichier In Dossier.Files
Doevents'-Redonne la main à windows
If GetAsyncKeyState(VK_ESCAPE) < 0 Or GetAsyncKeyState(VK_LBUTTON) < 0 Then
Exit Do
End If
cs_DARKSIDIOUS
Messages postés15814Date d'inscriptionjeudi 8 août 2002StatutMembreDernière intervention 4 mars 2013130 29 janv. 2004 à 12:27
Ton problème vient de la priorité de ton programme : tant qu'il n'a pas fini, il prendra toutes les ressources. Pour éviter cela, place un "DoEvents" dans tes boucles pour permettre au système de reprendre la main à chaque tout de boucle, et ainsi mettre à jour ton interface.
Pour exemple concret de ce type de manipulation, va voir ma source nommée Defillement copie dossier : j'affiche les fichiers en cours de copie dans un contrôle Label...
DarK Sidious
[Responsable de la rubrique API et responsable VB du site www.ProgOtoP.com]