Besoin d'aide sur les arrays ou la création d'objets
7 réponses
Ziggy
Bonjour @ tous,
J'ai des problèmes de compréhension sur la création de tableau
Le principe, je pense l'avoir :
Créer un objet contenant une liste
Boucler sur la liste et incrémenter un tableau
strComputer = "."
Set objWMIService = GetObject("winmgmts:{impersonationLevel=impersonate}!\\"
& strComputer & "\root\cimv2")
Set colItems = objWMIService.ExecQuery("Select * from Win32_PrinterDriver")
For objItem In colItems
Set objArray = ??? Quoi mettre ???
item = 0
For Each objInArray In objArray
Redim Preserve strarrDependentFiles(item)
strarrDependentFiles(item) = objitem.DependentFiles
item = item + 1
Next
Next
For item = LBound(arrDependentFiles) To UBound(arrDependentFiles)
Wscript.Echo arrDependentFiles(item)
Next
Mais dans mon cas je ne vois pas comment créer le tableau.
Pour la propriété DependentFiles (Data type: string array), je voudrais
remplir la liste dans arrDependentFiles() afin de la lister.
Mais là, je sèche.
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Georges MAUREL
Bonjour Peut-être que cela devrait fonctionner...
strComputer = "." Set objWMIService = GetObject("winmgmts:{impersonationLevel=impersonate}!" & strComputer & "rootcimv2") Set colItems = objWMIService.ExecQuery("Select * from Win32_PrinterDriver")
item = 0
For Each objItem In colItems For boucle = LBound(objitem.DependentFiles) To UBound(objitem.DependentFiles) Redim Preserve strarrDependentFiles(item) strarrDependentFiles(item) = objitem.DependentFiles(boucle) item = item + 1 Next Next
Cordialement Georges
"Ziggy" <tpmsn2004nospam]@nospamfree.fr> a écrit dans le message de news:
Bonjour @ tous,
J'ai des problèmes de compréhension sur la création de tableau Le principe, je pense l'avoir : Créer un objet contenant une liste Boucler sur la liste et incrémenter un tableau
strComputer = "." Set objWMIService GetObject("winmgmts:{impersonationLevel=impersonate}!" & strComputer & "rootcimv2") Set colItems = objWMIService.ExecQuery("Select * from Win32_PrinterDriver")
For objItem In colItems Set objArray = ??? Quoi mettre ??? item = 0 For Each objInArray In objArray Redim Preserve strarrDependentFiles(item) strarrDependentFiles(item) = objitem.DependentFiles item = item + 1 Next Next
For item = LBound(arrDependentFiles) To UBound(arrDependentFiles) Wscript.Echo arrDependentFiles(item) Next
Mais dans mon cas je ne vois pas comment créer le tableau.
Pour la propriété DependentFiles (Data type: string array), je voudrais remplir la liste dans arrDependentFiles() afin de la lister. Mais là, je sèche.
Si quelqu'un pouvait m'aider ?
Par avance merci
Thierry
Bonjour
Peut-être que cela devrait fonctionner...
strComputer = "."
Set objWMIService = GetObject("winmgmts:{impersonationLevel=impersonate}!\"
& strComputer & "rootcimv2")
Set colItems = objWMIService.ExecQuery("Select * from Win32_PrinterDriver")
item = 0
For Each objItem In colItems
For boucle = LBound(objitem.DependentFiles) To
UBound(objitem.DependentFiles)
Redim Preserve strarrDependentFiles(item)
strarrDependentFiles(item) = objitem.DependentFiles(boucle)
item = item + 1
Next
Next
Cordialement
Georges
"Ziggy" <tpmsn2004nospam]@nospamfree.fr> a écrit dans le message de
news:uSixbDxoFHA.2484@TK2MSFTNGP15.phx.gbl...
Bonjour @ tous,
J'ai des problèmes de compréhension sur la création de tableau
Le principe, je pense l'avoir :
Créer un objet contenant une liste
Boucler sur la liste et incrémenter un tableau
strComputer = "."
Set objWMIService GetObject("winmgmts:{impersonationLevel=impersonate}!\"
& strComputer & "rootcimv2")
Set colItems = objWMIService.ExecQuery("Select * from
Win32_PrinterDriver")
For objItem In colItems
Set objArray = ??? Quoi mettre ???
item = 0
For Each objInArray In objArray
Redim Preserve strarrDependentFiles(item)
strarrDependentFiles(item) = objitem.DependentFiles
item = item + 1
Next
Next
For item = LBound(arrDependentFiles) To UBound(arrDependentFiles)
Wscript.Echo arrDependentFiles(item)
Next
Mais dans mon cas je ne vois pas comment créer le tableau.
Pour la propriété DependentFiles (Data type: string array), je voudrais
remplir la liste dans arrDependentFiles() afin de la lister.
Mais là, je sèche.
strComputer = "." Set objWMIService = GetObject("winmgmts:{impersonationLevel=impersonate}!" & strComputer & "rootcimv2") Set colItems = objWMIService.ExecQuery("Select * from Win32_PrinterDriver")
item = 0
For Each objItem In colItems For boucle = LBound(objitem.DependentFiles) To UBound(objitem.DependentFiles) Redim Preserve strarrDependentFiles(item) strarrDependentFiles(item) = objitem.DependentFiles(boucle) item = item + 1 Next Next
Cordialement Georges
"Ziggy" <tpmsn2004nospam]@nospamfree.fr> a écrit dans le message de news:
Bonjour @ tous,
J'ai des problèmes de compréhension sur la création de tableau Le principe, je pense l'avoir : Créer un objet contenant une liste Boucler sur la liste et incrémenter un tableau
strComputer = "." Set objWMIService GetObject("winmgmts:{impersonationLevel=impersonate}!" & strComputer & "rootcimv2") Set colItems = objWMIService.ExecQuery("Select * from Win32_PrinterDriver")
For objItem In colItems Set objArray = ??? Quoi mettre ??? item = 0 For Each objInArray In objArray Redim Preserve strarrDependentFiles(item) strarrDependentFiles(item) = objitem.DependentFiles item = item + 1 Next Next
For item = LBound(arrDependentFiles) To UBound(arrDependentFiles) Wscript.Echo arrDependentFiles(item) Next
Mais dans mon cas je ne vois pas comment créer le tableau.
Pour la propriété DependentFiles (Data type: string array), je voudrais remplir la liste dans arrDependentFiles() afin de la lister. Mais là, je sèche.
Si quelqu'un pouvait m'aider ?
Par avance merci
Thierry
Fred
Dans : news:, Ziggy disait :
Bonjour @ tous,
Bonjour,
J'ai des problèmes de compréhension sur la création de tableau Le principe, je pense l'avoir : Créer un objet contenant une liste Boucler sur la liste et incrémenter un tableau
Je complète la réponse de George car en testant j'ai noté que parfois, le tableau DependentFiles n'existe pas (?) probablement à cause d'une imprimante virtuelle que j'ai sur mon poste. J'ai donc ajouté un test.
strComputer = "." Set objWMIService = GetObject("winmgmts:{impersonationLevel=impersonate}!" & strComputer & "rootcimv2") Set colItems = objWMIService.ExecQuery("Select * from Win32_PrinterDriver") Dim a a = Array() item=0 For each objItem In colItems If not IsNull(objItem.DependentFiles) Then Redim Preserve a(UBound(a)+UBound(objItem.DependentFiles)+1) For i=0 to UBound(objItem.DependentFiles) a(item)=objItem.DependentFiles(i) item=item+1 Next End If Next
For item = LBound(a) To UBound(a) Wscript.Echo item & " : " & a(item) Next
-- Fred http://www.cerbermail.com/?3kA6ftaCvT
Dans : news:uSixbDxoFHA.2484@TK2MSFTNGP15.phx.gbl,
Ziggy disait :
Bonjour @ tous,
Bonjour,
J'ai des problèmes de compréhension sur la création de tableau
Le principe, je pense l'avoir :
Créer un objet contenant une liste
Boucler sur la liste et incrémenter un tableau
Je complète la réponse de George car en testant j'ai noté que parfois,
le tableau DependentFiles n'existe pas (?) probablement à cause d'une
imprimante virtuelle que j'ai sur mon poste. J'ai donc ajouté un test.
strComputer = "."
Set objWMIService =
GetObject("winmgmts:{impersonationLevel=impersonate}!\" & strComputer &
"rootcimv2")
Set colItems = objWMIService.ExecQuery("Select * from
Win32_PrinterDriver")
Dim a
a = Array()
item=0
For each objItem In colItems
If not IsNull(objItem.DependentFiles) Then
Redim Preserve a(UBound(a)+UBound(objItem.DependentFiles)+1)
For i=0 to UBound(objItem.DependentFiles)
a(item)=objItem.DependentFiles(i)
item=item+1
Next
End If
Next
For item = LBound(a) To UBound(a)
Wscript.Echo item & " : " & a(item)
Next
J'ai des problèmes de compréhension sur la création de tableau Le principe, je pense l'avoir : Créer un objet contenant une liste Boucler sur la liste et incrémenter un tableau
Je complète la réponse de George car en testant j'ai noté que parfois, le tableau DependentFiles n'existe pas (?) probablement à cause d'une imprimante virtuelle que j'ai sur mon poste. J'ai donc ajouté un test.
strComputer = "." Set objWMIService = GetObject("winmgmts:{impersonationLevel=impersonate}!" & strComputer & "rootcimv2") Set colItems = objWMIService.ExecQuery("Select * from Win32_PrinterDriver") Dim a a = Array() item=0 For each objItem In colItems If not IsNull(objItem.DependentFiles) Then Redim Preserve a(UBound(a)+UBound(objItem.DependentFiles)+1) For i=0 to UBound(objItem.DependentFiles) a(item)=objItem.DependentFiles(i) item=item+1 Next End If Next
For item = LBound(a) To UBound(a) Wscript.Echo item & " : " & a(item) Next
-- Fred http://www.cerbermail.com/?3kA6ftaCvT
Ziggy
C'est pas peut-être, c'est sur ! Merci Georges. Ne pas oublier les parenthèses lors de la déclaration de la variable si Option Implicit et le -1 pour le Ubound de la lecture du tableau
"Georges MAUREL" <georges.maurel_at_free.fr> a écrit dans le message de news: %
Bonjour Peut-être que cela devrait fonctionner...
strComputer = "." Set objWMIService = GetObject("winmgmts:{impersonationLevel=impersonate}!" & strComputer & "rootcimv2") Set colItems = objWMIService.ExecQuery("Select * from Win32_PrinterDriver")
item = 0
For Each objItem In colItems For boucle = LBound(objitem.DependentFiles) To UBound(objitem.DependentFiles) Redim Preserve strarrDependentFiles(item) strarrDependentFiles(item) = objitem.DependentFiles(boucle) item = item + 1 Next Next
Cordialement Georges
"Ziggy" <tpmsn2004nospam]@nospamfree.fr> a écrit dans le message de news:
Bonjour @ tous,
J'ai des problèmes de compréhension sur la création de tableau Le principe, je pense l'avoir : Créer un objet contenant une liste Boucler sur la liste et incrémenter un tableau
strComputer = "." Set objWMIService > GetObject("winmgmts:{impersonationLevel=impersonate}!" & strComputer & "rootcimv2") Set colItems = objWMIService.ExecQuery("Select * from Win32_PrinterDriver")
For objItem In colItems Set objArray = ??? Quoi mettre ??? item = 0 For Each objInArray In objArray Redim Preserve strarrDependentFiles(item) strarrDependentFiles(item) = objitem.DependentFiles item = item + 1 Next Next
For item = LBound(arrDependentFiles) To UBound(arrDependentFiles) Wscript.Echo arrDependentFiles(item) Next
Mais dans mon cas je ne vois pas comment créer le tableau.
Pour la propriété DependentFiles (Data type: string array), je voudrais remplir la liste dans arrDependentFiles() afin de la lister. Mais là, je sèche.
Si quelqu'un pouvait m'aider ?
Par avance merci
Thierry
C'est pas peut-être, c'est sur !
Merci Georges.
Ne pas oublier les parenthèses lors de la déclaration de la variable si
Option Implicit
et le -1 pour le Ubound de la lecture du tableau
"Georges MAUREL" <georges.maurel_at_free.fr> a écrit dans le message de
news: %23U4VhXxoFHA.3068@TK2MSFTNGP15.phx.gbl...
Bonjour
Peut-être que cela devrait fonctionner...
strComputer = "."
Set objWMIService =
GetObject("winmgmts:{impersonationLevel=impersonate}!\"
& strComputer & "rootcimv2")
Set colItems = objWMIService.ExecQuery("Select * from
Win32_PrinterDriver")
item = 0
For Each objItem In colItems
For boucle = LBound(objitem.DependentFiles) To
UBound(objitem.DependentFiles)
Redim Preserve strarrDependentFiles(item)
strarrDependentFiles(item) = objitem.DependentFiles(boucle)
item = item + 1
Next
Next
Cordialement
Georges
"Ziggy" <tpmsn2004nospam]@nospamfree.fr> a écrit dans le message de
news:uSixbDxoFHA.2484@TK2MSFTNGP15.phx.gbl...
Bonjour @ tous,
J'ai des problèmes de compréhension sur la création de tableau
Le principe, je pense l'avoir :
Créer un objet contenant une liste
Boucler sur la liste et incrémenter un tableau
strComputer = "."
Set objWMIService > GetObject("winmgmts:{impersonationLevel=impersonate}!\"
& strComputer & "rootcimv2")
Set colItems = objWMIService.ExecQuery("Select * from
Win32_PrinterDriver")
For objItem In colItems
Set objArray = ??? Quoi mettre ???
item = 0
For Each objInArray In objArray
Redim Preserve strarrDependentFiles(item)
strarrDependentFiles(item) = objitem.DependentFiles
item = item + 1
Next
Next
For item = LBound(arrDependentFiles) To UBound(arrDependentFiles)
Wscript.Echo arrDependentFiles(item)
Next
Mais dans mon cas je ne vois pas comment créer le tableau.
Pour la propriété DependentFiles (Data type: string array), je voudrais
remplir la liste dans arrDependentFiles() afin de la lister.
Mais là, je sèche.
C'est pas peut-être, c'est sur ! Merci Georges. Ne pas oublier les parenthèses lors de la déclaration de la variable si Option Implicit et le -1 pour le Ubound de la lecture du tableau
"Georges MAUREL" <georges.maurel_at_free.fr> a écrit dans le message de news: %
Bonjour Peut-être que cela devrait fonctionner...
strComputer = "." Set objWMIService = GetObject("winmgmts:{impersonationLevel=impersonate}!" & strComputer & "rootcimv2") Set colItems = objWMIService.ExecQuery("Select * from Win32_PrinterDriver")
item = 0
For Each objItem In colItems For boucle = LBound(objitem.DependentFiles) To UBound(objitem.DependentFiles) Redim Preserve strarrDependentFiles(item) strarrDependentFiles(item) = objitem.DependentFiles(boucle) item = item + 1 Next Next
Cordialement Georges
"Ziggy" <tpmsn2004nospam]@nospamfree.fr> a écrit dans le message de news:
Bonjour @ tous,
J'ai des problèmes de compréhension sur la création de tableau Le principe, je pense l'avoir : Créer un objet contenant une liste Boucler sur la liste et incrémenter un tableau
strComputer = "." Set objWMIService > GetObject("winmgmts:{impersonationLevel=impersonate}!" & strComputer & "rootcimv2") Set colItems = objWMIService.ExecQuery("Select * from Win32_PrinterDriver")
For objItem In colItems Set objArray = ??? Quoi mettre ??? item = 0 For Each objInArray In objArray Redim Preserve strarrDependentFiles(item) strarrDependentFiles(item) = objitem.DependentFiles item = item + 1 Next Next
For item = LBound(arrDependentFiles) To UBound(arrDependentFiles) Wscript.Echo arrDependentFiles(item) Next
Mais dans mon cas je ne vois pas comment créer le tableau.
Pour la propriété DependentFiles (Data type: string array), je voudrais remplir la liste dans arrDependentFiles() afin de la lister. Mais là, je sèche.
Si quelqu'un pouvait m'aider ?
Par avance merci
Thierry
Ziggy
Merci Fred, cela marche également.
Par contre, je ne comprend pas l'utilité de Redim Preserve a(UBound(a)+UBound(objItem.DependentFiles)+1)
Thierry
strComputer = "." Set objWMIService = GetObject("winmgmts:{impersonationLevel=impersonate}!" & strComputer & "rootcimv2") Set colItems = objWMIService.ExecQuery("Select * from Win32_PrinterDriver") Dim a a = Array() item=0 For each objItem In colItems If not IsNull(objItem.DependentFiles) Then Redim Preserve a(UBound(a)+UBound(objItem.DependentFiles)+1) For i=0 to UBound(objItem.DependentFiles) a(item)=objItem.DependentFiles(i) item=item+1 Next End If Next
For item = LBound(a) To UBound(a) Wscript.Echo item & " : " & a(item) Next
Merci Fred, cela marche également.
Par contre, je ne comprend pas l'utilité de
Redim Preserve a(UBound(a)+UBound(objItem.DependentFiles)+1)
Thierry
strComputer = "."
Set objWMIService =
GetObject("winmgmts:{impersonationLevel=impersonate}!\" & strComputer &
"rootcimv2")
Set colItems = objWMIService.ExecQuery("Select * from
Win32_PrinterDriver")
Dim a
a = Array()
item=0
For each objItem In colItems
If not IsNull(objItem.DependentFiles) Then
Redim Preserve a(UBound(a)+UBound(objItem.DependentFiles)+1)
For i=0 to UBound(objItem.DependentFiles)
a(item)=objItem.DependentFiles(i)
item=item+1
Next
End If
Next
For item = LBound(a) To UBound(a)
Wscript.Echo item & " : " & a(item)
Next
Par contre, je ne comprend pas l'utilité de Redim Preserve a(UBound(a)+UBound(objItem.DependentFiles)+1)
Thierry
strComputer = "." Set objWMIService = GetObject("winmgmts:{impersonationLevel=impersonate}!" & strComputer & "rootcimv2") Set colItems = objWMIService.ExecQuery("Select * from Win32_PrinterDriver") Dim a a = Array() item=0 For each objItem In colItems If not IsNull(objItem.DependentFiles) Then Redim Preserve a(UBound(a)+UBound(objItem.DependentFiles)+1) For i=0 to UBound(objItem.DependentFiles) a(item)=objItem.DependentFiles(i) item=item+1 Next End If Next
For item = LBound(a) To UBound(a) Wscript.Echo item & " : " & a(item) Next
Fred
Dans : news:%, Ziggy disait :
Merci Fred, cela marche également.
Par contre, je ne comprend pas l'utilité de Redim Preserve a(UBound(a)+UBound(objItem.DependentFiles)+1)
Plutôt que de faire un Redim Preserve à chaque nouvel élément du tableau, je le fait dès que je connais la taille du tableau DependentFiles. Si DependentFiles a une taille de N, j'augmente tout de suite la taille de mon tableau «a» de N éléments. La taille de DependFiles étant égale à UBound + 1 car les indices commencent à 0. C'est juste pour ne pas trop fatiguer le processeur ;-)
As-tu eu des cas où DependentFiles était nul ? Je ne suis pas rentré dans le détail mais je crois que c'est l'imprimante virtuelle «Microsoft Office Document Image Writer» qui provoquait cela. C'est installé avec Office 2003.
-- Fred http://www.cerbermail.com/?3kA6ftaCvT
Dans : news:%23Y0ADx0oFHA.1872@TK2MSFTNGP10.phx.gbl,
Ziggy disait :
Merci Fred, cela marche également.
Par contre, je ne comprend pas l'utilité de
Redim Preserve a(UBound(a)+UBound(objItem.DependentFiles)+1)
Plutôt que de faire un Redim Preserve à chaque nouvel élément du
tableau, je le fait dès que je connais la taille du tableau
DependentFiles.
Si DependentFiles a une taille de N, j'augmente tout de suite la taille
de mon tableau «a» de N éléments. La taille de DependFiles étant égale à
UBound + 1 car les indices commencent à 0.
C'est juste pour ne pas trop fatiguer le processeur ;-)
As-tu eu des cas où DependentFiles était nul ? Je ne suis pas rentré
dans le détail mais je crois que c'est l'imprimante virtuelle «Microsoft
Office Document Image Writer» qui provoquait cela. C'est installé avec
Office 2003.
Par contre, je ne comprend pas l'utilité de Redim Preserve a(UBound(a)+UBound(objItem.DependentFiles)+1)
Plutôt que de faire un Redim Preserve à chaque nouvel élément du tableau, je le fait dès que je connais la taille du tableau DependentFiles. Si DependentFiles a une taille de N, j'augmente tout de suite la taille de mon tableau «a» de N éléments. La taille de DependFiles étant égale à UBound + 1 car les indices commencent à 0. C'est juste pour ne pas trop fatiguer le processeur ;-)
As-tu eu des cas où DependentFiles était nul ? Je ne suis pas rentré dans le détail mais je crois que c'est l'imprimante virtuelle «Microsoft Office Document Image Writer» qui provoquait cela. C'est installé avec Office 2003.
-- Fred http://www.cerbermail.com/?3kA6ftaCvT
Ziggy
Je ne m'étais pas rendu compte du problème car j'avais activé On Error Resume Next. J'ai également une erreur
Merci
Thierry
As-tu eu des cas où DependentFiles était nul ? Je ne suis pas rentré dans le détail mais je crois que c'est l'imprimante virtuelle «Microsoft Office Document Image Writer» qui provoquait cela. C'est installé avec Office 2003.
-- Fred http://www.cerbermail.com/?3kA6ftaCvT
Je ne m'étais pas rendu compte du problème car j'avais activé On Error
Resume Next.
J'ai également une erreur
Merci
Thierry
As-tu eu des cas où DependentFiles était nul ? Je ne suis pas rentré dans
le détail mais je crois que c'est l'imprimante virtuelle «Microsoft Office
Document Image Writer» qui provoquait cela. C'est installé avec Office
2003.
Je ne m'étais pas rendu compte du problème car j'avais activé On Error Resume Next. J'ai également une erreur
Merci
Thierry
As-tu eu des cas où DependentFiles était nul ? Je ne suis pas rentré dans le détail mais je crois que c'est l'imprimante virtuelle «Microsoft Office Document Image Writer» qui provoquait cela. C'est installé avec Office 2003.
-- Fred http://www.cerbermail.com/?3kA6ftaCvT
Jean
Plutôt que de faire un Redim Preserve à chaque nouvel élément du tableau, je le fait dès que je connais la taille du tableau DependentFiles. Si DependentFiles a une taille de N, j'augmente tout de suite la taille de mon tableau «a» de N éléments. La taille de DependFiles étant égale à UBound + 1 car les indices commencent à 0.
On peut aussi se passer de la variable item et de son incrémentation :
Set coll=_ GetObject _ (_ "winmgmts:{impersonationLevel=impersonate}!"&_ strComputer&_ "rootcimv2"_ )_ .ExecQuery("Select * from "&strClass)
ReDim a(-1)
For Each obj In coll With obj If Not IsNull(.DependentFiles) Then For i=0 to UBound(.DependentFiles) ReDim Preserve a(UBound(a)+1) a(UBound(a))=.DependentFiles(i) WScript.Sleep 10 Next End If End With WScript.Sleep 10 Next
For i=LBound(a) To UBound(a) r=r&i&" : "&a(i)&VbNewLine Next
WScript.Echo r '---8<---
C'est juste pour ne pas trop fatiguer le processeur ;-)
Pour ne pas trop le fatiguer ... ne pas oublier d'utiliser Sleep dans les boucles surtout si on parcours des collections à envergure variable :-) (cf ci-dessus)
Amicalement,
-- Jean - JMST Belgium
Plutôt que de faire un Redim Preserve à chaque nouvel élément du tableau, je
le fait dès que je connais la taille du tableau DependentFiles.
Si DependentFiles a une taille de N, j'augmente tout de suite la taille de
mon tableau «a» de N éléments. La taille de DependFiles étant égale à UBound
+ 1 car les indices commencent à 0.
On peut aussi se passer de la variable item et de son incrémentation :
Set coll=_
GetObject _
(_
"winmgmts:{impersonationLevel=impersonate}!\"&_
strComputer&_
"rootcimv2"_
)_
.ExecQuery("Select * from "&strClass)
ReDim a(-1)
For Each obj In coll
With obj
If Not IsNull(.DependentFiles) Then
For i=0 to UBound(.DependentFiles)
ReDim Preserve a(UBound(a)+1)
a(UBound(a))=.DependentFiles(i)
WScript.Sleep 10
Next
End If
End With
WScript.Sleep 10
Next
For i=LBound(a) To UBound(a)
r=r&i&" : "&a(i)&VbNewLine
Next
WScript.Echo r
'---8<---
C'est juste pour ne pas trop fatiguer le processeur ;-)
Pour ne pas trop le fatiguer ... ne pas oublier d'utiliser Sleep dans
les boucles surtout si on parcours des collections à envergure variable
:-) (cf ci-dessus)
Plutôt que de faire un Redim Preserve à chaque nouvel élément du tableau, je le fait dès que je connais la taille du tableau DependentFiles. Si DependentFiles a une taille de N, j'augmente tout de suite la taille de mon tableau «a» de N éléments. La taille de DependFiles étant égale à UBound + 1 car les indices commencent à 0.
On peut aussi se passer de la variable item et de son incrémentation :
Set coll=_ GetObject _ (_ "winmgmts:{impersonationLevel=impersonate}!"&_ strComputer&_ "rootcimv2"_ )_ .ExecQuery("Select * from "&strClass)
ReDim a(-1)
For Each obj In coll With obj If Not IsNull(.DependentFiles) Then For i=0 to UBound(.DependentFiles) ReDim Preserve a(UBound(a)+1) a(UBound(a))=.DependentFiles(i) WScript.Sleep 10 Next End If End With WScript.Sleep 10 Next
For i=LBound(a) To UBound(a) r=r&i&" : "&a(i)&VbNewLine Next
WScript.Echo r '---8<---
C'est juste pour ne pas trop fatiguer le processeur ;-)
Pour ne pas trop le fatiguer ... ne pas oublier d'utiliser Sleep dans les boucles surtout si on parcours des collections à envergure variable :-) (cf ci-dessus)