Trier un fichier texte [Résolu]

Signaler
Messages postés
2
Date d'inscription
vendredi 9 février 2007
Statut
Membre
Dernière intervention
22 mai 2007
-
Messages postés
2
Date d'inscription
vendredi 9 février 2007
Statut
Membre
Dernière intervention
22 mai 2007
-
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

Messages postés
66
Date d'inscription
vendredi 20 octobre 2006
Statut
Membre
Dernière intervention
25 février 2008
1
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_
Messages postés
2
Date d'inscription
vendredi 9 février 2007
Statut
Membre
Dernière intervention
22 mai 2007

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.