Question
Tri numerique decroissant de fichier csv
- Christophe MELIN
- Hors Ligne
- Membre junior
Réduire
Plus d'informations
- Messages : 26
- Remerciements reçus 4
il y a 2 ans 1 mois - il y a 2 ans 1 mois #32554
par Christophe MELIN
Réponse de Christophe MELIN sur le sujet Tri numerique decroissant de fichier csv
Bonjour,
en reprenant les éléments que Laurent a déjà fourni, voilà une version simplifiée :
=============================================================
[string]$Rep_temp = $Env:TEMP
[string]$Fich_temp = "$Rep_Temp\X_arc_ciel.tmp"
#-- création du tableau de données --
$arrLines = @(
'Rang;Couleur;Compte'
'1;Blanc;150'
'2;Rouge;1181'
'3;Bleu;37'
'4;Vert;243'
'5;Jaune;274'
)
#-- export du tableau dans un fichier temporaire --
$arrLines | Out-File $Fich_temp -Encoding Unicode -force
#-- relecture avec conversion en entier et tri descendant --
$arrObjects = Import-Csv $Fich_temp -Delimiter ';' -encoding unicode `
| foreach-object { $_.compte = [int]$_.compte; $_ } `
| Sort-Object -Property @{ Expression = 'Compte'; Ascending = $False }
#-- affichage des résultats --
ForEach ( $Objet in $arrObjects ) {
Write-Host ("Rang : {0,-5} Couleur : {1,-10} Compte : {2,5}" -f $Objet.Rang, $Objet.Couleur, $Objet.Compte )
}
#-- suppression du fichier temporaire --
remove-item -path $fich_temp
=============================================================
On évite une écriture - lecture d'un deuxième fichier temporaire. J'ai aussi ajouté la suppression du fichier temporaire.
Avec le tableau $arrLines, on évite plusieurs variables $ligneX et surtout plusieurs écritures successives dans le fichier temporaire (et c'est facile d'ajouter d'autres lignes car il suffit de les ajouter dans le tableau
en reprenant les éléments que Laurent a déjà fourni, voilà une version simplifiée :
=============================================================
[string]$Rep_temp = $Env:TEMP
[string]$Fich_temp = "$Rep_Temp\X_arc_ciel.tmp"
#-- création du tableau de données --
$arrLines = @(
'Rang;Couleur;Compte'
'1;Blanc;150'
'2;Rouge;1181'
'3;Bleu;37'
'4;Vert;243'
'5;Jaune;274'
)
#-- export du tableau dans un fichier temporaire --
$arrLines | Out-File $Fich_temp -Encoding Unicode -force
#-- relecture avec conversion en entier et tri descendant --
$arrObjects = Import-Csv $Fich_temp -Delimiter ';' -encoding unicode `
| foreach-object { $_.compte = [int]$_.compte; $_ } `
| Sort-Object -Property @{ Expression = 'Compte'; Ascending = $False }
#-- affichage des résultats --
ForEach ( $Objet in $arrObjects ) {
Write-Host ("Rang : {0,-5} Couleur : {1,-10} Compte : {2,5}" -f $Objet.Rang, $Objet.Couleur, $Objet.Compte )
}
#-- suppression du fichier temporaire --
remove-item -path $fich_temp
=============================================================
On évite une écriture - lecture d'un deuxième fichier temporaire. J'ai aussi ajouté la suppression du fichier temporaire.
Avec le tableau $arrLines, on évite plusieurs variables $ligneX et surtout plusieurs écritures successives dans le fichier temporaire (et c'est facile d'ajouter d'autres lignes car il suffit de les ajouter dans le tableau
Dernière édition: il y a 2 ans 1 mois par Christophe MELIN.
Connexion ou Créer un compte pour participer à la conversation.
Temps de génération de la page : 0.097 secondes
- Vous êtes ici :
- Accueil
- forum
- PowerShell
- Entraide pour les débutants
- Tri numerique decroissant de fichier csv