Question Array variable

Plus d'informations
il y a 8 ans 9 mois #16598 par Quentin
Array variable a été créé par Quentin
Bonjour,

J'aimerai créer un tableau de dimension spéciale :

En effet, j'aimerai qu'il soit de la forme

Array[x][0] = \"valeur\"
Array[x][1][0] = \"valeur 0\"
Array[x][1][1] = \"valeur 1\"
...
Array[x][1][xxx] = \"valeur xxx\"
Array[x][2] = \"valeur 2\"

Voici comme j'ai déclaré :

[code:1]$a = Get-Content (\"C:\monfichier.ldif\"«»)
$i = 0
$j = 0
$k = 0

$array = @()
$array +=@()
$array +=@()


#
# 0 : uid ; 1 : otherMailbox ; 2 : forwardingAdress
#

Foreach ( $line in $a ) {
if($line.Equals(\"\"«»))
{
$line = \"FIN\"
$i ++;
$j = 0
$k = 0

}
if($line -match \"^dn: uid=*\"«»)
{
$line_split = $line.split(\"=\"«»)
$line_split2 = $line_split[1].split(\",\"«»)
$lineFormated = $line_split2[0]
$array[$i][0] = $lineFormated
Write-Host $lineFormated
}

if($line -match \"^mailAlternateAddress:*\"«»)
{
$line_split = $line.split(\":\"«»)
$line = $line_split[1]
$line.Trim()
$array[$i][1][$j] = $line
$j ++
}

if($line -match \"^mailForwardingAddress:*\"«»)
{
$line_split = $line.split(\":\"«»)
$line = $line_split[1]
$line.Trim()
$array[$i][2] = $line
$k ++
}


}[/code:1]

Voici les messages d'erreur :

[code:1]Impossible d'indexer dans un tableau Null.
Au niveau de C:\traitement_LDAP.ps1 : 29 Caractère : 14
+ $array[$i][ <<<< 0] = $lineFormated
+ CategoryInfo : InvalidOperation: (0:Int32) [], RuntimeException
+ FullyQualifiedErrorId : NullArray

Impossible d'indexer dans un tableau Null.
Au niveau de C:\traitement_LDAP.ps1 : 38 Caractère : 14
+ $array[$i][ <<<< 1][$j] = $line
+ CategoryInfo : InvalidOperation: (1:Int32) [], RuntimeException
+ FullyQualifiedErrorId : NullArray[/code:1]

Merci d'avance de votre aide.

Quentin.<br><br>Message édité par: quentin96, à: 16/12/13 09:57

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 8 ans 9 mois #16600 par Richard Lazaro
Réponse de Richard Lazaro sur le sujet Re:Array variable
Bonjour,

Le problème actuel c'est que :
[code:1]$array = @()
$array +=@()
$array +=@()[/code:1]

Ne va pas créer des tableaux imbriqués mais va concaténer des tableau vide (donc rien faire au final)

Think-MS : (Get-Life).Days | %{ Learn-More }

\\&quot;Problems cannot be solved by the same level of thinking that created them.\\&quot; - Albert Einstein

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 8 ans 9 mois #16601 par ANTRI Mohamed
Réponse de ANTRI Mohamed sur le sujet Re:Array variable
Bonjour,

quel est le but de votre script ? Peut-être qu'il y a un moyen plus simple de réalisé ce que vous souhaitez.

merci.

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 8 ans 9 mois #16602 par Quentin
Réponse de Quentin sur le sujet Re:Array variable
Richard Lazaro écrit:

Bonjour,

Le problème actuel c'est que :
[code:1]$array = @()
$array +=@()
$array +=@()[/code:1]

Ne va pas créer des tableaux imbriqués mais va concaténer des tableau vide (donc rien faire au final)


Donc il faut que je fasse mes tableau séparément et que je les concatène ?
Par exemple moi qui fait du php, je n'ai pas cette notion de déclaration...

Antri écrit:

Bonjour,

quel est le but de votre script ? Peut-être qu'il y a un moyen plus simple de réalisé ce que vous souhaitez.

merci.


Le but est de récupérer un adresse mail, tous les alias de cette adresse mail et récupérer l'adresse de forward pour cette adresse et ses alias, afin de les injecter dans un AD.

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 8 ans 9 mois #16611 par Laurent Dardenne
Réponse de Laurent Dardenne sur le sujet Re:Array variable
Salut,
as-tu un jeux de test à nous communiquer ?
De ce que j'ai compris ton fichier ressemble à ceci :
[code:1]
$file='c:\temp\Datas1.txt'
$a=@\&quot;
test :recherche uid1
dn: uid= uid1,uid2,uid3,uid4
test :recherche email alternative
mailAlternateAddress:Autre@home.com
test :recherche email alternative
mailForwardingAddress:Forward@Home.com
\&quot;@ &gt;$file
[/code:1]

Tutoriels PowerShell

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 8 ans 9 mois #16612 par Quentin
Réponse de Quentin sur le sujet Re:Array variable

dn: uid=personne,ou=people,dc=home,dc=fr
modifytimestamp: 20091025102613Z
modifiersname: cn=directory manager
gecos: ITA - Adjoint
dspswloop: true
mailAlternateAddress: Cette adresse e-mail est protégée contre les robots spammeurs. Vous devez activer le JavaScript pour la visualiser.
mailAlternateAddress: Cette adresse e-mail est protégée contre les robots spammeurs. Vous devez activer le JavaScript pour la visualiser.
mailAlternateAddress: Cette adresse e-mail est protégée contre les robots spammeurs. Vous devez activer le JavaScript pour la visualiser.
userPassword: {crypt}dfsdfsdfz
datesortieAD: 135063900000000000
DateSortie: 20281231235959.0Z
ascoriaPresence: xxxxxxx.fr/kronolith/fb.php?u=personne
homeDirectory: /home/personne
vacationActive: FALSE
mailForwardingAddress: Cette adresse e-mail est protégée contre les robots spammeurs. Vous devez activer le JavaScript pour la visualiser.
sn: Personne Nom
cn: Personne
FileServerName: server
dspswuserlink:: fsdfsdfsjfkls
uidNumber: 1111
gidNumber: 11
loginShell: /usr/bin/tcsh
creatorsname: cn=directory manager
createtimestamp: 20031023105510Z
objectClass: posixAccount
objectClass: shadowAccount
objectClass: top
objectClass: mailrecipient
objectClass: inetorgperson
objectClass: organizationalPerson
objectClass: person
objectClass: qmailuser
objectClass: account
objectClass: dspswuser
objectClass: blabla
objectClass: test
uid: personne
shadowLastChange: 11330
shadowFlag: 0
mail: Cette adresse e-mail est protégée contre les robots spammeurs. Vous devez activer le JavaScript pour la visualiser.
accountStatus: active
nsuniqueid: lalalalalalalala
parentid: 34
entryid: 30
entrydn: uid=personne,ou=people,dc=home,dc=fr
numsubordinates: 0
subschemasubentry: cn=schema
hassubordinates: FALSE


Voici un exemple du jeu de donnée.
Ceci se répère ... beaaaaaaucoup de fois.

Encore merci de l'interêt que vous porté à mon petit problème.

Connexion ou Créer un compte pour participer à la conversation.

Temps de génération de la page : 0.105 secondes
Propulsé par Kunena