Question
[Résolu] Ajout tableau personnalisé
- xyz
- Hors Ligne
- Modérateur
-
Réduire
Plus d'informations
- Messages : 6311
- Remerciements reçus 69
il y a 13 ans 5 mois #13387
par xyz
Tutoriels PowerShell
Réponse de xyz sur le sujet Re:Ajout tableau personnalisé
benduru écrit:
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
Je vais offenser Nico, mais dans le code que tu références il y a à boire et à manger.Il faut aussi déclarer $array en tant que tableau, je ne le vois pas dans ton script..
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
Tutoriels PowerShell
Connexion ou Créer un compte pour participer à la conversation.
- SiSMik
- Hors Ligne
- Membre platinium
-
Réduire
Plus d'informations
- Messages : 492
- Remerciements reçus 0
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
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
Connexion ou Créer un compte pour participer à la conversation.
- Arnaud Petitjean
-
- Hors Ligne
- Modérateur
-
il y a 13 ans 5 mois #13392
par Arnaud Petitjean
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 ?
Réponse de Arnaud Petitjean sur le sujet Re:Ajout tableau personnalisé
Bonsoir,
A mon tour de donner ma solution, car comme a chaque fois il en existe de nombreuses...
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 \"`t\"[/code:1]
Pour verifier que l'import a correctement fonctionne, tu devrais avoir quelque chose comme ceci:
[code:1]
PS C:\> $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=\"192.168.1.2\"; NombreOccurences=\"6\"}[/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:\> $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
A mon tour de donner ma solution, car comme a chaque fois il en existe de nombreuses...
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 \"`t\"[/code:1]
Pour verifier que l'import a correctement fonctionne, tu devrais avoir quelque chose comme ceci:
[code:1]
PS C:\> $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=\"192.168.1.2\"; NombreOccurences=\"6\"}[/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:\> $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.
- Nicolas
- Auteur du sujet
- Hors Ligne
- Membre junior
-
Réduire
Plus d'informations
- Messages : 27
- Remerciements reçus 0
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é
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'=\"1\"}
$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
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'=\"1\"}
$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.
- Arnaud Petitjean
-
- Hors Ligne
- Modérateur
-
il y a 13 ans 5 mois #13394
par Arnaud Petitjean
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 ?
Réponse de Arnaud Petitjean sur le sujet Re:Ajout tableau personnalisé
Nico,
On a poste en meme temps
. Regarde ma solution et dis moi si ca correspond a ton besoin.
Arnaud
On a poste en meme temps
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.
- Nicolas
- Auteur du sujet
- Hors Ligne
- Membre junior
-
Réduire
Plus d'informations
- Messages : 27
- Remerciements reçus 0
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
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.048 secondes
- Vous êtes ici :
-
Accueil
-
forum
-
PowerShell
-
Entraide pour les débutants
- [Résolu] Ajout tableau personnalisé