Question Recuperer valeur d'une cellule d'un fichier CSV

Plus d'informations
il y a 13 ans 8 mois #12254 par nicolas
Bonjour,

J'ai un fichier CSV de cette forme :

unUser;grp-00_ts_adarp14
unAutreUser;grp-00_excel_interdit
tjrsUnAutreUser;grp-00_ts;grp-00_ts_adarp14

j'aimerais bien récupérer dans une variable la valeur de la première cellule de la première ligne, comment dois-je faire ?

[code:1]
#
# Import des 2 CSV
#
try
{
$csv_Ajout = Import-Csv c:\scripts\groupes_a_ajouter.csv -Delimiter \";\"
$scv_Suppr = Import-Csv c:\scripts\groupes_a_retirer.csv -Delimiter \";\"
}
catch
{
[system.windows.forms.messagebox]::«»show(\"Veuillez placer les fichiers CSV dans C:\scripts\\"«»)
}



$valeur=($csv_Ajout[1])
[/code:1]

Merci de vos réponses :)<br><br>Message édité par: nicodeff, à: 27/06/12 13:43

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

Plus d'informations
il y a 13 ans 8 mois #12260 par Richard Lazaro
pour la première ligne, cela sera simple avec :

[code:1]
$csv_Ajout[0]
[/code:1]

Car le Import-Csv génère un tableau d'objet.
Par contre, Il faut savoir que avec le Import-Csv : la première ligne est celle des headers.

Donc dans ton cas, tu vas perdre une donnée, construis ton csv de cette façon plutôt :

UserName;GroupName
unUser;grp-00_ts_adarp14
unAutreUser;grp-00_excel_interdit
tjrsUnAutreUser;grp-00_ts;grp-00_ts_adarp14


Et comme cela, tu auras des objets avec deux propriétés (UserName et GroupName)

Pour parcourir tout cela :

Import-Csv c:\scripts\groupes_a_ajouter.csv -Delimiter \&quot;;\&quot; | ForEach-Object { $_ }

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 13 ans 8 mois #12261 par nicolas
Bonsoir,

Le problème c'est que je peux avoir plusieurs groupName pour un User, le CSV peux donc ressembler à ça:

[code:1]
dkXXX;grp-20_prestataire_r;grp-20_comptabilite_w;grp-20_comptabilite_r;grp-30_documentation_w;grp-40_agenda_w
dlXXX;grp-30_documentation_r;grp-40_agenda_w;grp-40_agenda_r
lhXXX;grp-03_service_mandataire_r;grp-03_service_prestataire_w;grp-03_service_prestataire_r;grp-03_service_comptabilite_w
mdXXX;grp-11_juridique_r;grp-11_recrutement_r;grp-11_juridique_w;grp-11_formation_w;grp-11_recrutement_w
[/code:1]

Alors je risque d'avoir du mal à les classer...

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

Plus d'informations
il y a 13 ans 8 mois #12262 par Richard Lazaro
Le problème, c'est que le Import-CSV ne va plus fonctionner.

Je te propose de remplacer les \&quot;;\&quot; pour la partie des groupe par des \&quot;,\&quot; et de faire un Split :

[code:1]
$_.GroupName.Split(\&quot;,\&quot;«»)
[/code:1]

Qui va te retourner un tableau, que tu pourras traité avec un ForEach :

[code:1]
Import-Csv c:«»scriptsgroupes_a_ajouter.csv -Delimiter \&quot;;\&quot; | ForEach-Object {
$UserName = $_.UserName
$_.GroupName.Split(\&quot;,\&quot;«») | ForEach-Object {
# Ajout du user $UserName dans le groupe $_
}
}
[/code:1]

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 13 ans 8 mois #12268 par nicolas
Merci de ton aide.

Comment le programme sait que la première colonne est le UserName et les autres le groupName ?

Désolé de t’embêter comme ça Richard Lazaro :unsure:

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

Plus d'informations
il y a 13 ans 8 mois #12269 par Richard Lazaro
Alors, là on parle pas vraiment de première et dernière colonne mais on rentre dans le modèle objet

C'est un peu compliqué à expliquer, c'est le même fonctionnement que les headers avec un Excel au final sauf que là on génère des objets.

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.

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