Question
Erreur sur Foreach
- SiSMik
- Auteur du sujet
- Hors Ligne
- Membre platinium
-
Réduire
Plus d'informations
- Messages : 492
- Remerciements reçus 0
il y a 15 ans 10 mois #6929
par SiSMik
Erreur sur Foreach a été créé par SiSMik
Encore une fois je reviens avec unt ruc cass c*** 
Le code suivant fonctionne correctement pour cocher mes checkboxes
[code:1]
[string]$applications = $var.InstallApplications
$applications = $applications.trim()
[Array]$applications = $applications.Split(\";\"«»)
foreach ($item in $applications)
{
$soft = $item.Substring(0, $item.Length - 2)
$i=0
foreach ($truc in $list_applis.items) {
if ($soft -match $truc ) {
$list_applis.SetItemChecked($i, $true)
}
$i++
}
}
[/code:1]
par contre j'ai cette erreur qui s'affiche sans cesse
[code:1]
Une erreur s'est produite lors de l'énumération parmi une collection : La liste à laquelle cet énumérateur est lié a été modifiée. Un énumérateur ne peut être utilisé que
si la liste ne change pas..
Au niveau de C:\temp\tableau de bord.ps1 : 172 Caractère : 16
+ foreach <<<< ($truc in $list_applis.items) {
+ CategoryInfo : InvalidOperation: (System.Windows....EntryEnumerator:EntryEnumerator) [], RuntimeException
+ FullyQualifiedErrorId : BadEnumeration
[/code:1]
Je n'arrive pas à débugger, ne comprenant pas pourquoi la liste serait modifiée étant donné que je liste toutes les items de la liste, pas seulement les check/uncheck..
Moi pas comprendre PoSH ^^
Ciao et merci d'avance<br><br>Message édité par: benduru, à: 21/05/10 14:51
Le code suivant fonctionne correctement pour cocher mes checkboxes
[code:1]
[string]$applications = $var.InstallApplications
$applications = $applications.trim()
[Array]$applications = $applications.Split(\";\"«»)
foreach ($item in $applications)
{
$soft = $item.Substring(0, $item.Length - 2)
$i=0
foreach ($truc in $list_applis.items) {
if ($soft -match $truc ) {
$list_applis.SetItemChecked($i, $true)
}
$i++
}
}
[/code:1]
par contre j'ai cette erreur qui s'affiche sans cesse
[code:1]
Une erreur s'est produite lors de l'énumération parmi une collection : La liste à laquelle cet énumérateur est lié a été modifiée. Un énumérateur ne peut être utilisé que
si la liste ne change pas..
Au niveau de C:\temp\tableau de bord.ps1 : 172 Caractère : 16
+ foreach <<<< ($truc in $list_applis.items) {
+ CategoryInfo : InvalidOperation: (System.Windows....EntryEnumerator:EntryEnumerator) [], RuntimeException
+ FullyQualifiedErrorId : BadEnumeration
[/code:1]
Je n'arrive pas à débugger, ne comprenant pas pourquoi la liste serait modifiée étant donné que je liste toutes les items de la liste, pas seulement les check/uncheck..
Moi pas comprendre PoSH ^^
Ciao et merci d'avance<br><br>Message édité par: benduru, à: 21/05/10 14:51
Connexion ou Créer un compte pour participer à la conversation.
- Arthur
- Hors Ligne
- Membre elite
-
Réduire
Plus d'informations
- Messages : 226
- Remerciements reçus 0
il y a 15 ans 10 mois #6930
par Arthur
Réponse de Arthur sur le sujet Re:Erreur sur Foreach
Salut, j'avais eu le même soucis que toi il y a quelques temps.
Voici le code de ma fonction.
ListeOrdi est une checklistbox.
[code:1]$CocherTous_OnClick=
{
for ($i = 0; $i -lt $ListeOrdi.Items.Count ; $i++) {
$ListeOrdi.SetItemChecked($i,$true)
}
}[/code:1]
En faite l'erreur n'est pas une erreur mais une mesure de sécurité,je ne sait plus trop pourquoi... laurent l'explique dans un des ses tuto il me semble.
Edit:
Message édité par: bilbao, à: 21/05/10 15:05<br><br>Message édité par: bilbao, à: 21/05/10 15:06
Voici le code de ma fonction.
ListeOrdi est une checklistbox.
[code:1]$CocherTous_OnClick=
{
for ($i = 0; $i -lt $ListeOrdi.Items.Count ; $i++) {
$ListeOrdi.SetItemChecked($i,$true)
}
}[/code:1]
En faite l'erreur n'est pas une erreur mais une mesure de sécurité,je ne sait plus trop pourquoi... laurent l'explique dans un des ses tuto il me semble.
Edit:
C'est encore pire c'est du framework.Moi pas comprendre PoSH ^^
Message édité par: bilbao, à: 21/05/10 15:05<br><br>Message édité par: bilbao, à: 21/05/10 15:06
Connexion ou Créer un compte pour participer à la conversation.
- Laurent Dardenne
- Hors Ligne
- Modérateur
-
Réduire
Plus d'informations
- Messages : 6311
- Remerciements reçus 68
il y a 15 ans 10 mois #6931
par Laurent Dardenne
Tutoriels PowerShell
Réponse de Laurent Dardenne sur le sujet Re:Erreur sur Foreach
Bien que bilbao t'ait déjà répondu, je repasse la seconde couche...
benduru écrit:
benduru écrit:
Comme te l'a dit bilbao, ici il s'agit de l'apprentissage du comportement d'une interface du framework dotnet (IEnumerateur).
PowerShell n'a rien à voir là dedans, il ne fait que ce que tu lui demandes de faire.<br><br>Message édité par: Laurent Dardenne, à: 21/05/10 15:45
benduru écrit:
Faux, tu modifies la liste d'où l'erreur, voir ceci .étant donné que je liste toutes les items de la liste
benduru écrit:
Bah ça a le mérite d'être clairMoi pas comprendre PoSH ^^
Comme te l'a dit bilbao, ici il s'agit de l'apprentissage du comportement d'une interface du framework dotnet (IEnumerateur).
PowerShell n'a rien à voir là dedans, il ne fait que ce que tu lui demandes de faire.<br><br>Message édité par: Laurent Dardenne, à: 21/05/10 15:45
Tutoriels PowerShell
Connexion ou Créer un compte pour participer à la conversation.
- SiSMik
- Auteur du sujet
- Hors Ligne
- Membre platinium
-
Réduire
Plus d'informations
- Messages : 492
- Remerciements reçus 0
il y a 15 ans 10 mois #6933
par SiSMik
Réponse de SiSMik sur le sujet Re:Erreur sur Foreach
Mon abus de langage me perdra 
C'est n'est effectivement pas du powershell, nous sommes bien d'accord
Merci pour les informations en tout cas
Et bon week end.. y'en a qui ont fini dans 19 minutes ^^
C'est n'est effectivement pas du powershell, nous sommes bien d'accord
Merci pour les informations en tout cas
Et bon week end.. y'en a qui ont fini dans 19 minutes ^^
Connexion ou Créer un compte pour participer à la conversation.
Temps de génération de la page : 0.040 secondes
- Vous êtes ici :
-
Accueil
-
forum
-
PowerShell
-
Entraide pour les débutants
- Erreur sur Foreach