French Trier un fichier CSV

JJM

Active Member
Licensed User
Longtime User
Bonsoir,

Je n'arrive pas à trouver comment faire pour trier les données d'un fichier csv.

Il y a-t-il une instruction lors du chargement ou de la sauvegarde du fichier permettant ce tri (croissant ou décroissant) comme dans Basic4PPC?

Merci pour votre aide.

JJ M
 

klaus

Expert
Licensed User
Longtime User
A ma connaissance non.
Même dans B4PPC ce n'était pas le fichier csv qui était trié mais c'était dans l'objet Table.
Le seul conseil que je puisse donner est de passer à une base de données (évidemment si vous n'en avez pas besoin ailleurs sous la forme de fichier csv).
C'est nettement plus puissant et efficace.
Il n'y a pas si longtemps j'étais aussi plutôt axé fichiers cvs jusqu'à ce que je me mette aux bases de données sans aucun regret.

Meilleures salutations.
 

JJM

Active Member
Licensed User
Longtime User
Bonjour Klaus,

Merci pour votre réponse.

Salutations

JJM
 

wolf

Member
Licensed User
Longtime User
Un peu tard mais ... mieux vaut tard que jamais.

Je peux vous proposer une solution en trois étapes :

1) Lire le fichier CSV et le mettre par exemple dans une structure.
Por cela :
- déclarer un type avec autant de champs que de colonnes dans le fichier.
- déclarer un vecteur sur ce type
Facile avec les fonctions offertes dans l'IDE.

2) Appliquer sur la structure un algo de tri. Je vous en propose un avec un cout raisonnable.

3) recopier ensuite la structure dans le fichier.

Algorithme de tri :
  • J'ai un vecteur Tderout de structure.
  • Il comprend nbterrainsretenus.
  • Dans la structure il y a un champs dist.
  • Je trie par ordre croissant du champs dist.
  • Le principe du tri : balayer le vecteur et remonter a chaque fois la valeur maxi au dernier rang.

'tri du vecteur
Dim permut As Boolean
k= nbterrainsretenus-1
Do While k>0
permut=False
sauv=TDerout(0)
indmax=0
For j=0 To k
If TDerout(j).dist>sauv.dist Then
indmax=j
sauv=TDerout(j)
permut=True
End If
Next
'permutation
If indmax=0 OR permut=True Then
TDerout(indmax)=TDerout(k)
TDerout(k)=sauv
End If
k=k-1
Loop

Bon courage !
 

JJM

Active Member
Licensed User
Longtime User
tri d'un fichier csv

Merci pour votre réponse.
Il n'est jamais trop tard pour aider.

Merci encore, mes salutations.

JJM
 
Top