Trier un fichier texte

Résolu
crunch02 Messages postés 2 Date d'inscription vendredi 9 février 2007 Statut Membre Dernière intervention 22 mai 2007 - 3 mai 2007 à 11:25
crunch02 Messages postés 2 Date d'inscription vendredi 9 février 2007 Statut Membre 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.

2 réponses

cs__Syl_ Messages postés 66 Date d'inscription vendredi 20 octobre 2006 Statut Membre Dernière intervention 25 février 2008 2
3 mai 2007 à 12:14
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_
3
crunch02 Messages postés 2 Date d'inscription vendredi 9 février 2007 Statut Membre Dernière intervention 22 mai 2007
3 mai 2007 à 13:43
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.
0
Rejoignez-nous