Question
Tableau 2 dimensions
- clem
- Auteur du sujet
- Hors Ligne
- Membre junior
-
- Messages : 27
- Remerciements reçus 0
Je voudrais créer un tableau à 2 dimensions
comment ajouter une ligne dynamiquement à un tableau de deux dimensions ?
Exemple (simplifié)
[code:1]foreach ($user in $complist )
{
$tab=($user.name,$user.lastlogon)
}[/code:1]
Je voudrais, qu'à chaque passage du foreach, un ligne soit ajoutée au tableau.
Le but étant de pouvoir accéder à chaque ligne, une fois le foreach terminé, par tab[index]
et (par exemple) au 2é element de la 2è ligne par Tab[1][1].
Je ne connait pas à l'avance le nombre de ligne et je ne sais pas comment declarer le tableau correctement.
Si il vous faut plus de precisions, je les donnerai bien sur.
Merci.
Message édité par: clem, à: 18/12/08 13:11<br><br>Message édité par: clem, à: 18/12/08 13:41
Connexion ou Créer un compte pour participer à la conversation.
- Laurent Dardenne
- Hors Ligne
- Modérateur
-
- Messages : 6311
- Remerciements reçus 68
clem écrit:
avant de te répondre, puisque ton exemple qui se veut simplifié n'augure, à mon avis, rien de bon, peux tu nous expliquer le contexte ?Exemple (simplifié)
A priori tu sembles vouloir combiner une hastable avec un tableau...
clem écrit:
Certes mais le nombre de lignes se situe dans l'ordre de la dizaine, de la centaine, du milliéme, de la dizaine de millier, etc, etc...Je ne connais pas à l'avance le nombre de ligne
Tutoriels PowerShell
Connexion ou Créer un compte pour participer à la conversation.
- clem
- Auteur du sujet
- Hors Ligne
- Membre junior
-
- Messages : 27
- Remerciements reçus 0
$complist = $ads.findall()
foreach ($userdc1 in $complist )
{
$tab=($userdc1.Properties.name,$userdc1.Properties.lastlogon,$userdc2.Properties.lastlogon)
}
Je veux mettre dans la meme ligne d'un tableau, le nom du user courant, le lastlogon sur le controleur de domaine dc1 et le lastlogon du controleur dc2.
Je souhaite donc une ligne par userdc1 de maniee a pourvoir y acceder par tab[index].
Environ 400 users donc autant de ligne (mais ce n'est pas fixe)<br><br>Message édité par: clem, à: 18/12/08 15:03
Connexion ou Créer un compte pour participer à la conversation.
- Laurent Dardenne
- Hors Ligne
- Modérateur
-
- Messages : 6311
- Remerciements reçus 68
clem écrit:
Ensuite la question est : un arraylist d'accord mais contenant quel type d'objet ? A quel type d'accés penses-tu ?Je veux mettre dans la meme ligne d'un tableau, le nom du user courant, le lastlogon sur le controleur de domaine dc1 et le lastlogon du controleur dc2.
[code:1]
$tab[1].Name
$tab[1].LastlogonDc1
$tab[1].LastlogonDc2
# ou
$tab[1].Lastlogon.Dc1
$tab[1].Lastlogon.Dc2
[/code:1]
clem écrit:
Qu'est-ce qui n'est pas fixe, le résulat de l'interrogation ? Est-ce à dire que la taille de ton tableau remanié doit suivre la taille du tableau des users récupérés par une interrogation ?Environ 400 users donc autant de ligne (mais ce n'est pas fixe)
Ou comptes-tu ajouter des users en plus de ceux renvoyés par l'interrogation initiale ?<br><br>Message édité par: Laurent Dardenne, à: 18/12/08 15:21
Tutoriels PowerShell
Connexion ou Créer un compte pour participer à la conversation.
- clem
- Auteur du sujet
- Hors Ligne
- Membre junior
-
- Messages : 27
- Remerciements reçus 0
$tab[1].Name >> type string
$tab[1].LastlogonDc1 >> type datetime
$tab[1].LastlogonDc2 >> type datetime
la requete me sort tous les users de l'ad, donc elle changera si un user quitte la société ou arrive, je n'ajoute pas de ligne a la main
Connexion ou Créer un compte pour participer à la conversation.
- Laurent Dardenne
- Hors Ligne
- Modérateur
-
- Messages : 6311
- Remerciements reçus 68
D'accord, pense à préciser ce type d'info la prochaine foisla requete me sort tous les users de l'ad, donc elle changera si un user quitte la société ou arrive, je n'ajoute pas de ligne a la main
Je te propose cette solution basée sur un tableau de hashtable :
[code:1]
$CompList = $ads.findall()
$Type=$CompList[0].GetType()
#Crée un tableau d'objet d'une taille égale à celle de la collection $CompList
$Tab=new-object Object[] $CompList.Count
#tableau débutant à zéro
$Index=0
foreach ($User in $CompList )
{
#l'élément n est une hashatable contenant 2 ou + clés
$Tab[$Index]=@{Name=$User.Name;DC1LastLogon=$User.lastlogon} # etc
$Index++
}
$Tab[0].Name
$Tab[0].DC1LastLogon
$Tab[1].Name
$Tab[1].DC1LastLogon
...
[/code:1]
En même temps tu récupères déjà un tableau que tu peux interroger sur le même principe, qu'apporte donc cette réorganisation ??
[edit]
Correction de Index en $Index<br><br>Message édité par: Laurent Dardenne, à: 18/12/08 17:10
Tutoriels PowerShell
Connexion ou Créer un compte pour participer à la conversation.
- Vous êtes ici :
-
Accueil
-
forum
-
PowerShell
-
Entraide pour les débutants
- Tableau 2 dimensions