Question Importation et modification d'un fichier CSV

Plus d'informations
il y a 2 ans 7 mois - il y a 2 ans 7 mois #31323 par VIGNES
 Bonjour à tous je viens de commencer le powershell cette semaine.
Je dois concaténer les informations d'un fichier csv et les réorganiser pour quelles soient assimilés dans un progiciel de transport.
La fracture de mon fichier "export_515" se fait au niveau de la colonne "Transport".
Je cherche donc à additionner "NbPalSolPlan", "PoidsPlan","Total" pour chaque référence de transport.

Problèmes:
                   -Je n'arrive pas à définir les valeurs de Total comme décimal.(Je pense que la virgule pose problème)
                   -Je n'arrive pas à additionner le nombre de palettes
                   -Le poids est OK pour ma première sortie mais incorrectes pour la deuxième

Les résultats que je devrai trouver si le script était bon: -Première sortie (Nbpalettes=33 / Poids=5603.478/ Prix=880.01)
                                                                                        -Deuxième sortie(Nbpalettes=11 / Poids=1368.476/Prix=1050.01)

Je pense que mon code est mal structuré dans le sens où j'affecte les valeurs de la ligne juste avant de faire une sortie vers mon fichier csv final.
Je vous laisse redéfinir les variables $path et $thepath.
Il faudra changer l'extension .txt en .csv

Merci d'avance pour vos pistes et votre aide. 



 

Fichier attaché :

Nom du fichier : CSV.ps1
Taille du ficher :3 ko
Pièces jointes :
Dernière édition: il y a 2 ans 7 mois par VIGNES .

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

Plus d'informations
il y a 2 ans 7 mois #31325 par Philippe
salut vignes

si j'ai bien compris les additions sur cette et les suivante ne fonctionne pas :
$Poids=$Poids+$($line.PoidsPlan)

c'est du que le format des valeurs lors de import du CSV est en string, donc impossible de faire un addition de deux chaines de caractères !!!

il faut indiquer que tu travail avec des valeurs décimales
$Poids = [float]$Poids + [float]$($line.PoidsPlan)

mais il y aussi le problème du séparateur décimal qui doit normalement etre un point et pas une virgule
une solution :
$Poids = [float]$Poids + [float]$($line.PoidsPlan).replace(',', '.')

il serait plus propre de demander a PowerShell de considéré une virgule comme séparateur mais je retrouve plus la variable à changer
Les utilisateur(s) suivant ont remercié: VIGNES

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

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