Répondre à la discussion
Affichage des résultats 1 à 10 sur 10

Récupérer les données héxadécimales d'un fichier




  1. #1
    Alcyd

    Récupérer les données héxadécimales d'un fichier

    Bonsoir,

    Voilà, j'aurais besoin de récupérer les données hexadécimales contenues dans un fichier (wav, notamment) et de les inclure dans un fichier .txt

    J'ai bien entendu la solution d'ouvrir le fichier avec un éditeur hexadécimal, de faire un copier-coller, mais comme je risque d'avoir à reproduire l'opération sur pas mal de fichiers, j'aurais bien voulu automatiser un peu...

    Pour info, j'ai fait deux trois tentatives avec le logiciel Maple, mais apparemment, il me sort la "traduction" des données en ASCII : du genre

    RIFFŠÖÆ

    en lieu et place de

    5249 4646 088A 1000 5741 5645 666D 7420 1000 0000 0100 0100 44AC 0000 8858 0100 0200 1000 6461 7461 3E7F 1000 5314 DB14 9E15 8816 AE17 6918 3518 2A17 CA15 etc...

    Est-ce que quelqu'un aurait une idée ?

    -----


  2. Publicité
  3. #2
    fderwelt

    Re : Récupérer les données héxadécimales d'un fichier

    Bonsoir,

    Il suffit d'ouvrir le fichier en mode binaire, de lire les caractères avec un fgetc(), et de les ressortir dans un fichier de sortie avec un fprintf() et un format %x.
    J'ai déjà fait ça mais je ne me souviens plus si j'ai gardé le source.

    -- françois
    Les optimistes croient que ce monde est le meilleur possible. Les pessimistes savent que c'est vrai.

  4. #3
    Gre

    Re : Récupérer les données héxadécimales d'un fichier

    Citation Envoyé par Alcyd Voir le message
    Bonsoir,

    Voilà, j'aurais besoin de récupérer les données hexadécimales contenues dans un fichier (wav, notamment) et de les inclure dans un fichier .txt[...]
    De nombreux logiciels permettent de le faire facilement (Ultra-edit, TextWrangler, Vi etc.).
    Il y a aussi des outils classiques en ligne comme xxd, sous Unix, qui font un hex dump d'un fichier. C'est-à-dire qu'il fait exactement ce que tu veux. Enfin je pense si j'ai bien compris ce que tu disais. Il fait même l'inverse avec l'option -r, c'est-à-dire transformer un fichier texte donnant des valeurs héxadécimales, en fichier binaire.
    War does not decide who's right, but who's left. (Bertrand Russell)


  5. #4
    Alcyd

    Re : Récupérer les données héxadécimales d'un fichier

    Merci beaucoup pour vos réponses rapides !

    > fderwelt : Je viens d'essayer les commandes que tu me conseilles, mais je ne trouve pas le fgetc()... A priori je devrais m'en sortir avec le reste, mais pour celle là, je suis un peu embêté.

    Je travaille avec Maple 10, et j'ai déjà eu quelques surprises en essayant d'ouvrir des worksheets créées au lycée avec la version 5, donc est-ce que ça ne pourrait pas être une commande issue d'une version un peu ancienne ?

  6. #5
    fderwelt

    Re : Récupérer les données héxadécimales d'un fichier

    Vonsoir,

    La fonction fgetc est pourtant du C tout ce qu'il y a de plus standard, son prototype est:
    Code:
    #include <stdio.h>
    int fgetc (FILE *stream) ;
    et son utilisation:
    Code:
    FILE *stream ;
    int c ; // attention, int, pas char!
    stream = fopen ("name", "rb") ;
    c = fgetc (stream) ;
    if (c != EOF) ...
    Maintenant c'est vrai que ce n'est pas ce qu'il y a de plus moderne, c'est du pur K&R... Regarde si tu n'as pas un fgetch() ou un fgetchar().

    -- françois
    Les optimistes croient que ce monde est le meilleur possible. Les pessimistes savent que c'est vrai.

  7. A voir en vidéo sur Futura
  8. #6
    Alcyd

    Re : Récupérer les données héxadécimales d'un fichier

    Ok ! Si c'est du C, ça explique pourquoi je l'ai pas trouvée, la commande en question !

    A ma connaissance, le langage utilisé par Maple, c'est quand même pas tout à fait la même chose, et comme je n'ai que ça sous la main (j'y connais strictement rien en C)...

    Ceci dit, j'ai appelé un pote à l'aide, il s'est mis dans l'idée de me pondre un petit truc en Visual Basic...

    Merci quand même pour vos réponses !

  9. #7
    fderwelt

    Re : Récupérer les données héxadécimales d'un fichier

    Aargh! J'ai tellement pris le pli de programmer en C/C++ que je n'ai même pas pensé un instant que tu pouvais utiliser autre chose... et je ne connais pas Maple, alors vraiment désolé pour t'avoir enduit d'erreur et/ou de confusion.

    -- françois
    Les optimistes croient que ce monde est le meilleur possible. Les pessimistes savent que c'est vrai.

  10. Publicité
  11. #8
    Gre

    Re : Récupérer les données héxadécimales d'un fichier

    Je n'utilise pas Maple moi même, mais je sais que tu peux intégrer des fonctions C à l'interieur.

    Cependant pour ce que tu as demandé tu ferais mieux de passer par un outil externe -_-

    Je réitère avec mon xxd.
    (cf par exemple http://aplawrence.com/Unixart/xxd.html)

    Si tu es sur windows et que tu n'as pas d'émulateur unix, il va falloir que tu trouves un éditeur qui fait la lecture en hexadécimale.

    Par exemple http://www.physics.ohio-state.edu/~prewett/hexedit/
    de l'université d'Ohio State
    War does not decide who's right, but who's left. (Bertrand Russell)

  12. #9
    Alcyd

    Re : Récupérer les données héxadécimales d'un fichier

    Jusqu'à présent, je faisais ça à la main avec Hex Workshop, et ça marche plutôt bien !

    Au pire, j'ai un pote qui m'a écrit un chtit programme en VB, au pire je me servirai de celui-là si j'en ai vraiment besoin... Pour l'instant c'est encore faisable à la main.

    Merci beaucoup pour toutes vos réponses !

  13. #10
    Gre

    Re : Récupérer les données héxadécimales d'un fichier

    Citation Envoyé par Alcyd Voir le message
    Jusqu'à présent, je faisais ça à la main avec Hex Workshop, et ça marche plutôt bien !

    Au pire, j'ai un pote qui m'a écrit un chtit programme en VB, au pire je me servirai de celui-là si j'en ai vraiment besoin... Pour l'instant c'est encore faisable à la main.

    Merci beaucoup pour toutes vos réponses !
    Si tu comptes le faire avec un autre programme on pourrait te faire une solution en C ou en C++.

    Maintenant je suis convaincu que tu peux intégrer des fonctions C/C++ en Maple.
    War does not decide who's right, but who's left. (Bertrand Russell)

Sur le même thème :

Discussions similaires

  1. Réponses: 5
    Dernier message: 16/10/2011, 14h59
  2. Impossible de réparer Windows. Comment récupérer les données du DD ?
    Par Alfred23 dans le forum Matériel - Hardware
    Réponses: 22
    Dernier message: 23/10/2006, 20h10
  3. recupérer des données formatées
    Par tariq_qui dans le forum Matériel - Hardware
    Réponses: 10
    Dernier message: 30/09/2005, 22h24
  4. DD formaté: comment récupérer les données?
    Par minky_128 dans le forum Logiciel - Software - Open Source
    Réponses: 5
    Dernier message: 09/03/2005, 20h27