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 :

Lire un fichier texte dans l'ordre avec Threads


Sujet :

C#

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Futur Membre du Club
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Juin 2018
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Administrateur de base de données

    Informations forums :
    Inscription : Juin 2018
    Messages : 4
    Par défaut Lire un fichier texte dans l'ordre avec Threads
    Bonjour,

    J'ai un projet qui a pour but de vérifier l'existence d'un ou plusieurs dossiers dans une URL (httpclient) depuis un fichier texte.

    Pour récupérer les lignes du fichier texte j'ai fait ça:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    static string[] lines = File.ReadAllLines(@"fichier_texte.txt");
     static ConcurrentQueue<string> queue = new ConcurrentQueue<string>(lines);
    Ensuite,
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    while (queue.TryDequeue(out number))
                    {
      var lixn = htcli.GetAsync(solo + number).Result;
                    page++;
     
                      add_c(list, "(" + page + "/" + page_tot + ") > " + lien, Color.Red);
     
     
                        if (lixn.StatusCode == HttpStatusCode.OK)
                        {
                            add_c(list, lien, Color.Green);
                        }
    }
    En gros il va m'afficher en rouge si le dossier n'existe pas, et en vert si il existe dans une listbox.

    Mon problème c'est que j'aimerais ajouter plusieurs threads au lieu d'un seul pour que la vérification aille plus vite. Ça fonctionne, mais il ne m'affiche pas les résultats dans l'ordre.


    Ex:
    Fichier texte:
    /dossier1
    /dossier2
    /dossier3

    Résultats:
    http://www.url.com/dossier2
    http://www.url.com/dossier1
    http://www.url.com/dossier3

    Comment faire pour que les résultats soit dans l'ordre ?

    Merci d'avance pour vos réponses.

  2. #2
    Expert confirmé
    Homme Profil pro
    Responsable Données
    Inscrit en
    Janvier 2009
    Messages
    5 442
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Responsable Données

    Informations forums :
    Inscription : Janvier 2009
    Messages : 5 442
    Par défaut
    Bonjour,
    Tu peux ajouter les fichiers traités dans une liste, puis trier la liste en fin de traitement (ou à chaque ajout si tu veux l'afficher pendant le traitement).
    Il faut juste penser à "bloquer" la liste pendant le tri, pour éviter qu'ajout et tri n'interfère.


    Tatayo.

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Juin 2018
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Administrateur de base de données

    Informations forums :
    Inscription : Juin 2018
    Messages : 4
    Par défaut
    Merci pour ta réponse, j'ai essayé :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     var file = File.ReadAllLines(@"text_dossier");
              liste = new List<string>(file);
    mais j'ai une erreur:
    Nom : Capture5.PNG
Affichages : 165
Taille : 29,6 Ko

    Comment résoudre le soucis ? c'est bien ça que tu me conseilles de faire ? merci d'avance

  4. #4
    Expert confirmé
    Homme Profil pro
    Responsable Données
    Inscrit en
    Janvier 2009
    Messages
    5 442
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Responsable Données

    Informations forums :
    Inscription : Janvier 2009
    Messages : 5 442
    Par défaut
    C'est une "limitation" de C#: on ne peut pas modifier une collection dans un foreach().
    Je voyais plutôt un liste.sort() soit à chaque ajout, soit en fin de traitement (selon le besoin).

    Tatayo.

  5. #5
    Futur Membre du Club
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Juin 2018
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Administrateur de base de données

    Informations forums :
    Inscription : Juin 2018
    Messages : 4

  6. #6
    Expert confirmé
    Homme Profil pro
    Responsable Données
    Inscrit en
    Janvier 2009
    Messages
    5 442
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Responsable Données

    Informations forums :
    Inscription : Janvier 2009
    Messages : 5 442
    Par défaut
    Là c'est le tri "par défaut", mais il est possible de personnaliser le tri utilié par sort() via un délégué.
    Tu as un exemple ici.

    Tatayo.

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

Discussions similaires

  1. lire un fichier copié dans un dossier avec le meme code
    Par vieri31 dans le forum C++Builder
    Réponses: 22
    Dernier message: 27/05/2008, 03h23
  2. Lire un fichier texte dans une String
    Par philomania dans le forum Entrée/Sortie
    Réponses: 2
    Dernier message: 31/12/2007, 13h51
  3. Importer un fichier texte dans une table avec champ Memo
    Par Steph4fun dans le forum Paradox
    Réponses: 12
    Dernier message: 25/11/2007, 23h10
  4. Lire un fichier texte dans un Jar
    Par billgates5050 dans le forum Entrée/Sortie
    Réponses: 3
    Dernier message: 23/10/2007, 09h48
  5. Réponses: 3
    Dernier message: 05/06/2007, 11h15

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