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

Discussion :

Aide pour un programme de copie et hash

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Étudiant
    Inscrit en
    Avril 2013
    Messages
    37
    Détails du profil
    Informations personnelles :
    Localisation : France

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

    Informations forums :
    Inscription : Avril 2013
    Messages : 37
    Par défaut Aide pour un programme de copie et hash
    Bonjour,

    Cela va faire maintenant 3 semaines que je travaille sur un projet cependant je passe a QT et je n'arrive pas a faire grand chose voir même rien c'est pour cela que je vous demande de l'aide pour comprendre et terminer ce projet avant que je devienne fou ^^

    projet que je dois réaliser :
    Je dois réaliser un logiciel qui permet ;

    - la copie d'un répertoire vers un répertoire distant
    - Calcul des hash des fichiers copiés
    - Comparaison des hashs des fichiers copié avec ceux présent dans un fichier XML
    ( regroupant les hashs des fichiers d'origine )
    - création d'un rapport

    Voila je n'arrive pas a avancer depuis un moment et je commence vraiment a désespéré et j'aurais vraiment besoin d'aide pour tenter de terminer.

    Niveau programme:
    en c++ toute mes fonctions sont opérationnelle , le seule gros problème et que je n'arrive pas a les lier avec l'api QT cela me rend fous car tous mon c++ fonctionne :s
    J'en suis donc a tenter de lier mon c++ avec l'interface mais sans sucés

    Niveau interface :

    voila un aperçu de l'interface :


    Les boutons parcourir fonctionne , le tableau affiche bien l'arborescence du répertoire , par contre le bouton copie ne fonctionne qu'a moitié

    le bouton copie :

    le bouton copie met en œuvre en effet la copie d'un répertoire vers un autre mais il est également chargé de calculer les hashs de chaque fichier et de les compare avec ceux extrait du fichier XML afin de vérifier que les fichier après copie sont bien les même , il est chargé également de créer le rapport de copie au format XML

    lors du lancement de la copie pour des gros répertoires l'application se freeze j'ai donc dessuite pensé au Qthread cependant je n'arrive pas a le mettre en œuvre

    le bouton lire le rapport :
    je ne m'en suis pas encore occupé il faut avant de demandé une quelconque aide que je me documente mais il consiste a l'ouverture du rapport généré lors de la copie

    Problème identifié :

    - Mise en place d'un Qthread pour le bouton copie afin d'éviter de freeze l'application
    - Mise en place d'une QprogressBar afin de voir l'avancement mais sa je verrai vraiment a la fin


    j'aurai vraiment besoin d'une aide en QT tout aide est bienvenue est j'espère ne pas être trop gonflé .. :s quant a ma demande je voudrais vraiment être aider et aiguiller car je ne m'en sors pas ..

    Vous allez me dire va voir la doc oui je fait sa de jour en jour je me document sur les diverse possibilité de QT qui sont immense , mais sortit de mon c++ je n'arrive pas a comprendre la logique QT

    En vous remerciant par avance
    Bien cordialement
    D. S

  2. #2
    Membre éclairé
    Avatar de VivienD
    Homme Profil pro
    Développeur logiciel
    Inscrit en
    Octobre 2009
    Messages
    523
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : Allemagne

    Informations professionnelles :
    Activité : Développeur logiciel
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Octobre 2009
    Messages : 523
    Par défaut
    Bonsoir,

    En ce qui concerne ton problème de multithreading et de barre de progression, je te conseille de pencher sur l'exemple QtConcurrent Progress Dialog Example (lien vers la documentation en ligne de cet exemple (Qt 5.0)). Sinon, tu peux toujours t'amuser avec les classes QThread et QThreadPool.
    Si tu souhaites aller plus loin avec les threads, la rubrique C++/Qt de developpez.com propose quelques traductions d'articles de QtProject sur ce sujet.

    Ensuite, pour ton problème de stockage, je verrais bien un objet QMap<QString, QByteArray>. Les clés (objets QString) correspondraient au chemin du fichier, alors que les valeurs (objets QByteArray) correspondraient à la signature du fichier concerné. Cette signature serait calculée grâce à une instance de la classe QCryptographicHash qui gère le MD4, le MD5 et le SHA-1 (depuis Qt 4.3) ainsi que le SHA-224, le SHA-256, le SHA-384 et le SHA-512 (depuis Qt 5.0).

    En espérant que ça t'aide.

    Tschüß!

  3. #3
    Membre averti
    Profil pro
    Étudiant
    Inscrit en
    Avril 2013
    Messages
    37
    Détails du profil
    Informations personnelles :
    Localisation : France

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

    Informations forums :
    Inscription : Avril 2013
    Messages : 37
    Par défaut
    Alors après de longue et laborieuse heure de travail j'ai réussi a mettre en place tout ce qui est stockage et calcul de hash : pour le calcul de hash j'utilise la librairie cryptopp savez vous par hasard qu'elle système serait le plus rapide : cryptopp ou QCryptopgraphic car je recherche la performance et la rapidité

    Je ne souhaite réaliser qu'un seul et unique thread afin justement de ne pas faire freeze la fenêtre et de laisser a l'utilisateur la possibilité d'apprécier la progression grâce a une barre de progression

    Mais je te remercie beaucoup pour ton aide

  4. #4
    Membre éclairé
    Avatar de VivienD
    Homme Profil pro
    Développeur logiciel
    Inscrit en
    Octobre 2009
    Messages
    523
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : Allemagne

    Informations professionnelles :
    Activité : Développeur logiciel
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Octobre 2009
    Messages : 523
    Par défaut
    Citation Envoyé par flaschgordon Voir le message
    Alors après de longue et laborieuse heure de travail j'ai réussi a mettre en place tout ce qui est stockage et calcul de hash : pour le calcul de hash j'utilise la librairie cryptopp savez vous par hasard qu'elle système serait le plus rapide : cryptopp ou QCryptopgraphic car je recherche la performance et la rapidité
    [...]
    Honnêtement, je n'ai jamais utilisé Crypto++; je ne saurais donc te dire quelle solution est la plus rapide.
    En revanche, j'ai utilisé un objet QMap<QString, QByteArray> parce que les signatures renvoyées par QCryptographicHash sont de la classe QByteArray. Si tu souhaites utiliser Crypto++, tu pourras/devras adapter le conteneur juste en remplaçant la classe QByteArray par char* ou std::string.

    Citation Envoyé par flaschgordon Voir le message
    [...]
    Je ne souhaite réaliser qu'un seul et unique thread afin justement de ne pas faire freeze la fenêtre et de laisser a l'utilisateur la possibilité d'apprécier la progression grâce a une barre de progression
    [...]
    Dans ce cas, on se contente généralement d'un "simple" QThread. Là, il faut te renseigner sur le système de signaux et slots et sur quelques méthodes: QThread::start(...) (slot), QThread::quit() (slot), QThread::wait(...), QObject::connect(...) et QObject::moveToThread(...).

  5. #5
    Membre averti
    Profil pro
    Étudiant
    Inscrit en
    Avril 2013
    Messages
    37
    Détails du profil
    Informations personnelles :
    Localisation : France

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

    Informations forums :
    Inscription : Avril 2013
    Messages : 37
    Par défaut
    Bien d'accord merci de tes éclaircissement je vais tout prendre en compte si une personne a néanmoins un avis quant a la performance entre crypto ou Qt Cryptograhpic je suis preneur car a la recherche de l'algortihme le plus rapide

  6. #6
    Membre éclairé
    Avatar de VivienD
    Homme Profil pro
    Développeur logiciel
    Inscrit en
    Octobre 2009
    Messages
    523
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : Allemagne

    Informations professionnelles :
    Activité : Développeur logiciel
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Octobre 2009
    Messages : 523
    Par défaut
    De rien.

    HS: Si tu as un tutoriel ou un how-to sur l'utilisation de la bibliothèque Cryto++ avec Qt, je suis preneur: s'amuser avec des fonctions de hachage c'est drôle juste un temps; on souhaite rapidement aller plus loin dans le monde de la cryptographie et aborder des thèmes tels que le chiffrement par bloc, le chiffrement asymétrique ou le chiffre de Vernam, thèmes que Qt ne gère malheureusement pas.

Discussions similaires

  1. aide pour un programme en cpp
    Par ml1985 dans le forum C++
    Réponses: 6
    Dernier message: 28/12/2006, 19h48
  2. [débutant] besoin d'aide pour un programme
    Par acdchornet dans le forum C++
    Réponses: 12
    Dernier message: 26/10/2006, 22h32
  3. Réponses: 13
    Dernier message: 26/10/2006, 21h02
  4. [Free Pascal] Besoin d'aide pour un programme
    Par ricomix dans le forum Free Pascal
    Réponses: 3
    Dernier message: 04/06/2006, 17h01
  5. aide pour un programme a compiler
    Par letombeur dans le forum C++
    Réponses: 8
    Dernier message: 11/01/2006, 21h53

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