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

Delphi Discussion :

[Algorithme] Copie liste de fichiers avec 10 threads


Sujet :

Delphi

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre émérite

    Profil pro
    Inscrit en
    Mai 2003
    Messages
    582
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Mai 2003
    Messages : 582
    Par défaut
    Rien à faire j'arrive pas à reproduire ce problème ici...
    Comment dupliquer un disque...ça vous intéresse?
    Tutoriel et code source delphi ici

  2. #2
    Membre émérite

    Profil pro
    Inscrit en
    Mai 2003
    Messages
    582
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Mai 2003
    Messages : 582
    Par défaut
    Avec quelle version de Delphi tu travail?

    avec la 7 il y a ceci:
    Bug
    ca s'applique aussi avec d'autre version Delphi je crois bien..
    Moi ici D5...voici le code de TThread.Destroy
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    destructor TThread.Destroy;
    begin
      if not FFinished and not Suspended then
      begin
        Terminate;
        WaitFor;
      end;
      if FHandle <> 0 then CloseHandle(FHandle);
      inherited Destroy;
      RemoveThread;
    end;
    Comment dupliquer un disque...ça vous intéresse?
    Tutoriel et code source delphi ici

  3. #3
    Membre Expert
    Avatar de Sub0
    Homme Profil pro
    Développeur Web
    Inscrit en
    Décembre 2002
    Messages
    3 573
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Décembre 2002
    Messages : 3 573
    Par défaut
    J'ai Delphi6. J'ai essayé toutes les directives de compilation possibles au cas où, j'ai toujours le problème avec WaitFor : Descripteur non valide (code 6). J'ai fait une petite recherche à ce sujet et j'ai trouvé la solution :
    Citation Envoyé par Smortex
    FreeOnTerminate := False;
    J'ai donc modifié mon code et profité pour corriger un autre bug aussi. Grâce à ton expérience et tes explications, le code doit-être correcte à présent :
    http://sub0.developpez.com/delphi/threadscopy.zip

    Citation Envoyé par Eric Boisvert
    Je serais bien curieux de voir l'attaque de ce problème avec les Semaphores... Si quelqu'un les connait bien...ce serait intéressant de voir de quelle façon une démo semblable à la nôtre peut-être écrite en les utilisant?
    +1.
    Je me demande aussi : N'y aurait-il pas moyen de simplifier ton code avec la TThreadList ?

  4. #4
    Membre Expert
    Avatar de Sub0
    Homme Profil pro
    Développeur Web
    Inscrit en
    Décembre 2002
    Messages
    3 573
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Décembre 2002
    Messages : 3 573
    Par défaut
    Salut

    @Eric : As-tu reçu mon message privé ?

  5. #5
    Membre Expert
    Avatar de Sub0
    Homme Profil pro
    Développeur Web
    Inscrit en
    Décembre 2002
    Messages
    3 573
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Décembre 2002
    Messages : 3 573
    Par défaut
    J'ai proposé le code suivant pour la page "code sources" du forum Delphi :

    http://sub0.developpez.com/delphi/threadscopy.zip

    Le programme possède une protection contre l'écrasement des fichiers avec un dialogue [Oui/Non/Tous/Annuler]. Lorsqu'on choisit [Oui] dans le dialogue, [Tous] apparaît dans le dialogue suivant. Ce programme possède 3 paramètres :
    Code delphi : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Const NbrThreads: Byte = 10;        { Nombre de copies simultannées }
          DestinDir : String = 'tmp';   { Nom du répertoire de destination }
          BufSize = $10000;             { Taille du bloc de copie }
    Manque plus que réaliser cette démo avec les sémaphores, Eric BoisVert s'étant déjà occupé de la développer avec une TThreadList...
    En attendant, si vous avez des suggestions pour améliorer la qualité du code, je suis preneur, à+

  6. #6
    Membre émérite

    Profil pro
    Inscrit en
    Mai 2003
    Messages
    582
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Mai 2003
    Messages : 582
    Par défaut
    Bon voilà la version finale.

    - J'ai ajouté des barres de progression dans la TListview.
    - Modification dans l'affichage de l'état des threads (lorsqu'il y en a beaucoup)
    - J'ai suivie les conseils jeudicieux de Sub0 pour la présentation du code.
    Comment dupliquer un disque...ça vous intéresse?
    Tutoriel et code source delphi ici

Discussions similaires

  1. Copie d'un fichier avec des caractères spéciaux
    Par totofe dans le forum Scripts/Batch
    Réponses: 5
    Dernier message: 15/09/2010, 12h28
  2. Liste de fichiers avec liens et classement
    Par illidan05 dans le forum Excel
    Réponses: 1
    Dernier message: 21/05/2008, 14h48
  3. recuperer liste de fichier avec http
    Par etoileDesNeiges dans le forum Entrée/Sortie
    Réponses: 3
    Dernier message: 10/04/2007, 12h02
  4. Réponses: 16
    Dernier message: 07/04/2005, 11h36

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