IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C# Discussion :

Trier les données d'un fichier txt en c#


Sujet :

C#

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Candidat au Club
    Homme Profil pro
    Apprenti
    Inscrit en
    Avril 2018
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Apprenti
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2018
    Messages : 2
    Par défaut Trier les données d'un fichier txt en c#
    Bonjour,

    J'ai un problème, qui est probablement simple à résoudre.
    Je fais des requêtes à un outil web, que j'utilise ce qui me fait comme valeur dans mon fichiers txt:

    PROJ-1003 date 11.04.2018 11:05:10
    PROJ-1004 date 11.04.2018 11:07:12
    PROJ-1005 date 11.04.2018 11:12:34
    PROJ-1006 date 11.04.2018 11:12:59
    PROJ-566 date 21.03.2018 14:37:02
    PROJ-633 date 22.03.2018 07:57:19
    PROJ-634 date 22.03.2018 07:58:12
    PROJ-638 date 22.03.2018 08:03:31

    J'aimerai pouvoir trier le fichier en sorte que les données appraisse comme ce-ci:

    PROJ-566 date 21.03.2018 14:37:02
    PROJ-633 date 22.03.2018 07:57:19
    PROJ-634 date 22.03.2018 07:58:12
    PROJ-638 date 22.03.2018 08:03:31
    PROJ-1003 date 11.04.2018 11:05:10
    PROJ-1004 date 11.04.2018 11:07:12
    PROJ-1005 date 11.04.2018 11:12:34
    PROJ-1006 date 11.04.2018 11:12:59

    Je vous remercie d'avance.

  2. #2
    Membre Expert
    Avatar de wallace1
    Homme Profil pro
    Administrateur systèmes
    Inscrit en
    Octobre 2008
    Messages
    1 966
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Administrateur systèmes
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Octobre 2008
    Messages : 1 966
    Billets dans le blog
    7
    Par défaut
    Bonjour,

    C'est de l'algorithme pur et sur ce sujet on ne livre pas de code prêt à l'emploi donc voici une logique que tu pourrais employer (peut-être pas la meilleur, il en existe plein) :

    Q : Déterminer quelle est la portion de chaîne qui te permet d'ordonner l'ensemble ?
    R : 1003, 1004, 1005, 1006, 566, 633, ....

    Q : Comment découper une chaîne de caractères ?
    R : Dans ton cas de figure la méthode .Split fera l'affaire. Ainsi tu obtiendras par exemple pour la 1ère chaîne ceci :

    PROJ-1003
    date
    11.04.2018
    11:05:10
    Tu pourrais ensuite utiliser la méthode Replace pour supprimer le préfixe "PROJ-" de la 1ère valeur retournée par la méthode Split. Cela te permettra d'obtenir par exemple pour la 1ère ligne : 1003 qui te servira de clé d'ordonnancement.

    Q : Comment ordonner une liste ?
    R : Grâce à la classe : SortedList<int, string>
    Tu stockes chaque valeur (retournée dans la précédente réponse) en type Integer (Key) et la chaîne entière en type String (Value). Et voilà ta liste est ordonnée.

    Q :Comment parcourir une SortedList :
    R : Comme ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
        for (int i = 0; i <= sortedList1.Count - 1; i++)
        {
            Console.WriteLine("Key : " + sortedList1.Keys(i).ToString);
            Console.WriteLine("Value : " + sortedList1.Values(i));
        }
    -----> Donc pour récapituler :

    0- Tu déclares et instancies une SortedList<int, string>
    1- Tu parcours ton fichier ligne par ligne
    2- A chaque passage de ligne :
    - tu stockes ta ligne entière dans une variable
    - tu découpes ta chaîne pour extraire la portion de chaîne qui te permet d'ordonner (ex : 1003, 566, ....)
    - tu ajoutes à ta SortedList la clé de type Integer (portion de chaîne qui te permet d'ordonner) et la valeur de type String (ligne entière)
    3- Ta liste est ordonnée

    A+

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    15
    Détails du profil
    Informations personnelles :
    Âge : 65
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2009
    Messages : 15
    Par défaut

    Citation Envoyé par wallace1 Voir le message
    Q : Déterminer quelle est la portion de chaîne qui te permet d'ordonner l'ensemble ?
    R : 1003, 1004, 1005, 1006, 566, 633, ....
    C'est plutôt 566, 633, 1003, 1004, 1005, 1006, ....

  4. #4
    Membre Expert
    Avatar de wallace1
    Homme Profil pro
    Administrateur systèmes
    Inscrit en
    Octobre 2008
    Messages
    1 966
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Administrateur systèmes
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Octobre 2008
    Messages : 1 966
    Billets dans le blog
    7
    Par défaut
    Citation Envoyé par MicBru Voir le message



    C'est plutôt 566, 633, 1003, 1004, 1005, 1006, ....
    La portion par rapport à son fichier d'origine car en algorithmique on exploite les données d'entrée (dites de traitement) afin d'obtenir des données de sortie (dites résultantes).

  5. #5
    Candidat au Club
    Homme Profil pro
    Apprenti
    Inscrit en
    Avril 2018
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Apprenti
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2018
    Messages : 2
    Par défaut
    Bonjour,

    Merci Wallace pour cette prompte proposition, j'ai tout bêtement trouver une solution plus simple, j'ai modifié ma requête sur l'outil en ligne et j'ai donc une liste triée, comme je le voulais(j'aurais du y penser plus tôt ).

    Je te remercie tout de même pour ta solution, malgrès que je ne l'ai pas utilisé.

    Désolé du dérrangement

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Récuperer les données d'un fichier txt pour les insérer dans une Table
    Par sandokhane dans le forum Bases de données
    Réponses: 47
    Dernier message: 31/05/2014, 15h10
  2. [OpenOffice][Base de données] Récupérer les données d'un fichier .txt et les insérer dans une base de données
    Par frack dans le forum OpenOffice & LibreOffice
    Réponses: 9
    Dernier message: 05/08/2009, 10h52
  3. charger les données d'un fichier .txt dans une table
    Par lemerite dans le forum Développement
    Réponses: 6
    Dernier message: 10/09/2008, 18h33
  4. Réponses: 2
    Dernier message: 19/03/2007, 17h38
  5. [Debutant] Travailler les données d'un fichier txt
    Par Jidewe dans le forum Débuter
    Réponses: 4
    Dernier message: 16/01/2007, 10h31

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo