Trier un fichier texte [Résolu]

Messages postés
2
Date d'inscription
vendredi 9 février 2007
Dernière intervention
22 mai 2007
- - Dernière réponse : crunch02
Messages postés
2
Date d'inscription
vendredi 9 février 2007
Dernière intervention
22 mai 2007
- 3 mai 2007 à 13:43
Bonjour,

Dans le cadre de mon travail, j'ai réalisé un petit programme qui me récupère les données d'une base access et les écrit dans un fichier texte. (Grâce aux sources de ce site. merci aux auteurs)
Mon problème est que les lignes écrites (qui sont dans l'ordre dans la bdd) ne sont pas dans l'ordre dans le fichier texte.

Exemple de fichier texte généré : on voit que la ligne 631 n'est pas à sa place
574   02/01/2007     09:26:42 False
575   02/01/2007     09:26:47 False
631   03/05/2007     00:25:24 True
576   02/01/2007     09:26:53 False
577   02/01/2007     09:26:58 False

Je souhaiterais donc soit avoir une méthode pour que ces lignes soient dans l'ordre ou alors pouvoir trier le fichier texte en fonction de la première colonne. J'ai éssayé plusieurs méthodes ( fonction sort...) mais rien n'y fait.

Voici le code que j'utilise :

OleDbConnection conn = new OleDbConnection(@"provider=Microsoft.Jet.OLEDB.4.0;Data Source="+adresse+"");
OleDbDataAdapter da = new OleDbDataAdapter("SELECT * FROM "+table+"",conn);

DataSet ds = new DataSet("données");
da.Fill(ds, "table");

FileStream fileStream = new System.IO.FileStream(adressefichier,System.IO.FileMode.Create);
StreamWriter sw = new StreamWriter(fileStream);

foreach (DataColumn col in ds.Tables["table"].Columns)
        {
          sw.Write(col.ColumnName);
          sw.Write("\t");
        }
        sw.Write(sw.NewLine);

foreach(DataRow row in ds.Tables["table"].Rows)
        {
          int cnt = ds.Tables["table"].Columns.Count;
          for(int i = 0; i < cnt; i++)     
            {         
            sw.Write(row[i]);
            sw.Write("\t");
            }
        sw.Write(sw.NewLine);
        }

sw.Close();
conn.Close();

Je met les données dans un dataset avant de les écrire dans le fichier txt, peut on trier ce dataset ?
Si on ne peut pas, peut on trier le fichier txt et comment ?

Merci par avance.
Afficher la suite 

Votre réponse

2 réponses

Meilleure réponse
Messages postés
66
Date d'inscription
vendredi 20 octobre 2006
Dernière intervention
25 février 2008
3
Merci
Bonjour,
Que penses-tu de trier ton résultat avant de le mettre dans ton DataSet, directement depuis ta requete SQL ?

"SELECT * FROM "+table+" ORDER BY "+<le_nom_du_champ_à_trier>(+"")

_Syl_

Merci cs__Syl_ 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources a aidé 100 internautes ce mois-ci

Commenter la réponse de cs__Syl_
Messages postés
2
Date d'inscription
vendredi 9 février 2007
Dernière intervention
22 mai 2007
0
Merci
Merci beacoup _Syl_ c'est exactement ce que je voulais faire et ça fonctionne parfaitement.
Dire que je cherchais compliqué quand on pouvait le faire en moins d'une ligne^^

Encore merci à toi.
Commenter la réponse de crunch02

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.