Partage
  • Partager sur Facebook
  • Partager sur Twitter

[C] Lire de l'hexa [Linux]

Sujet résolu
    14 juillet 2006 à 14:48:36

    Salut a tous.

    Voila, j'ai par exemple cet extrait de code hexa :
    Image utilisateur

    Dans mon code, je cherche a lire le 4.

    J'ai donc pris les cours de mateo, pour lire un fichier.
    J'ai fais ca :

                    for( i=0 ; i < 150 ; i++ )
                    {
                            // Lis le caractère
                            caractereActuel = fgetc(fichier);
                           
                            // L'enregistre dans varTMp1
                            sprintf(varTMp1, "%c", caractereActuel);
                           
                            printf("%c", caractereActuel);
                           
                            if ( strlen( varTMp2 ) == 0 )
                            {
                                   
                                    strcpy(varTMp2, varTMp1);
                                   
                            } else {
                                   
                                    // Concatène les caractères ensemble
                                    strcat(varTMp2, varTMp1);
                            }
                           
            }


    Avec ce code j'ai des infos qui m'interesse, mais le 4 n'apparait pas.
    Comment puis-je lire ce 4 ?
    • Partager sur Facebook
    • Partager sur Twitter
      15 juillet 2006 à 21:38:18

      Citation : zedtux

      Voila, j'ai par exemple cet extrait de code hexa :
      Image utilisateur


      C'est pas clair. Est-ce que c'est la représentation en hexa séparé par des espaces (format dit HexaSpaces) d'un fichier binaire, ou est-ce un fichier texte contenant exactement ce que tu montres ?

      Citation : Pas de titre



      Dans mon code, je cherche a lire le 4.


      Ca n'a aucun sens. Il faut dire "je cherche à lire le Nième octet" et préciser la valeur de N.

      Après, si c'est du binaire il suffit de d'ouvrir de fichier en mode binaire ("rb") de se positionner avec fseek() et d'appeler fgetc(). Si la valeur retournée n'est pas EOF, la lecture est valide.

      Si c'est du texte, il faut lire les blocs de caractres 2 à deux en s'appuyant sur les séparateurs (espaces, '\n'), le convertir en chaine, puis en valeur numérique, et compter de 0 jusqu'à N-1. Le N-1ème est le bon.

      Fait de ton mieux et poste ton code si tu es planté.
      • Partager sur Facebook
      • Partager sur Twitter
      Music only !
        15 juillet 2006 à 21:41:55

        Pour lire le 4, pense à mettre les guillemets ça donne :
        if ( tavariable == '4' )
        // du code

        En effet, tu a lu le quatre en tant que caractère et non en tant qu'entier, donc tu dois comparer à un caractère.

        Si par la suite tu veux faire des opérations sur cette variable, mieux vaut utiliser fscanf à la palce de fgetc, et des entiers à la place des caractères ( ce qui est quand même moins simple ).
        • Partager sur Facebook
        • Partager sur Twitter
          16 juillet 2006 à 2:17:15

          L'image est un screen d'un éditeur hexa. Donc comme dis ed HexaSpaces.

          Alors, oui ed, je veux lire le n octet.

          Je vais essayer ce que tu m'as dis, en tenant compte de ce que tu as ajouté Feadow ^^

          Merci a vous deux ! :)

          -----------------EDIT--------------------

          Ok c'est bon, ca marche impec !

          Merci bcp !!! ^^
          • Partager sur Facebook
          • Partager sur Twitter

          [C] Lire de l'hexa [Linux]

          × 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