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
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.
11/03/2007 - 19h35
Gre
Date d'inscription
juin 2005
Localisation
Sherbrooke (Canada)
Âge
38
Messages
487
Re : Récupérer les données héxadécimales d'un fichier
Envoyé par Alcyd
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)
11/03/2007 - 20h45
Alcyd
Date d'inscription
mars 2007
Âge
24
Messages
8
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 ?
11/03/2007 - 21h10
fderwelt
Date d'inscription
février 2006
Âge
53
Messages
2 041
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.
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 !
13/03/2007 - 21h45
fderwelt
Date d'inscription
février 2006
Âge
53
Messages
2 041
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.
13/03/2007 - 23h36
Gre
Date d'inscription
juin 2005
Localisation
Sherbrooke (Canada)
Âge
38
Messages
487
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 -_-
War does not decide who's right, but who's left. (Bertrand Russell)
14/03/2007 - 18h43
Alcyd
Date d'inscription
mars 2007
Âge
24
Messages
8
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 !
16/03/2007 - 22h47
Gre
Date d'inscription
juin 2005
Localisation
Sherbrooke (Canada)
Âge
38
Messages
487
Re : Récupérer les données héxadécimales d'un fichier
Envoyé par Alcyd
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)