Résolu Tableau ou pas

Plus d'informations
il y a 3 ans 3 mois #30298 par Besançon Ludovic
Tableau ou pas a été créé par Besançon Ludovic
Bonjour,

J'ai un problème avec mes variables qui peuvent être des tableaux ou pas ...
$myData = Import-CSV BlaBla.csv
Si je veux traiter que les fichiers ayant des données je teste comme cela
If ($myData.Count -gt 0)
Mais tout va bien si j'ai 0 ou plusieurs lignes, mais si j'en ai une cela coince car ... on dirait que $myData.Count est vide

Comment faire ?

Merci de votre aide.

Ludovic.

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

Plus d'informations
il y a 3 ans 3 mois #30303 par Arnaud Petitjean
Réponse de Arnaud Petitjean sur le sujet Tableau ou pas
Bonjour Ludovic,

Il y a une petite astuce à connaître en PowerShell pour que le résultat soit retourné systématiquement en tableau, même s'il est vide ou s'il ne contient qu'un seul élément.

Il faut que tu forces la conversion de ton résultat en type tableau. Dans ton cas, cela donnerait :
$myData = @(Import-CSV BlaBla.csv)

Une autre possibilité serait de déclarer ta variable $myData de type tableau avant de commencer à l'utiliser. Comme ceci:
$myData = @()

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 ?
Les utilisateur(s) suivant ont remercié: Besançon Ludovic

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

Plus d'informations
il y a 3 ans 3 mois - il y a 3 ans 3 mois #30304 par Besançon Ludovic
Réponse de Besançon Ludovic sur le sujet Tableau ou pas
Merci la première solution fonctionne correctement.
La deuxième non.

Ludovic.

PS : Merci aussi d'avoir retirer mon message dans le mauvais forum !
Dernière édition: il y a 3 ans 3 mois par Besançon Ludovic.

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

Plus d'informations
il y a 3 ans 3 mois #30305 par Arnaud Petitjean
Réponse de Arnaud Petitjean sur le sujet Tableau ou pas

La deuxième non.


C'est curieux car pour moi cela fonctionne.

Contenu de mon fichier CSV vide "testvide.csv" :
Nom;Prenom,Age
PS > @(import-csv C:\temp\testvide.csv -Delimiter ';').count
0

D'ailleurs ça fonctionne avec ou sans l'arrobase...

Essai avec un fichier CSV rempli "test.csv":
Nom;Prenom,Age
Petitjean;Arnaud;43
Dupuy;Jean;23
PS > (import-csv C:\temp\test.csv -Delimiter ';').count
2

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 3 ans 3 mois #30306 par Besançon Ludovic
Réponse de Besançon Ludovic sur le sujet Tableau ou pas
J'avais compris :
$myData = @()
$myData = Import-CSV BalBla.csv
$myData.Count
afficherait bien 1 si le fichier n'avait qu'une ligne de données.
Ce n'est pas le cas.

La déclaration ne change rien.

Ludovic.

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

Plus d'informations
il y a 3 ans 3 mois #30307 par Arnaud Petitjean
Réponse de Arnaud Petitjean sur le sujet Tableau ou pas
Oui tu as raison, la déclaration ne change rien.

Cela étant dit, dans mon cas, ça me retourne toujours bien le nombre d'objets importés (correspondant au nombre de lignes).

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.

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