Trier un fichier texte [Résolu]

crunch02 2 Messages postés vendredi 9 février 2007Date d'inscription 22 mai 2007 Dernière intervention - 3 mai 2007 à 11:25 - Dernière réponse : crunch02 2 Messages postés vendredi 9 février 2007Date d'inscription 22 mai 2007 Dernière intervention
- 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
cs__Syl_ 66 Messages postés vendredi 20 octobre 2006Date d'inscription 25 février 2008 Dernière intervention - 3 mai 2007 à 12:14
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

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 125 internautes ce mois-ci

Commenter la réponse de cs__Syl_
crunch02 2 Messages postés vendredi 9 février 2007Date d'inscription 22 mai 2007 Dernière intervention - 3 mai 2007 à 13:43
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.