Problème avec un boucle For Each et une fonction recursive

Problème avec un boucle For Each et une fonction recursive - VB/VBA/VBS - Programmation

Marsh Posté le 17-08-2004 à 11:35:52    

Bonjour à tous  
 
J'ai un gros problème que j'arrive pas à résoudre alors si vous avez une petite idée se serai cool. Voilà mon problème :  
 
Dans une boucle For Each je parcours des dossiers, dans cette même boucle, je définie une fonction récursive qui va scanner les sous dossier d'un répertoire, mais lorsque je définie cette fonction le débuguer de VBS me signale une erreur de syntaxe.  
A mon avis tout est écrit correctement et le problème vient d'autre part, mais je ne sais pas d'où. Je vous joins le code...
 

Code :
  1. Set ptObj = CreateObject("Scripting.FileSystemObject" )
  2. Set ptDossierMusique = ptObj.GetFolder("E:\Music" )
  3. Set Musique = ptDossierMusique.SubFolders
  4. i = 1
  5. For Each DossierNomLib in Musique
  6. 'If DossierNomLib.name <> "Librairie" Then
  7. CheminLib = "C:\Data\Librairie_"& DossierNomLib.name &".txt"
  8. CheminMusique = "E:\Music\"& DossierNomLib.name
  9. Set txtF = ptObj.OpenTextFile(CheminLib,2,1)
  10. Set ptDossier = ptObj.GetFolder(CheminMusique)
  11. Set Fichier = ptDossier.Files
  12. Set Dossier = ptDossier.SubFolders
  13. Function SauveFichier()
  14. For Each Tab2 in Dossier
  15. Set ptDossier = ptObj.GetFolder(Tab2)
  16. Set Dossier = ptDossier.SubFolders
  17. Set Fichier = ptDossier.Files
  18. For Each Tab1 in Fichier
  19. If Tab1.Type = "Winamp media file" Then
  20. ContenueF = ptDossier.Path & "\" & Tab1.name
  21. txtF.WriteLine ContenueF
  22. i = i+1
  23. End If
  24. Next
  25. If Dossier.count <> 0 Then
  26. For Each Tab3 in Dossier
  27. SauveFichier()
  28. Next
  29. End If
  30. Next
  31. End Function
  32. 'End If
  33. Next


 
Merci de votre aide  
 
Amicalement
Splite :)

Reply

Marsh Posté le 17-08-2004 à 11:35:52   

Reply

Marsh Posté le 17-08-2004 à 16:17:40    

:pt1cable:  
Définir une fonction dans une boucle, j'ai encore jamais vu ça (en VBS en tout cas).
Définis ta fonction (qui prend un dossier en argument) en-dehors de ta boucle et contente toi de l'appeler depuis ta boucle!


Message édité par dividee le 17-08-2004 à 16:18:15
Reply

Marsh Posté le 18-08-2004 à 09:19:03    

merci, c'est vrai que c'est completement con ce que j'ai fais, mais j'ai mis pas mal de temps à m'en rendre compte...
je l'est sortie de la boucle et tout marche impec maintenant !

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed