Partage
  • Partager sur Facebook
  • Partager sur Twitter

Créer un éditeur héxadécimal

    28 mars 2019 à 20:35:04

    Bonjour à toutes et à tous,

    Alors voilà, je souhaiterais comme il est inscrit dans le titre tout simplement créer moi-même mon propre éditeur héxadécimal. Alors j'imagine déjà les réponses du genre : mais il existe déjà des éditeurs héxa, pourquoi tu perds ton temps à en créer un nouveau.

    Pour infos j'en ai déjà un (Hexedit).

    Je viens tout juste de me mettre d'apprendre la programmation et je commence à apprendre le c++ car je me suis renseigner et c'est le langage qu'il faut utilisé pour concevoir le programme, du moins c'est le langage le plus utilisé pour cela, avec le C.

    Pour infos aussi, je n'ai jamais fait aucunes études dans l'informatique, j'ai fait des études en biologie et en géologie pour ceux que ca intéresse. En revanche j'ai toujours été passionné par les ordis. Je suis un auto-didacte en gros.

    Donc j'ai un projet en tête pour me concevoir un petit programme et je dois donc pour concevoir ce programme (un logiciel de compression de données en fait) d'abord me faire une sorte d'éditeur héxa pour travailler les données avant de chercher à les compresser. Je voudrais donc que mon programme puisse dans un premier temps me permettre d'afficher mes données en héxa par exemple avant de travailler dessus.

    Et malgré toutes mes recherches sur google et sur ce site, je ne trouve pas de réponses convenables.Ou alors comme je suis vraiment un débutant en programmation, j'ai du loupé des infos pourtant intéressantes.

    Je souhaiterais donc que certains d'entre-vous puissiez me guider ou me données des pistes de travail car là je patauge dans la semoule complet entre les ifstream, les buffers, les read, les printf , etc...

    Je vous en remercie d'avance.

    • Partager sur Facebook
    • Partager sur Twitter
      29 mars 2019 à 3:28:58

      Déjà deux étapes qui peuvent t'être utile dans ta quête.

      1. Convertir un stream en hexa. Tu as `std::hex`!

      2. Convertir de l'hexa en stream. Tu as `std::hex`!

      Oublie les read et printf en cpp.  Regarde en effet les stringstream/fstream

      Tu bloques où exactement ?

      • Partager sur Facebook
      • Partager sur Twitter
        29 mars 2019 à 5:40:00

        Ce qui est faisable, dépend beaucoup de ton niveau. Faire un simple dump est assez simple, tu lis le fichier à dumper en mode binaire tu stockes ça dans un buffer(un simple std::vector<char> fera l'affaire), et tu réécris dans le fichier de dump (en mode texte, cette fois) en utilisant le manipulateur de flux std::hex, c'es tout à fait faisable par un débutant. En revanche, faire un véritable éditeur héxadécimal comme HexEdit , EdHex ou autre est nettement moins accessible pour un débutant, parce qu'il devra être en GUI, donc implique forcément de se baser sur une architecture MVC (Model/View/Controler), et là c'est plus du tout du même niveau.
        • Partager sur Facebook
        • Partager sur Twitter
        Mettre à jour le MinGW Gcc sur Code::Blocks. Du code qui n'existe pas ne contient pas de bug
          29 mars 2019 à 15:23:41

          Je vous remercie déjà beaucoup pour vos réponses rapides, sa va déjà m'aider pour avancer.

          AmarOK1412: ok d'accord je vais me pencher sur les std::hex et les stringstream/fstream, même si pour le moment je ne les maitrises pas vraiment. Je bloque un peu partout en fait car je suis vraiment un débutant, jamais fait aucune étude d'informatique, tout ce que je sais je l'ai appris en faisant mes propres recherches ou en discutant avec des amis et de la famille qui travaillent dans l'informatique.

          int21h: ouvrir en mode binaire je commence à le faire en faisant des essayes sur mes propres fichiers et les buffer je commence à les voir dans le cours sur sur ce site et les cours sur wikibooks notamment, enfin partout là où je peux trouver des infos quoi.

          Refaire un vrai éditeur héxadécimal comme Hexedit je ne pense pas en être capable en effet et surtout ce n'est pas mon but. J'aimerais juste pouvoir afficher les données sous formes héxadécimal et pouvoir faire comme dans Hexedit c'est-à-dire réécrire dans un fichier directement sous forme héxadécimal également, ce qui sera déjà pas facile à faire pour un débutant comme moi. L'interface graphique j'ai pas encore commencer à la bosser sur  le cours mais je vais y venir par la suite, avec Qt.

          • Partager sur Facebook
          • Partager sur Twitter
            29 mars 2019 à 15:55:23

            Regarde cppreference ou autre sites du genre. Il y a énorméments d'exemples.

            N'hésite pas non plus à suivre un Cours/tutoriel (Par exemple, celui-ci https://zestedesavoir.com/tutoriels/822/la-programmation-en-c-moderne/). Internet est plein de ressources.

            Aussi, n'hésite pas à poster ton code ici ou autre part pour obtenir des retours quand tu es à peu prêt content de ce que tu as fait. C'est un peu le mieux pour apprendre.

            • Partager sur Facebook
            • Partager sur Twitter
              30 mars 2019 à 12:24:01

              Si tu en est aux bases de la manipulation des flux, met ton projet de côté, et concentre toi sur un cours pour progresser (celui que te propose AmarOk1412, bien qu'incomplet est de très bonne facture et constitue une bonne entrée en matière). Ton niveau actuel est beaucoup trop faible pour envisager de pouvoir arriver à faire le programme que tu souhaites faire, il te faut plus de connaissances.

              -
              Edité par int21h 30 mars 2019 à 12:25:42

              • Partager sur Facebook
              • Partager sur Twitter
              Mettre à jour le MinGW Gcc sur Code::Blocks. Du code qui n'existe pas ne contient pas de bug
                30 mars 2019 à 18:25:53

                Je suis bien d'accord avec cela int21h, mais je sais que je finirai par y arriver à force de recherche et de patience surtout. Mais pour l'instant je patauge un peu c'est clair.

                Je posterais un code une fois que j'aurais réussit à faire quelque chose de convenable et qui fonctionne à peu près.

                • Partager sur Facebook
                • Partager sur Twitter
                  30 mars 2019 à 19:26:55

                  C'est tout le mal que je te souhaite ;) On a tous été débutants, on  tous dû revoir nos ambitions à la baisse pour un temps. Il y a une certaine jouissance à pouvoir se dire Aujourd'hui je suis capable d'écrire n'importe quel programme, j'espère que tu connaîtras ça un jour :) Il ne s'agit que de de patience et d'efforts, c'est à la portée du premier crétin venu, la preuve, j'y suis arrivé :p

                  -
                  Edité par int21h 30 mars 2019 à 19:29:20

                  • Partager sur Facebook
                  • Partager sur Twitter
                  Mettre à jour le MinGW Gcc sur Code::Blocks. Du code qui n'existe pas ne contient pas de bug

                  Créer un éditeur héxadécimal

                  × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                  × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                  • Editeur
                  • Markdown