Question [Résolu] Ajout tableau personnalisé

Plus d'informations
il y a 13 ans 5 mois #13387 par xyz
Réponse de xyz sur le sujet Re:Ajout tableau personnalisé
benduru écrit:

Il faut aussi déclarer $array en tant que tableau, je ne le vois pas dans ton script..

Je vais offenser Nico, mais dans le code que tu références il y a à boire et à manger.
C'est le précédent code (19/12/12 15:31) qui pose pb, ou en tout cas est le plus cohérent dans la démarche.

A mon avis, il n'est pas nécessaire de préciser une déclaration de tableau sous cette forme car celle-ci [code:1] $listeip = @(import-csv c:\temp\ip.csv)[/code:1]
la remplace et est moins verbeuse. Elle manque juste de commentaires pour ceux et celles qui ne la connaisse pas.

Et tout comptes fait, je pense qu'on à une pratique similaire à ceux qui ne donne pas d'exemple dans l'enoncé de leur problème. La différence est que pour les contributeurs est elle dans l'énoncé de la solution :whistle:

Tutoriels PowerShell

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

Plus d'informations
il y a 13 ans 5 mois #13391 par SiSMik
Réponse de SiSMik sur le sujet Re:Ajout tableau personnalisé
On s'est mal compris Laurent.

Pour moi l'erreur qu'il a est dûe au fait qu'il veut ajouter un objet dans un tableau qui n'existe pas et donc qu'il est indispensable de déclarer un autre tableau que celui qui contient les informations du fichier csv d'abord.

[code:1]
+ $array += <<<< $object
[/code:1]


Concernant ton code pour importer un fichier csv dans un tableau, je n'y trouve rien à redire ;)<br><br>Message édité par: benduru, à: 20/12/12 04:33

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

Plus d'informations
il y a 13 ans 5 mois #13392 par Arnaud Petitjean
Bonsoir,

A mon tour de donner ma solution, car comme a chaque fois il en existe de nombreuses... :laugh:

En imaginant un fichier CSV structure comme ceci (toujours avec le caractere TAB comme separateur de champs:
[code:1]
IP NombreOccurences
192.168.1.1 4
10.10.10.2 5
[/code:1]

Il suffit de specifier le delimiteur TAB a Import-CSV pour importer correctement le fichier en memoire:
[code:1]$csv = import-csv C:\temp\test.csv -Delimiter \&quot;`t\&quot;[/code:1]

Pour verifier que l'import a correctement fonctionne, tu devrais avoir quelque chose comme ceci:
[code:1]
PS C:\&gt; $csv

IP NombreOccurences
--
192.168.1.1 4
10.10.10.2 5
[/code:1]

Ensuite pour pouvoir ajouter un objet supplementaire a ton tableau, il faut que ce dernier ait la meme structure. C'est a dire posseder une propriete IP et NombreOcccurences. Donc pour cela on va utiliser New-Object pour y parvenir, comme ceci:

[code:1]$v = New-Object PSObject -Property @{IP=\&quot;192.168.1.2\&quot;; NombreOccurences=\&quot;6\&quot;}[/code:1]

A present il n'y a plus qu'a ajouter cet objet au tableau:
[code:1]$csv = $csv + $v[/code:1]

Verifions le resultat:
[code:1]PS C:\&gt; $csv

IP NombreOccurences
--
192.168.1.1 4
10.10.10.2 5
192.168.1.2 6
[/code:1]

En esperant avoir bien compris ta problematique. Et au fait, bienvenu dans le forum !

Arnaud

MVP PowerShell et créateur de ce magnifique forum :-)
Auteur de 6 livres PowerShell aux éditions ENI
Fondateur de la société Start-Scripting
Besoin d'une formation PowerShell ?

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

Plus d'informations
il y a 13 ans 5 mois #13393 par Nicolas
Réponse de Nicolas sur le sujet Re:Ajout tableau personnalisé
Pas de souci je ne me sens pas du tout offusqué :p ce sont mes début en powershell et toute critique est bonne a prendre :)

Comme dit plus haut je suis débutant et donc j'ai l'impression de m'embrouille.

Mais si je reprend

[code:1]function ajoutip ($ip)
{

$props =@{'ip'=$ip;'compteur'=\&quot;1\&quot;}
$objet = New-Object -TypeName PSObject -prop $props
#j'importe ma liste d'ip qui existe déja toujours sous le format ip//compteur
$listeip = import-csv c:\temp\ip.csv
#Je eux rajouter cette nouvelle ip a celle deja connue pour ensuite réimporté la totalité dans mon
fichier csv
$listeip += $objet
$listeip | export-csv c:\temp\ip.csv
}[/code:1]Ce code la est (+/-) bon dans l'ensemble le seul problème étant que je ne déclare pas $listeip comme tableau et je dois donc remplacer la ligne par [code:1]$listeip = @ {}[/code:1]
ainsi je pourrais utilisé la fonction +=$object

Je pense que c'est plus ou moins ca, je ferais des tests demain.

Encore un grand merci pour vos réponse.

Nico

Message édité par: Zarko, à: 19/12/12 22:59<br><br>Message édité par: Zarko, à: 19/12/12 23:02

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

Plus d'informations
il y a 13 ans 5 mois #13394 par Arnaud Petitjean
Nico,

On a poste en meme temps ;). Regarde ma solution et dis moi si ca correspond a ton besoin.

Arnaud

MVP PowerShell et créateur de ce magnifique forum :-)
Auteur de 6 livres PowerShell aux éditions ENI
Fondateur de la société Start-Scripting
Besoin d'une formation PowerShell ?

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

Plus d'informations
il y a 13 ans 5 mois #13395 par Nicolas
Réponse de Nicolas sur le sujet Re:Ajout tableau personnalisé
Effectivement

Ta solution ma l'air vraiment simple et ca a l'air de répondre tout à fait a mes besoins je teste ca demain matin et te dis quoi

Merci :)

Nico

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

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