Dans le code ci-dessous (desole il est long) j'ai un probleme avec ma
declaration dim se trouvant a la fin Dim MonTableauMethode(0) (j'ai viré la
suite du programme pour ne rester axer que sur ce probleme) il me retourne
une erreur du style type incompatible MonTableauMethode.
franchement je rame grave la dessus, si quelqu'un avait une idee
'----------------------------------------------------------------------'
' Creation d un fichier csv répertoriant en les classant dans la bonne '
' Colonne tous les types des proprietes des classes win32 de cimv2 '
'----------------------------------------------------------------------'
' Origine : issu de scriptcenter.chm ce script permettait de lister '
' L ensemble des proprietes des classes win32 ainsi que leurs '
' Methodes, le script d origine est trouvable sous le nom de '
' (Listing the Properties and Methods of the Win32 Classes) '
' Merci aussi a pilosite et son site www.scriptovore.com '
' Un grand expert du script se trouve derriere ce site et est pret '
' a repondre a toutes vos questions '
'----------------------------------------------------------------------'
'----------------------------------------------------------------------'
' Copyright du plagieur : Gauthier Lapoujade | Niveau : Debutant '
' alias : merlin01fr ou nathan01fr | '
'----------------------------------------------------------------------'
' Date de creation : 18/01/2006 | Derniere Maj : 18/01/2006 '
'----------------------------------------------------------------------'
' Modification apportée : la version d origine ne proposait qu un '
' fichier texte de ligne mise les unes a la suite des autres (pas tres '
' pratique quand on recherche des infos sur un type de classe) , on '
' arrive a une bien meilleure visibilité quand on classifie les '
' informations trouvées. si vous ouvrez ce fichier sous excel en mode '
' texte vous optiendrez les informations suivantes (en colonnes ) : '
' Nom de la classe; Nom de la Propriete, type 1; type 2; type 3; '
' il ne vous restera plus qu a creer un filtre automatique sur les '
' colonnes pour obtenir les informations qui vous interessent '
'----------------------------------------------------------------------'
' Mon appreciation du script : assez pratique pour avoir une visue sur '
' les proprietes des classes , mais il reste a faire de meme les '
' methodes '
'----------------------------------------------------------------------'
'------------------------------------------------------------------'
' Cette partie permet de creer les repertoires qui seront utiles a '
' l'extraction des classes wmi , changez le nom de ces repertoires '
' si vous le souhaitez le script se readaptera en fonction de vos '
' preferences '
'------------------------------------------------------------------'
Set fso = CreateObject("Scripting.FileSystemObject")
If Not fso.FolderExists(RepDeBase) Then
fso.CreateFolder(RepDeBase)
End If
If Not fso.FolderExists(SousRepDeBase) Then
fso.CreateFolder(SousRepDeBase)
End If
If Not fso.FolderExists(SousRepDeBaseBiblioGene) Then
fso.CreateFolder(SousRepDeBaseBiblioGene)
End If
'----------------------------------------------------------------------'
' je commence la creation du fichier csv ici en preparant les entetes '
' de colonnes '
'----------------------------------------------------------------------'
Set fso = CreateObject("Scripting.FileSystemObject")
Set MaPropriete = fso.CreateTextFile(SousRepDeBaseBiblioGene & chr(92) &
"Proprietes de classe.csv", True)
MaPropriete.WriteLine("Nom de la Classe" & ";" & "Nom de la Propriete" &
";" & "UnTableau" & ";" _
& "16 Bit Signé" & ";" & "32 Bit Signé" & ";" & "32 Bit Reel" & ";"
& "64 Bit Reel" & ";" _
& "Chaine de Caractere" & ";" & "Valeur Booleenne" & ";" & "Object
Cim" & ";" & "8 Bit Signé" & ";" _
& "8 Bit non Signé" & ";" & "16 Bit non Signé" & ";" & "32 Bit non
Signé" & ";" & "64 Bit Signé" & ";" _
& "64 Bit non Signé" & ";" & "Format Date" & ";" & "Réference a un
Object Cim" & ";" _
& "Caractere 16 Bit")
strComputer = "."
Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2")
For Each objclass in objWMIService.SubclassesOf()
intCounter=0
If Left(objClass.Path_.Class,5) = "Win32" Then
For Each Qualifier in objClass.Qualifiers_
If UCase(Trim(Qualifier.Name)) = "ASSOCIATION" Then
intCounter = 1
End If
Next
If x = 0 Then
strComputer = "."
Set objWMIService = GetObject
("winmgmts:{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
Set strClass = objWMIService.Get(objClass.Path_.Class)
CompteurPropriete = 0
For each strItem in strClass.properties_
If strItem <> "" Then
CompteurPropriete = CompteurPropriete + 1
End If
Next
For each strItem in strClass.properties_
'-------------------------------------------------------------------------'
' ici je teste toutes les proprietes via .CIMType pour verifier a quelle '
' categorie elles appartiennent , suivant le resulat obtenu je place un '
' OUI dans la colonne correspondante (simple comme bonjour) '
'-------------------------------------------------------------------------'
If strItem.IsArray Then
UnTableau = "Tableau"
Else If Not strItem.IsArray Then
UnTableau = ""
End If
End If
If strItem.CIMType = 2 Then
MaPropriete.WriteLine(objClass.Path_.Class & ";" & strItem.Name & ";" &
UnTableau & ";" & "Oui")
End If
If strItem.CIMType = 3 Then
MaPropriete.WriteLine(objClass.Path_.Class & ";" & strItem.Name & ";" &
UnTableau & ";" & ";" & "Oui")
End If
If strItem.CIMType = 4 Then
MaPropriete.WriteLine(objClass.Path_.Class & ";" & strItem.Name & ";" &
UnTableau & ";" & ";" & ";" & "Oui")
End If
If strItem.CIMType = 5 Then
MaPropriete.WriteLine(objClass.Path_.Class & ";" & strItem.Name & ";" &
UnTableau & ";" & ";" & ";" & _
";" & "Oui")
End If
If strItem.CIMType = 8 Then
MaPropriete.WriteLine(objClass.Path_.Class & ";" & strItem.Name & ";" &
UnTableau & ";" & ";" & ";" & _
";" & ";" & "Oui")
End If
If strItem.CIMType = 11 Then
MaPropriete.WriteLine(objClass.Path_.Class & ";" & strItem.Name & ";" &
UnTableau & ";" & ";" & ";" & _
";" & ";" & ";" & "Oui")
End If
If strItem.CIMType = 13 Then
MaPropriete.WriteLine(objClass.Path_.Class & ";" & strItem.Name & ";" &
UnTableau & ";" & ";" & ";" & _
";" & ";" & ";" & ";" & "Oui")
End If
If strItem.CIMType = 16 Then
MaPropriete.WriteLine(objClass.Path_.Class & ";" & strItem.Name & ";" &
UnTableau & ";" & ";" & ";" & _
";" & ";" & ";" & ";" & ";" & "Oui")
End If
If strItem.CIMType = 17 Then
MaPropriete.WriteLine(objClass.Path_.Class & ";" & strItem.Name & ";" &
UnTableau & ";" & ";" & ";" & _
";" & ";" & ";" & ";" & ";" & ";" & "Oui")
End If
If strItem.CIMType = 18 Then
MaPropriete.WriteLine(objClass.Path_.Class & ";" & strItem.Name & ";" &
UnTableau & ";" & ";" & ";" & _
";" & ";" & ";" & ";" & ";" & ";" & ";" & "Oui")
End If
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
sympatix
bonjour
Dans le code ci-dessous (desole il est long) j'ai un probleme avec ma declaration dim se trouvant a la fin Dim MonTableauMethode(0) (j'ai viré la suite du programme pour ne rester axer que sur ce probleme) il me retourne une erreur du style type incompatible MonTableauMethode.
franchement je rame grave la dessus, si quelqu'un avait une idee
Salut !
Même erreur que dans ton fil du 15. A vue de nez, ta déclaration de variable [Dim MonTableauMethode(1)] semble mal placée. En général, elles se placent en tout début de code. En plus, le fait qu'elle se trouve à l'intérieur d'une boucle if then me parait hautement suspect.
-- Cordialement sympatix Antispam: Supprimer les "toto" pour me répondre
bonjour
Dans le code ci-dessous (desole il est long) j'ai un probleme avec ma
declaration dim se trouvant a la fin Dim MonTableauMethode(0) (j'ai viré la
suite du programme pour ne rester axer que sur ce probleme) il me retourne
une erreur du style type incompatible MonTableauMethode.
franchement je rame grave la dessus, si quelqu'un avait une idee
Salut !
Même erreur que dans ton fil du 15.
A vue de nez, ta déclaration de variable
[Dim MonTableauMethode(1)] semble mal placée. En général, elles se placent
en tout début de code.
En plus, le fait qu'elle se trouve à l'intérieur d'une boucle if then me
parait hautement suspect.
--
Cordialement
sympatix
Antispam: Supprimer les "toto" pour me répondre
Dans le code ci-dessous (desole il est long) j'ai un probleme avec ma declaration dim se trouvant a la fin Dim MonTableauMethode(0) (j'ai viré la suite du programme pour ne rester axer que sur ce probleme) il me retourne une erreur du style type incompatible MonTableauMethode.
franchement je rame grave la dessus, si quelqu'un avait une idee
Salut !
Même erreur que dans ton fil du 15. A vue de nez, ta déclaration de variable [Dim MonTableauMethode(1)] semble mal placée. En général, elles se placent en tout début de code. En plus, le fait qu'elle se trouve à l'intérieur d'une boucle if then me parait hautement suspect.
-- Cordialement sympatix Antispam: Supprimer les "toto" pour me répondre
jbongran
merlin01fr wrote:
bonjour
Dans le code ci-dessous (desole il est long) j'ai un probleme avec ma declaration dim se trouvant a la fin Dim MonTableauMethode(0) (j'ai viré la suite du programme pour ne rester axer que sur ce probleme) il me retourne une erreur du style type incompatible MonTableauMethode.
franchement je rame grave la dessus, si quelqu'un avait une idee
'----------------------------------------------------------------------' ' Creation d un fichier csv répertoriant en les classant dans la bonne ' ' Colonne tous les types des proprietes des classes win32 de cimv2 ' '----------------------------------------------------------------------' ' Origine : issu de scriptcenter.chm ce script permettait de lister ' ' L ensemble des proprietes des classes win32 ainsi que leurs ' ' Methodes, le script d origine est trouvable sous le nom de ' ' (Listing the Properties and Methods of the Win32 Classes) ' ' Merci aussi a pilosite et son site www.scriptovore.com ' ' Un grand expert du script se trouve derriere ce site et est pret ' ' a repondre a toutes vos questions ' '----------------------------------------------------------------------' '----------------------------------------------------------------------' ' Copyright du plagieur : Gauthier Lapoujade | Niveau : Debutant ' ' alias : merlin01fr ou nathan01fr | ' '----------------------------------------------------------------------' ' Date de creation : 18/01/2006 | Derniere Maj : 18/01/2006 ' '----------------------------------------------------------------------' ' Modification apportée : la version d origine ne proposait qu un ' ' fichier texte de ligne mise les unes a la suite des autres (pas tres ' ' pratique quand on recherche des infos sur un type de classe) , on ' ' arrive a une bien meilleure visibilité quand on classifie les ' ' informations trouvées. si vous ouvrez ce fichier sous excel en mode ' ' texte vous optiendrez les informations suivantes (en colonnes ) : ' ' Nom de la classe; Nom de la Propriete, type 1; type 2; type 3; ' ' il ne vous restera plus qu a creer un filtre automatique sur les ' ' colonnes pour obtenir les informations qui vous interessent ' '----------------------------------------------------------------------' ' Mon appreciation du script : assez pratique pour avoir une visue sur ' ' les proprietes des classes , mais il reste a faire de meme les ' ' methodes ' '----------------------------------------------------------------------'
'------------------------------------------------------------------' ' Cette partie permet de creer les repertoires qui seront utiles a ' ' l'extraction des classes wmi , changez le nom de ces repertoires ' ' si vous le souhaitez le script se readaptera en fonction de vos ' ' preferences ' '------------------------------------------------------------------'
Set fso = CreateObject("Scripting.FileSystemObject")
If Not fso.FolderExists(RepDeBase) Then fso.CreateFolder(RepDeBase) End If
If Not fso.FolderExists(SousRepDeBase) Then fso.CreateFolder(SousRepDeBase) End If
If Not fso.FolderExists(SousRepDeBaseBiblioGene) Then fso.CreateFolder(SousRepDeBaseBiblioGene) End If
'----------------------------------------------------------------------' ' je commence la creation du fichier csv ici en preparant les entetes ' ' de colonnes ' '----------------------------------------------------------------------'
Set fso = CreateObject("Scripting.FileSystemObject") Set MaPropriete = fso.CreateTextFile(SousRepDeBaseBiblioGene & chr(92) & "Proprietes de classe.csv", True)
MaPropriete.WriteLine("Nom de la Classe" & ";" & "Nom de la Propriete" & ";" & "UnTableau" & ";" _ & "16 Bit Signé" & ";" & "32 Bit Signé" & ";" & "32 Bit Reel" & ";" & "64 Bit Reel" & ";" _ & "Chaine de Caractere" & ";" & "Valeur Booleenne" & ";" & "Object Cim" & ";" & "8 Bit Signé" & ";" _ & "8 Bit non Signé" & ";" & "16 Bit non Signé" & ";" & "32 Bit non Signé" & ";" & "64 Bit Signé" & ";" _ & "64 Bit non Signé" & ";" & "Format Date" & ";" & "Réference a un Object Cim" & ";" _ & "Caractere 16 Bit")
strComputer = "."
Set objWMIService = GetObject("winmgmts:" & strComputer & "rootcimv2")
For Each objclass in objWMIService.SubclassesOf()
intCounter=0
If Left(objClass.Path_.Class,5) = "Win32" Then
For Each Qualifier in objClass.Qualifiers_
If UCase(Trim(Qualifier.Name)) = "ASSOCIATION" Then
intCounter = 1
End If
Next
If x = 0 Then
strComputer = "."
Set objWMIService = GetObject ("winmgmts:{impersonationLevel=impersonate}!" & strComputer & "rootcimv2") Set strClass > objWMIService.Get(objClass.Path_.Class)
CompteurPropriete = 0
For each strItem in strClass.properties_
If strItem <> "" Then CompteurPropriete = CompteurPropriete + 1 End If
Next
For each strItem in strClass.properties_ '-------------------------------------------------------------------------' ' ici je teste toutes les proprietes via .CIMType pour verifier a quelle ' ' categorie elles appartiennent , suivant le resulat obtenu je place un ' ' OUI dans la colonne correspondante (simple comme bonjour) ' '-------------------------------------------------------------------------'
If strItem.IsArray Then UnTableau = "Tableau" Else If Not strItem.IsArray Then UnTableau = "" End If End If
If strItem.CIMType = 2 Then MaPropriete.WriteLine(objClass.Path_.Class & ";" & strItem.Name & ";" & UnTableau & ";" & "Oui") End If
If strItem.CIMType = 3 Then MaPropriete.WriteLine(objClass.Path_.Class & ";" & strItem.Name & ";" & UnTableau & ";" & ";" & "Oui") End If
If strItem.CIMType = 4 Then MaPropriete.WriteLine(objClass.Path_.Class & ";" & strItem.Name & ";" & UnTableau & ";" & ";" & ";" & "Oui") End If
If strItem.CIMType = 5 Then MaPropriete.WriteLine(objClass.Path_.Class & ";" & strItem.Name & ";" & UnTableau & ";" & ";" & ";" & _ ";" & "Oui") End If
If strItem.CIMType = 8 Then MaPropriete.WriteLine(objClass.Path_.Class & ";" & strItem.Name & ";" & UnTableau & ";" & ";" & ";" & _ ";" & ";" & "Oui") End If
If strItem.CIMType = 11 Then MaPropriete.WriteLine(objClass.Path_.Class & ";" & strItem.Name & ";" & UnTableau & ";" & ";" & ";" & _ ";" & ";" & ";" & "Oui") End If
If strItem.CIMType = 13 Then MaPropriete.WriteLine(objClass.Path_.Class & ";" & strItem.Name & ";" & UnTableau & ";" & ";" & ";" & _ ";" & ";" & ";" & ";" & "Oui") End If
If strItem.CIMType = 16 Then MaPropriete.WriteLine(objClass.Path_.Class & ";" & strItem.Name & ";" & UnTableau & ";" & ";" & ";" & _ ";" & ";" & ";" & ";" & ";" & "Oui") End If
If strItem.CIMType = 17 Then MaPropriete.WriteLine(objClass.Path_.Class & ";" & strItem.Name & ";" & UnTableau & ";" & ";" & ";" & _ ";" & ";" & ";" & ";" & ";" & ";" & "Oui") End If
If strItem.CIMType = 18 Then MaPropriete.WriteLine(objClass.Path_.Class & ";" & strItem.Name & ";" & UnTableau & ";" & ";" & ";" & _ ";" & ";" & ";" & ";" & ";" & ";" & ";" & "Oui") End If
J'ai du mal à lire ton code mais il me semble que ta déclaration de tableau se fait dans une boucle, donc, si c'est bien le cas, à la deuxième itération le code se plante. Lire un post récent qui indiquait d'utiliser les instruction dim, redim et preserve... Pour le hors sujet: Pourquoi autant de concaténation de chaines ? fso.CreateTextFile(SousRepDeBaseBiblioGene & chr(92) & "Proprietes de classe.csv", True) deviendrait fso.CreateTextFile(SousRepDeBaseBiblioGene & "Proprietes de classe.csv", True)
ou encore MaPropriete.WriteLine("Nom de la Classe" & ";" & "Nom de la
Propriete" & ";" & "UnTableau" & ";" _ & "16 Bit Signé" & ";" & "32 Bit Signé" & ";" & "32 Bit Reel" & ";" & "64 Bit Reel" & ";" _ & "Chaine de Caractere" & ";" & "Valeur Booleenne" & ";" & "Object Cim" & ";" & "8 Bit Signé" & ";" _ & "8 Bit non Signé" & ";" & "16 Bit non Signé" & ";" & "32 Bit non Signé" & ";" & "64 Bit Signé" & ";" _ & "64 Bit non Signé" & ";" & "Format Date" & ";" & "Réference a un Object Cim" & ";" _ & "Caractere 16 Bit") deviendrait
MaPropriete.WriteLine("Nom de la Classe;Nom de la Propriete;UnTableau;16 Bit Signé;32 Bit Signé;32 Bit Reel;" _ "64 Bit Reel;Chaine de Caractere;Valeur Booleenne;Object Cim;8 Bit Signé;8 Bit non Signé;16 Bit non Signé;" _ "32 Bit non Signé;64 Bit Signé;64 Bit non Signé;Format Date;Réference a un Object Cim;Caractere 16 Bit")
Pourquoi ne pas utiliser des subs et des fonctions pour rendre le code plus clair (et maintenable), pour les opérations récurrentes: Sub CheckFolder(strFolder) If Not FolderExists(strFolder) Then fso.CreateFolder(strFolder) End Sub
Pourquoi l'objet fso est-il instancié plusieurs fois, jamais détruit ni déclaré ? (une bonne habitude est de mettre à la première ligne du code Option Explicit, qui oblige à déclarer toute variable avant de pouvoir les utiliser) Dim fso Set fso = CreateObject("Scripting.FileSystemObject") ... code... Set fso = Nothing
Egalement, certaines mises en forme du code peuvent induire en erreur: If strItem.IsArray Then UnTableau = "Tableau" Else If Not strItem.IsArray Then UnTableau = "" End If End If Doit il se lire: If strItem.IsArray Then UnTableau = "Tableau" Else If Not strItem.IsArray Then UnTableau = "" End If End If Ou bien si l'on considère qu'un espace est mal placé: If strItem.IsArray Then UnTableau = "Tableau" ElseIf Not strItem.IsArray Then UnTableau = "" End If
End If Ce qui fait toute la différence ;-)
Si c'est la première version, elle peut être simplifiée: If strItem.IsArray Then UnTableau = "Tableau" Else UnTableau = "" End If
Une structure simplifiée peut économiser beaucoup de lignes: Select Case strItem.CIMType Case 2 intSepCount = 1 Case 3 intSepCount = 2 Case 4 intSepCount = 3 Case 5 intSepCount = 4 Case 8 intSepCount = 5 Case 11 intSepCount = 6 Case 13 intSepCount = 7 Case 16 intSepCount = 8 Case 17 intSepCount = 9 Case 18 intSepCount = 10 Case 19 intSepCount = 11 Case 20 intSepCount = 12 Case 21 intSepCount = 13 Case 101 intSepCount = 14 Case 102 intSepCount = 15 Case 103 intSepCount = 16 End Select
Dans le code ci-dessous (desole il est long) j'ai un probleme avec ma
declaration dim se trouvant a la fin Dim MonTableauMethode(0) (j'ai
viré la suite du programme pour ne rester axer que sur ce probleme)
il me retourne une erreur du style type incompatible
MonTableauMethode.
franchement je rame grave la dessus, si quelqu'un avait une idee
'----------------------------------------------------------------------'
' Creation d un fichier csv répertoriant en les classant dans la
bonne ' ' Colonne tous les types des proprietes des classes win32 de
cimv2 '
'----------------------------------------------------------------------'
' Origine : issu de scriptcenter.chm ce script permettait de lister
' ' L ensemble des proprietes des classes win32 ainsi que leurs
' ' Methodes, le script d origine est trouvable sous le nom de
' ' (Listing the Properties and Methods of the Win32 Classes)
' ' Merci aussi a pilosite et son site www.scriptovore.com
' ' Un grand expert du script se trouve derriere ce site et est pret
' ' a repondre a toutes vos questions
'
'----------------------------------------------------------------------'
'----------------------------------------------------------------------'
' Copyright du plagieur : Gauthier Lapoujade | Niveau : Debutant
' ' alias : merlin01fr ou nathan01fr |
'
'----------------------------------------------------------------------'
' Date de creation : 18/01/2006 | Derniere Maj : 18/01/2006
'
'----------------------------------------------------------------------'
' Modification apportée : la version d origine ne proposait qu un
' ' fichier texte de ligne mise les unes a la suite des autres (pas
tres ' ' pratique quand on recherche des infos sur un type de classe)
, on ' ' arrive a une bien meilleure visibilité quand on classifie
les ' ' informations trouvées. si vous ouvrez ce fichier sous
excel en mode ' ' texte vous optiendrez les informations suivantes
(en colonnes ) : ' ' Nom de la classe; Nom de la Propriete, type
1; type 2; type 3; ' ' il ne vous restera plus qu a creer un
filtre automatique sur les ' ' colonnes pour obtenir les
informations qui vous interessent '
'----------------------------------------------------------------------'
' Mon appreciation du script : assez pratique pour avoir une visue
sur ' ' les proprietes des classes , mais il reste a faire de meme
les ' ' methodes
'
'----------------------------------------------------------------------'
'------------------------------------------------------------------'
' Cette partie permet de creer les repertoires qui seront utiles a '
' l'extraction des classes wmi , changez le nom de ces repertoires '
' si vous le souhaitez le script se readaptera en fonction de vos '
' preferences '
'------------------------------------------------------------------'
Set fso = CreateObject("Scripting.FileSystemObject")
If Not fso.FolderExists(RepDeBase) Then
fso.CreateFolder(RepDeBase)
End If
If Not fso.FolderExists(SousRepDeBase) Then
fso.CreateFolder(SousRepDeBase)
End If
If Not fso.FolderExists(SousRepDeBaseBiblioGene) Then
fso.CreateFolder(SousRepDeBaseBiblioGene)
End If
'----------------------------------------------------------------------'
' je commence la creation du fichier csv ici en preparant les entetes
' ' de colonnes
'
'----------------------------------------------------------------------'
Set fso = CreateObject("Scripting.FileSystemObject")
Set MaPropriete = fso.CreateTextFile(SousRepDeBaseBiblioGene &
chr(92) & "Proprietes de classe.csv", True)
MaPropriete.WriteLine("Nom de la Classe" & ";" & "Nom de la
Propriete" & ";" & "UnTableau" & ";" _
& "16 Bit Signé" & ";" & "32 Bit Signé" & ";" & "32 Bit Reel" &
";" & "64 Bit Reel" & ";" _
& "Chaine de Caractere" & ";" & "Valeur Booleenne" & ";" &
"Object
Cim" & ";" & "8 Bit Signé" & ";" _
& "8 Bit non Signé" & ";" & "16 Bit non Signé" & ";" & "32 Bit
non Signé" & ";" & "64 Bit Signé" & ";" _
& "64 Bit non Signé" & ";" & "Format Date" & ";" & "Réference a
un Object Cim" & ";" _
& "Caractere 16 Bit")
strComputer = "."
Set objWMIService = GetObject("winmgmts:\" & strComputer &
"rootcimv2")
For Each objclass in objWMIService.SubclassesOf()
intCounter=0
If Left(objClass.Path_.Class,5) = "Win32" Then
For Each Qualifier in objClass.Qualifiers_
If UCase(Trim(Qualifier.Name)) = "ASSOCIATION" Then
intCounter = 1
End If
Next
If x = 0 Then
strComputer = "."
Set objWMIService = GetObject
("winmgmts:{impersonationLevel=impersonate}!\" & strComputer &
"rootcimv2") Set strClass > objWMIService.Get(objClass.Path_.Class)
CompteurPropriete = 0
For each strItem in strClass.properties_
If strItem <> "" Then
CompteurPropriete = CompteurPropriete + 1
End If
Next
For each strItem in strClass.properties_
'-------------------------------------------------------------------------'
' ici je teste toutes les proprietes via .CIMType pour verifier a
quelle ' ' categorie elles appartiennent , suivant le resulat obtenu
je place un ' ' OUI dans la colonne correspondante (simple comme
bonjour) '
'-------------------------------------------------------------------------'
If strItem.IsArray Then
UnTableau = "Tableau"
Else If Not strItem.IsArray Then
UnTableau = ""
End If
End If
If strItem.CIMType = 2 Then
MaPropriete.WriteLine(objClass.Path_.Class & ";" & strItem.Name & ";"
& UnTableau & ";" & "Oui")
End If
If strItem.CIMType = 3 Then
MaPropriete.WriteLine(objClass.Path_.Class & ";" & strItem.Name & ";"
& UnTableau & ";" & ";" & "Oui")
End If
If strItem.CIMType = 4 Then
MaPropriete.WriteLine(objClass.Path_.Class & ";" & strItem.Name & ";"
& UnTableau & ";" & ";" & ";" & "Oui")
End If
If strItem.CIMType = 5 Then
MaPropriete.WriteLine(objClass.Path_.Class & ";" & strItem.Name & ";"
& UnTableau & ";" & ";" & ";" & _
";" & "Oui")
End If
If strItem.CIMType = 8 Then
MaPropriete.WriteLine(objClass.Path_.Class & ";" & strItem.Name & ";"
& UnTableau & ";" & ";" & ";" & _
";" & ";" & "Oui")
End If
If strItem.CIMType = 11 Then
MaPropriete.WriteLine(objClass.Path_.Class & ";" & strItem.Name & ";"
& UnTableau & ";" & ";" & ";" & _
";" & ";" & ";" & "Oui")
End If
If strItem.CIMType = 13 Then
MaPropriete.WriteLine(objClass.Path_.Class & ";" & strItem.Name & ";"
& UnTableau & ";" & ";" & ";" & _
";" & ";" & ";" & ";" & "Oui")
End If
If strItem.CIMType = 16 Then
MaPropriete.WriteLine(objClass.Path_.Class & ";" & strItem.Name & ";"
& UnTableau & ";" & ";" & ";" & _
";" & ";" & ";" & ";" & ";" & "Oui")
End If
If strItem.CIMType = 17 Then
MaPropriete.WriteLine(objClass.Path_.Class & ";" & strItem.Name & ";"
& UnTableau & ";" & ";" & ";" & _
";" & ";" & ";" & ";" & ";" & ";" & "Oui")
End If
If strItem.CIMType = 18 Then
MaPropriete.WriteLine(objClass.Path_.Class & ";" & strItem.Name & ";"
& UnTableau & ";" & ";" & ";" & _
";" & ";" & ";" & ";" & ";" & ";" & ";" & "Oui")
End If
J'ai du mal à lire ton code mais il me semble que ta déclaration de tableau
se fait dans une boucle, donc, si c'est bien le cas, à la deuxième itération
le code se plante.
Lire un post récent qui indiquait d'utiliser les instruction dim, redim et
preserve...
Pour le hors sujet:
Pourquoi autant de concaténation de chaines ?
fso.CreateTextFile(SousRepDeBaseBiblioGene & chr(92) & "Proprietes de
classe.csv", True)
deviendrait
fso.CreateTextFile(SousRepDeBaseBiblioGene & "Proprietes de classe.csv",
True)
ou encore
MaPropriete.WriteLine("Nom de la Classe" & ";" & "Nom de la
Propriete" & ";" & "UnTableau" & ";" _
& "16 Bit Signé" & ";" & "32 Bit Signé" & ";" & "32 Bit Reel" &
";" & "64 Bit Reel" & ";" _
& "Chaine de Caractere" & ";" & "Valeur Booleenne" & ";" &
"Object
Cim" & ";" & "8 Bit Signé" & ";" _
& "8 Bit non Signé" & ";" & "16 Bit non Signé" & ";" & "32 Bit
non Signé" & ";" & "64 Bit Signé" & ";" _
& "64 Bit non Signé" & ";" & "Format Date" & ";" & "Réference a
un Object Cim" & ";" _
& "Caractere 16 Bit")
deviendrait
MaPropriete.WriteLine("Nom de la Classe;Nom de la Propriete;UnTableau;16 Bit
Signé;32 Bit Signé;32 Bit Reel;" _
"64 Bit Reel;Chaine de Caractere;Valeur Booleenne;Object Cim;8 Bit Signé;8
Bit non Signé;16 Bit non Signé;" _
"32 Bit non Signé;64 Bit Signé;64 Bit non Signé;Format Date;Réference a un
Object Cim;Caractere 16 Bit")
Pourquoi ne pas utiliser des subs et des fonctions pour rendre le code plus
clair (et maintenable), pour les opérations récurrentes:
Sub CheckFolder(strFolder)
If Not FolderExists(strFolder) Then fso.CreateFolder(strFolder)
End Sub
Pourquoi l'objet fso est-il instancié plusieurs fois, jamais détruit ni
déclaré ? (une bonne habitude est de mettre à la première ligne du code
Option Explicit, qui oblige à déclarer toute variable avant de pouvoir les
utiliser)
Dim fso
Set fso = CreateObject("Scripting.FileSystemObject")
... code...
Set fso = Nothing
Egalement, certaines mises en forme du code peuvent induire en erreur:
If strItem.IsArray Then
UnTableau = "Tableau"
Else If Not strItem.IsArray Then
UnTableau = ""
End If
End If
Doit il se lire:
If strItem.IsArray Then
UnTableau = "Tableau"
Else
If Not strItem.IsArray Then
UnTableau = ""
End If
End If
Ou bien si l'on considère qu'un espace est mal placé:
If strItem.IsArray Then
UnTableau = "Tableau"
ElseIf Not strItem.IsArray Then
UnTableau = ""
End If
End If
Ce qui fait toute la différence ;-)
Si c'est la première version, elle peut être simplifiée:
If strItem.IsArray Then
UnTableau = "Tableau"
Else
UnTableau = ""
End If
Une structure simplifiée peut économiser beaucoup de lignes:
Select Case strItem.CIMType
Case 2 intSepCount = 1
Case 3 intSepCount = 2
Case 4 intSepCount = 3
Case 5 intSepCount = 4
Case 8 intSepCount = 5
Case 11 intSepCount = 6
Case 13 intSepCount = 7
Case 16 intSepCount = 8
Case 17 intSepCount = 9
Case 18 intSepCount = 10
Case 19 intSepCount = 11
Case 20 intSepCount = 12
Case 21 intSepCount = 13
Case 101 intSepCount = 14
Case 102 intSepCount = 15
Case 103 intSepCount = 16
End Select
Dans le code ci-dessous (desole il est long) j'ai un probleme avec ma declaration dim se trouvant a la fin Dim MonTableauMethode(0) (j'ai viré la suite du programme pour ne rester axer que sur ce probleme) il me retourne une erreur du style type incompatible MonTableauMethode.
franchement je rame grave la dessus, si quelqu'un avait une idee
'----------------------------------------------------------------------' ' Creation d un fichier csv répertoriant en les classant dans la bonne ' ' Colonne tous les types des proprietes des classes win32 de cimv2 ' '----------------------------------------------------------------------' ' Origine : issu de scriptcenter.chm ce script permettait de lister ' ' L ensemble des proprietes des classes win32 ainsi que leurs ' ' Methodes, le script d origine est trouvable sous le nom de ' ' (Listing the Properties and Methods of the Win32 Classes) ' ' Merci aussi a pilosite et son site www.scriptovore.com ' ' Un grand expert du script se trouve derriere ce site et est pret ' ' a repondre a toutes vos questions ' '----------------------------------------------------------------------' '----------------------------------------------------------------------' ' Copyright du plagieur : Gauthier Lapoujade | Niveau : Debutant ' ' alias : merlin01fr ou nathan01fr | ' '----------------------------------------------------------------------' ' Date de creation : 18/01/2006 | Derniere Maj : 18/01/2006 ' '----------------------------------------------------------------------' ' Modification apportée : la version d origine ne proposait qu un ' ' fichier texte de ligne mise les unes a la suite des autres (pas tres ' ' pratique quand on recherche des infos sur un type de classe) , on ' ' arrive a une bien meilleure visibilité quand on classifie les ' ' informations trouvées. si vous ouvrez ce fichier sous excel en mode ' ' texte vous optiendrez les informations suivantes (en colonnes ) : ' ' Nom de la classe; Nom de la Propriete, type 1; type 2; type 3; ' ' il ne vous restera plus qu a creer un filtre automatique sur les ' ' colonnes pour obtenir les informations qui vous interessent ' '----------------------------------------------------------------------' ' Mon appreciation du script : assez pratique pour avoir une visue sur ' ' les proprietes des classes , mais il reste a faire de meme les ' ' methodes ' '----------------------------------------------------------------------'
'------------------------------------------------------------------' ' Cette partie permet de creer les repertoires qui seront utiles a ' ' l'extraction des classes wmi , changez le nom de ces repertoires ' ' si vous le souhaitez le script se readaptera en fonction de vos ' ' preferences ' '------------------------------------------------------------------'
Set fso = CreateObject("Scripting.FileSystemObject")
If Not fso.FolderExists(RepDeBase) Then fso.CreateFolder(RepDeBase) End If
If Not fso.FolderExists(SousRepDeBase) Then fso.CreateFolder(SousRepDeBase) End If
If Not fso.FolderExists(SousRepDeBaseBiblioGene) Then fso.CreateFolder(SousRepDeBaseBiblioGene) End If
'----------------------------------------------------------------------' ' je commence la creation du fichier csv ici en preparant les entetes ' ' de colonnes ' '----------------------------------------------------------------------'
Set fso = CreateObject("Scripting.FileSystemObject") Set MaPropriete = fso.CreateTextFile(SousRepDeBaseBiblioGene & chr(92) & "Proprietes de classe.csv", True)
MaPropriete.WriteLine("Nom de la Classe" & ";" & "Nom de la Propriete" & ";" & "UnTableau" & ";" _ & "16 Bit Signé" & ";" & "32 Bit Signé" & ";" & "32 Bit Reel" & ";" & "64 Bit Reel" & ";" _ & "Chaine de Caractere" & ";" & "Valeur Booleenne" & ";" & "Object Cim" & ";" & "8 Bit Signé" & ";" _ & "8 Bit non Signé" & ";" & "16 Bit non Signé" & ";" & "32 Bit non Signé" & ";" & "64 Bit Signé" & ";" _ & "64 Bit non Signé" & ";" & "Format Date" & ";" & "Réference a un Object Cim" & ";" _ & "Caractere 16 Bit")
strComputer = "."
Set objWMIService = GetObject("winmgmts:" & strComputer & "rootcimv2")
For Each objclass in objWMIService.SubclassesOf()
intCounter=0
If Left(objClass.Path_.Class,5) = "Win32" Then
For Each Qualifier in objClass.Qualifiers_
If UCase(Trim(Qualifier.Name)) = "ASSOCIATION" Then
intCounter = 1
End If
Next
If x = 0 Then
strComputer = "."
Set objWMIService = GetObject ("winmgmts:{impersonationLevel=impersonate}!" & strComputer & "rootcimv2") Set strClass > objWMIService.Get(objClass.Path_.Class)
CompteurPropriete = 0
For each strItem in strClass.properties_
If strItem <> "" Then CompteurPropriete = CompteurPropriete + 1 End If
Next
For each strItem in strClass.properties_ '-------------------------------------------------------------------------' ' ici je teste toutes les proprietes via .CIMType pour verifier a quelle ' ' categorie elles appartiennent , suivant le resulat obtenu je place un ' ' OUI dans la colonne correspondante (simple comme bonjour) ' '-------------------------------------------------------------------------'
If strItem.IsArray Then UnTableau = "Tableau" Else If Not strItem.IsArray Then UnTableau = "" End If End If
If strItem.CIMType = 2 Then MaPropriete.WriteLine(objClass.Path_.Class & ";" & strItem.Name & ";" & UnTableau & ";" & "Oui") End If
If strItem.CIMType = 3 Then MaPropriete.WriteLine(objClass.Path_.Class & ";" & strItem.Name & ";" & UnTableau & ";" & ";" & "Oui") End If
If strItem.CIMType = 4 Then MaPropriete.WriteLine(objClass.Path_.Class & ";" & strItem.Name & ";" & UnTableau & ";" & ";" & ";" & "Oui") End If
If strItem.CIMType = 5 Then MaPropriete.WriteLine(objClass.Path_.Class & ";" & strItem.Name & ";" & UnTableau & ";" & ";" & ";" & _ ";" & "Oui") End If
If strItem.CIMType = 8 Then MaPropriete.WriteLine(objClass.Path_.Class & ";" & strItem.Name & ";" & UnTableau & ";" & ";" & ";" & _ ";" & ";" & "Oui") End If
If strItem.CIMType = 11 Then MaPropriete.WriteLine(objClass.Path_.Class & ";" & strItem.Name & ";" & UnTableau & ";" & ";" & ";" & _ ";" & ";" & ";" & "Oui") End If
If strItem.CIMType = 13 Then MaPropriete.WriteLine(objClass.Path_.Class & ";" & strItem.Name & ";" & UnTableau & ";" & ";" & ";" & _ ";" & ";" & ";" & ";" & "Oui") End If
If strItem.CIMType = 16 Then MaPropriete.WriteLine(objClass.Path_.Class & ";" & strItem.Name & ";" & UnTableau & ";" & ";" & ";" & _ ";" & ";" & ";" & ";" & ";" & "Oui") End If
If strItem.CIMType = 17 Then MaPropriete.WriteLine(objClass.Path_.Class & ";" & strItem.Name & ";" & UnTableau & ";" & ";" & ";" & _ ";" & ";" & ";" & ";" & ";" & ";" & "Oui") End If
If strItem.CIMType = 18 Then MaPropriete.WriteLine(objClass.Path_.Class & ";" & strItem.Name & ";" & UnTableau & ";" & ";" & ";" & _ ";" & ";" & ";" & ";" & ";" & ";" & ";" & "Oui") End If
J'ai du mal à lire ton code mais il me semble que ta déclaration de tableau se fait dans une boucle, donc, si c'est bien le cas, à la deuxième itération le code se plante. Lire un post récent qui indiquait d'utiliser les instruction dim, redim et preserve... Pour le hors sujet: Pourquoi autant de concaténation de chaines ? fso.CreateTextFile(SousRepDeBaseBiblioGene & chr(92) & "Proprietes de classe.csv", True) deviendrait fso.CreateTextFile(SousRepDeBaseBiblioGene & "Proprietes de classe.csv", True)
ou encore MaPropriete.WriteLine("Nom de la Classe" & ";" & "Nom de la
Propriete" & ";" & "UnTableau" & ";" _ & "16 Bit Signé" & ";" & "32 Bit Signé" & ";" & "32 Bit Reel" & ";" & "64 Bit Reel" & ";" _ & "Chaine de Caractere" & ";" & "Valeur Booleenne" & ";" & "Object Cim" & ";" & "8 Bit Signé" & ";" _ & "8 Bit non Signé" & ";" & "16 Bit non Signé" & ";" & "32 Bit non Signé" & ";" & "64 Bit Signé" & ";" _ & "64 Bit non Signé" & ";" & "Format Date" & ";" & "Réference a un Object Cim" & ";" _ & "Caractere 16 Bit") deviendrait
MaPropriete.WriteLine("Nom de la Classe;Nom de la Propriete;UnTableau;16 Bit Signé;32 Bit Signé;32 Bit Reel;" _ "64 Bit Reel;Chaine de Caractere;Valeur Booleenne;Object Cim;8 Bit Signé;8 Bit non Signé;16 Bit non Signé;" _ "32 Bit non Signé;64 Bit Signé;64 Bit non Signé;Format Date;Réference a un Object Cim;Caractere 16 Bit")
Pourquoi ne pas utiliser des subs et des fonctions pour rendre le code plus clair (et maintenable), pour les opérations récurrentes: Sub CheckFolder(strFolder) If Not FolderExists(strFolder) Then fso.CreateFolder(strFolder) End Sub
Pourquoi l'objet fso est-il instancié plusieurs fois, jamais détruit ni déclaré ? (une bonne habitude est de mettre à la première ligne du code Option Explicit, qui oblige à déclarer toute variable avant de pouvoir les utiliser) Dim fso Set fso = CreateObject("Scripting.FileSystemObject") ... code... Set fso = Nothing
Egalement, certaines mises en forme du code peuvent induire en erreur: If strItem.IsArray Then UnTableau = "Tableau" Else If Not strItem.IsArray Then UnTableau = "" End If End If Doit il se lire: If strItem.IsArray Then UnTableau = "Tableau" Else If Not strItem.IsArray Then UnTableau = "" End If End If Ou bien si l'on considère qu'un espace est mal placé: If strItem.IsArray Then UnTableau = "Tableau" ElseIf Not strItem.IsArray Then UnTableau = "" End If
End If Ce qui fait toute la différence ;-)
Si c'est la première version, elle peut être simplifiée: If strItem.IsArray Then UnTableau = "Tableau" Else UnTableau = "" End If
Une structure simplifiée peut économiser beaucoup de lignes: Select Case strItem.CIMType Case 2 intSepCount = 1 Case 3 intSepCount = 2 Case 4 intSepCount = 3 Case 5 intSepCount = 4 Case 8 intSepCount = 5 Case 11 intSepCount = 6 Case 13 intSepCount = 7 Case 16 intSepCount = 8 Case 17 intSepCount = 9 Case 18 intSepCount = 10 Case 19 intSepCount = 11 Case 20 intSepCount = 12 Case 21 intSepCount = 13 Case 101 intSepCount = 14 Case 102 intSepCount = 15 Case 103 intSepCount = 16 End Select
Merci a sympatix et a jbongran pour leurs reponses
Concernant ta reponse sympatix , je supposais que mon erreur venait du fait que mon Dim soit mal placé , merci de me l'avoir certifié
Merci aussi a toi jbongran pour tous ces commentaires que je vais eplucher de ce pas (je suis pas sur de tout comprendre) mais ce se sont des commentaires qui font plaisir (pour le debutant que je suis) ils sont basés sur un script que je connais bien puisque je l'ai ecris , et ca c'est genial comme didactique.
un tres grand merci a tous les deux :)
Tres cordialement
Merci a sympatix et a jbongran pour leurs reponses
Concernant ta reponse sympatix , je supposais que mon erreur venait du fait
que mon Dim soit mal placé , merci de me l'avoir certifié
Merci aussi a toi jbongran pour tous ces commentaires que je vais eplucher
de ce pas (je suis pas sur de tout comprendre) mais ce se sont des
commentaires qui font plaisir (pour le debutant que je suis) ils sont basés
sur un script que je connais bien puisque je l'ai ecris , et ca c'est genial
comme didactique.
Merci a sympatix et a jbongran pour leurs reponses
Concernant ta reponse sympatix , je supposais que mon erreur venait du fait que mon Dim soit mal placé , merci de me l'avoir certifié
Merci aussi a toi jbongran pour tous ces commentaires que je vais eplucher de ce pas (je suis pas sur de tout comprendre) mais ce se sont des commentaires qui font plaisir (pour le debutant que je suis) ils sont basés sur un script que je connais bien puisque je l'ai ecris , et ca c'est genial comme didactique.
un tres grand merci a tous les deux :)
Tres cordialement
merlin01fr
pour jbongran
Quand tu dis Case 2 intSepCount = 1
intSepCount correspond a expressionlist-n de la fonction case documente dans le wscript56.chm ?
si oui merci beaucoup pour l'astuce, franchement c'est genial, et bien trop mal documenté dans le wscript56.chm
Encore merci
Merci a sympatix et a jbongran pour leurs reponses
Concernant ta reponse sympatix , je supposais que mon erreur venait du fait que mon Dim soit mal placé , merci de me l'avoir certifié
Merci aussi a toi jbongran pour tous ces commentaires que je vais eplucher de ce pas (je suis pas sur de tout comprendre) mais ce se sont des commentaires qui font plaisir (pour le debutant que je suis) ils sont basés sur un script que je connais bien puisque je l'ai ecris , et ca c'est genial comme didactique.
un tres grand merci a tous les deux :)
Tres cordialement
pour jbongran
Quand tu dis Case 2 intSepCount = 1
intSepCount correspond a expressionlist-n de la fonction case documente dans
le wscript56.chm ?
si oui merci beaucoup pour l'astuce, franchement c'est genial, et bien trop
mal documenté dans le wscript56.chm
Encore merci
Merci a sympatix et a jbongran pour leurs reponses
Concernant ta reponse sympatix , je supposais que mon erreur venait du fait
que mon Dim soit mal placé , merci de me l'avoir certifié
Merci aussi a toi jbongran pour tous ces commentaires que je vais eplucher
de ce pas (je suis pas sur de tout comprendre) mais ce se sont des
commentaires qui font plaisir (pour le debutant que je suis) ils sont basés
sur un script que je connais bien puisque je l'ai ecris , et ca c'est genial
comme didactique.
intSepCount correspond a expressionlist-n de la fonction case documente dans le wscript56.chm ?
si oui merci beaucoup pour l'astuce, franchement c'est genial, et bien trop mal documenté dans le wscript56.chm
Encore merci
Merci a sympatix et a jbongran pour leurs reponses
Concernant ta reponse sympatix , je supposais que mon erreur venait du fait que mon Dim soit mal placé , merci de me l'avoir certifié
Merci aussi a toi jbongran pour tous ces commentaires que je vais eplucher de ce pas (je suis pas sur de tout comprendre) mais ce se sont des commentaires qui font plaisir (pour le debutant que je suis) ils sont basés sur un script que je connais bien puisque je l'ai ecris , et ca c'est genial comme didactique.
un tres grand merci a tous les deux :)
Tres cordialement
jbongran
merlin01fr wrote:
pour jbongran
Quand tu dis Case 2 intSepCount = 1
intSepCount correspond a expressionlist-n de la fonction case documente dans le wscript56.chm ?
si oui merci beaucoup pour l'astuce, franchement c'est genial, et bien trop mal documenté dans le wscript56.chm
Encore merci
Merci a sympatix et a jbongran pour leurs reponses
Concernant ta reponse sympatix , je supposais que mon erreur venait du fait que mon Dim soit mal placé , merci de me l'avoir certifié
Merci aussi a toi jbongran pour tous ces commentaires que je vais eplucher de ce pas (je suis pas sur de tout comprendre) mais ce se sont des commentaires qui font plaisir (pour le debutant que je suis) ils sont basés sur un script que je connais bien puisque je l'ai ecris , et ca c'est genial comme didactique.
un tres grand merci a tous les deux :)
Tres cordialement
C'est exactement ça ;-) En gros si on traduit Select Case MaVar -> En fonction de la valeur de la variable MaVar Case 2 -> dans le cas ou MaVar vaut le chiffre 2 intCount = 1 -> la variable intCount vaudra 1 Case 3, 4 -> dans le cas ou MaVar vaut le chiffre 3 ou 4 intCount = 5 -> la variable intCount vaudra 5 Case Else -> Dans tous les autres cas intCount = 10 -> la variable intCount vaudra 10 End Select -> Fin de l'évaluation de la variable MaVar
Si il n'y a (comme dans l'exemple donné) qu'une instruction suivant le Case, celle-ci peut se trouver sur la même ligne, augmentant la compacité du code, au détriment (leger) de sa lisibilité
merlin01fr wrote:
pour jbongran
Quand tu dis Case 2 intSepCount = 1
intSepCount correspond a expressionlist-n de la fonction case
documente dans le wscript56.chm ?
si oui merci beaucoup pour l'astuce, franchement c'est genial, et
bien trop mal documenté dans le wscript56.chm
Encore merci
Merci a sympatix et a jbongran pour leurs reponses
Concernant ta reponse sympatix , je supposais que mon erreur venait
du fait que mon Dim soit mal placé , merci de me l'avoir certifié
Merci aussi a toi jbongran pour tous ces commentaires que je vais
eplucher de ce pas (je suis pas sur de tout comprendre) mais ce se
sont des commentaires qui font plaisir (pour le debutant que je
suis) ils sont basés sur un script que je connais bien puisque je
l'ai ecris , et ca c'est genial comme didactique.
un tres grand merci a tous les deux :)
Tres cordialement
C'est exactement ça ;-)
En gros si on traduit
Select Case MaVar -> En fonction de la valeur de la variable MaVar
Case 2 -> dans le cas ou MaVar vaut le chiffre 2
intCount = 1 -> la variable intCount vaudra 1
Case 3, 4 -> dans le cas ou MaVar vaut le chiffre 3 ou 4
intCount = 5 -> la variable intCount vaudra 5
Case Else -> Dans tous les autres cas
intCount = 10 -> la variable intCount vaudra 10
End Select -> Fin de l'évaluation de la variable MaVar
Si il n'y a (comme dans l'exemple donné) qu'une instruction suivant le Case,
celle-ci peut se trouver sur la même ligne, augmentant la compacité du code,
au détriment (leger) de sa lisibilité
intSepCount correspond a expressionlist-n de la fonction case documente dans le wscript56.chm ?
si oui merci beaucoup pour l'astuce, franchement c'est genial, et bien trop mal documenté dans le wscript56.chm
Encore merci
Merci a sympatix et a jbongran pour leurs reponses
Concernant ta reponse sympatix , je supposais que mon erreur venait du fait que mon Dim soit mal placé , merci de me l'avoir certifié
Merci aussi a toi jbongran pour tous ces commentaires que je vais eplucher de ce pas (je suis pas sur de tout comprendre) mais ce se sont des commentaires qui font plaisir (pour le debutant que je suis) ils sont basés sur un script que je connais bien puisque je l'ai ecris , et ca c'est genial comme didactique.
un tres grand merci a tous les deux :)
Tres cordialement
C'est exactement ça ;-) En gros si on traduit Select Case MaVar -> En fonction de la valeur de la variable MaVar Case 2 -> dans le cas ou MaVar vaut le chiffre 2 intCount = 1 -> la variable intCount vaudra 1 Case 3, 4 -> dans le cas ou MaVar vaut le chiffre 3 ou 4 intCount = 5 -> la variable intCount vaudra 5 Case Else -> Dans tous les autres cas intCount = 10 -> la variable intCount vaudra 10 End Select -> Fin de l'évaluation de la variable MaVar
Si il n'y a (comme dans l'exemple donné) qu'une instruction suivant le Case, celle-ci peut se trouver sur la même ligne, augmentant la compacité du code, au détriment (leger) de sa lisibilité