Question
Tri numerique decroissant de fichier csv
- J-L Prout
- Auteur du sujet
- Hors Ligne
- Nouveau membre
-
Réduire
Plus d'informations
- Messages : 19
- Remerciements reçus 0
il y a 2 ans 6 mois #32507
par J-L Prout
Tri numerique decroissant de fichier csv a été créé par J-L Prout
Je n'arrive pas à mettre en ˜œuvre un tri numérique décroissant de fichier csv. Ça devrait pourtant être simple. Je n'ai pas réussi à trouver de réponse pertinente jusqu'à présent. Je dois avoir un problème avec "-Property" de "Sort-Object". Voici mon script d'essai:
[string]$Rep_temp = $Env:TEMP # Repertoire des fichiers temporaires
[string] $Fich_temp = New-Item -Name 'X_arc_ciel.csv' -Path $Rep_temp -ItemType File
[string] $InterFile_1 = New-Item -Name 'X_arc_ciel_Man.csv' -Path $Rep_temp -ItemType File
[string] $Entete = 'Rang;Couleur;Compte'
$Entete | Out-File $Fich_temp -Encoding Unicode
[string] $Ligne_1 = '1;Blanc;150'
[string] $Ligne_2 = '2;Rouge;1181'
[string] $Ligne_3 = '3;Bleu;37'
[string] $Ligne_4 = '4;Vert;243'
[string] $Ligne_5 = '5;Jaune;274'
$Ligne_1 | Out-File $Fich_temp -Append -Encoding Unicode
$Ligne_2 | Out-File $Fich_temp -Append -Encoding Unicode
$Ligne_3 | Out-File $Fich_temp -Append -Encoding Unicode
$Ligne_4 | Out-File $Fich_temp -Append -Encoding Unicode
$Ligne_5 | Out-File $Fich_temp -Append -Encoding Unicode
Import-Csv $Fich_temp -Delimiter ';' `
| Sort-Object -Property @{ Expression = 'Compte'; Ascending = $False } `
| Export-Csv -Path $InterFile_1 -Delimiter ';' -Encoding Unicode -Force
$Lignes = Import-csv $InterFile_1 -Delimiter ';'
:ReLecture
ForEach ( $Objet in $Lignes ) {
[string] $Rang = $Objet."Rang"
[string] $Coul = $Objet."Couleur"
[string] $Cpte = $Objet."Compte"
Write-Host 'Rang : "' , $Rang , '" - Couleur : "' , $Coul , '" - Compte : "' , $Cpte , '"' -separator ''
}
[string]$Rep_temp = $Env:TEMP # Repertoire des fichiers temporaires
[string] $Fich_temp = New-Item -Name 'X_arc_ciel.csv' -Path $Rep_temp -ItemType File
[string] $InterFile_1 = New-Item -Name 'X_arc_ciel_Man.csv' -Path $Rep_temp -ItemType File
[string] $Entete = 'Rang;Couleur;Compte'
$Entete | Out-File $Fich_temp -Encoding Unicode
[string] $Ligne_1 = '1;Blanc;150'
[string] $Ligne_2 = '2;Rouge;1181'
[string] $Ligne_3 = '3;Bleu;37'
[string] $Ligne_4 = '4;Vert;243'
[string] $Ligne_5 = '5;Jaune;274'
$Ligne_1 | Out-File $Fich_temp -Append -Encoding Unicode
$Ligne_2 | Out-File $Fich_temp -Append -Encoding Unicode
$Ligne_3 | Out-File $Fich_temp -Append -Encoding Unicode
$Ligne_4 | Out-File $Fich_temp -Append -Encoding Unicode
$Ligne_5 | Out-File $Fich_temp -Append -Encoding Unicode
Import-Csv $Fich_temp -Delimiter ';' `
| Sort-Object -Property @{ Expression = 'Compte'; Ascending = $False } `
| Export-Csv -Path $InterFile_1 -Delimiter ';' -Encoding Unicode -Force
$Lignes = Import-csv $InterFile_1 -Delimiter ';'
:ReLecture
ForEach ( $Objet in $Lignes ) {
[string] $Rang = $Objet."Rang"
[string] $Coul = $Objet."Couleur"
[string] $Cpte = $Objet."Compte"
Write-Host 'Rang : "' , $Rang , '" - Couleur : "' , $Coul , '" - Compte : "' , $Cpte , '"' -separator ''
}
Connexion ou Créer un compte pour participer à la conversation.
- Laurent Dardenne
- Hors Ligne
- Modérateur
-
Réduire
Plus d'informations
- Messages : 6302
- Remerciements reçus 68
il y a 2 ans 6 mois #32508
par Laurent Dardenne
Tutoriels PowerShell
Réponse de Laurent Dardenne sur le sujet Tri numerique decroissant de fichier csv
Salut,
le fichier n'est pas correctement structuré :Il manque le paramètre -Append.
le fichier n'est pas correctement structuré :
$Entete | Out-File $Fich_temp -Encoding Unicode
Tutoriels PowerShell
Connexion ou Créer un compte pour participer à la conversation.
- J-L Prout
- Auteur du sujet
- Hors Ligne
- Nouveau membre
-
Réduire
Plus d'informations
- Messages : 19
- Remerciements reçus 0
il y a 2 ans 6 mois #32511
par J-L Prout
Réponse de J-L Prout sur le sujet Tri numerique decroissant de fichier csv
Cette ligne:
$Entete | Out-File $Fich_temp -Encoding Unicode
est bien la PREMIÈRE ligne du fichier, puisque ce doit être l'en-tête d'un fichier .csv. Pour cette ligne, le paramètre "-Append" est sans intérêt quand le fichier est encore vide.
De toute façon, cela ne résoud pas mon problème de tri NUMÉRIQUE décroissant.
$Entete | Out-File $Fich_temp -Encoding Unicode
est bien la PREMIÈRE ligne du fichier, puisque ce doit être l'en-tête d'un fichier .csv. Pour cette ligne, le paramètre "-Append" est sans intérêt quand le fichier est encore vide.
De toute façon, cela ne résoud pas mon problème de tri NUMÉRIQUE décroissant.
Connexion ou Créer un compte pour participer à la conversation.
- Laurent Dardenne
- Hors Ligne
- Modérateur
-
Réduire
Plus d'informations
- Messages : 6302
- Remerciements reçus 68
il y a 2 ans 6 mois #32513
par Laurent Dardenne
Tutoriels PowerShell
Réponse de Laurent Dardenne sur le sujet Tri numerique decroissant de fichier csv
> le paramètre "-Append" est sans intérêt quand le fichier est encore vide.
Exact, je n'étais pas encore réveillé...
Le problème est dû au faite que Import-csv gère des strings uniquement, il faut modifier le type de la valeur de la propriété 'Compte' :
Exact, je n'étais pas encore réveillé...
Le problème est dû au faite que Import-csv gère des strings uniquement, il faut modifier le type de la valeur de la propriété 'Compte' :
Import-Csv $Fich_temp -Delimiter ';' |
foreach-object {
$_.Compte=[int]$_.Compte;$_
} | Sort-Object -Property @{ Expression = 'Compte'; Ascending = $False }
Tutoriels PowerShell
Connexion ou Créer un compte pour participer à la conversation.
- Laurent Dardenne
- Hors Ligne
- Modérateur
-
Réduire
Plus d'informations
- Messages : 6302
- Remerciements reçus 68
il y a 2 ans 6 mois #32514
par Laurent Dardenne
Tutoriels PowerShell
Réponse de Laurent Dardenne sur le sujet Tri numerique decroissant de fichier csv
Et la syntaxe du tri :
Sort-Object -Property Compte -Descending
#ou par défaut
Sort-Object -Property Compte
Tutoriels PowerShell
Connexion ou Créer un compte pour participer à la conversation.
- J-L Prout
- Auteur du sujet
- Hors Ligne
- Nouveau membre
-
Réduire
Plus d'informations
- Messages : 19
- Remerciements reçus 0
il y a 2 ans 6 mois #32515
par J-L Prout
Réponse de J-L Prout sur le sujet Tri numerique decroissant de fichier csv
Hébin!!! Bravo!!! Mon cher Laurent
Tout cela semble maintenant fonctionner à merveille.
Je me doutais qu'il y avait à régler une question de transtypage.
J'ai aussi retenu le fait que 'Import-csv" ne gère que des chaînes
de caractères.
Grand merci pour ce précieux conseil.
Tout cela semble maintenant fonctionner à merveille.
Je me doutais qu'il y avait à régler une question de transtypage.
J'ai aussi retenu le fait que 'Import-csv" ne gère que des chaînes
de caractères.
Grand merci pour ce précieux conseil.
Connexion ou Créer un compte pour participer à la conversation.
Temps de génération de la page : 0.120 secondes
- Vous êtes ici :
-
Accueil
-
forum
-
PowerShell
-
Entraide pour les débutants
- Tri numerique decroissant de fichier csv