rss
Rechercher : dans
Par : Pertinence Date Nom d'utilisateur
Statut : Résolu

Convertir hexa ascii

Posté par ludoo78, le vendredi 18 janvier 2008 à 11:15:12
Bonjour,

Je suis à la recherche d'un petit executable qui converti de l'hexadecimal vers l'ASCII, c'est à dire retrouvé un texte à partir d'une sequence de nombres hexadécimaux.

Merci beaucoup,

Ludo
Répondre à ludoo78  Signaler ce message aux modérateurs Aller au dernier message

1


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
SebManfred, le vendredi 18 janvier 2008 à 11:21:56
à mon avis, ça ira beaucoup plus vite de te faire ton petit exe en C++ que de le chercher sur le net... il suffit de convertir les nombres hexadécimaux 2 à 2 pour reconstituer les octets de ta chaine de caractères ACSII et d'enregistrer le tout dans un fichier .txt
Répondre à SebManfred

2


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
ludoo78, le vendredi 18 janvier 2008 à 11:23:26
le truc c'est que la programmation, c'est pas trop mon truc. Pourriez vous m'aider la deçu.

Merci
Répondre à ludoo78

3


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
ludoo78, le vendredi 18 janvier 2008 à 12:37:16
il y a plus personne?
Quelqu'un pourrait-il me conseiller pour faire un petit programme qui me convertirait des données hexa en texte.
Please.
Répondre à ludoo78

4


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
SebManfred, le vendredi 18 janvier 2008 à 12:49:53
tu as une plateforme de développement? (genre Visual Studio)
Répondre à SebManfred

5


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
ludoo78, le vendredi 18 janvier 2008 à 14:33:46
oui, j'ai dev C++
Répondre à ludoo78

6


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
SebManfred, le vendredi 18 janvier 2008 à 14:47:39
bon, ton programme, tu veux qu'il fasse quoi? (arguments, retour, comportement (options), etc...)
Répondre à SebManfred

7


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
Char Snipeur, le vendredi 18 janvier 2008 à 16:01:27
un truc du genre :
#include <stdio.h>
int main(int argc, char** argv)
{
      unsigned int a,compt=0;
      char c,s[1024];
      while(1)
          {
           scanf("%x",&a);
           c=char(a);
           s[compt++]=c;
           }
      s[compt]='\0';
      printf("%s",s);
return 0;
}

?
J'ai pas testé, en particulier, le %x qui attend un entier hexadecimal non signé (ce que tu cherche).
J'utlise d'ailleur scanf plutôt que cin, à cause justement du %x précisant l'hexadecimal. Je ne sais pas si il y a l'équivalent dans iostream.
Salutation ! Quand on sait pas, on touche pas !JBT
Char Snipeur
Répondre à Char Snipeur

8


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
jee pee, le vendredi 18 janvier 2008 à 17:17:40
salut,

en allant sur http://le.wiki.free.fr/ tu récupères le fichier convertisseur.html et tu le copies sur ta machine, cela permet de faire toutes les conversions

cordialement
Répondre à jee pee

9


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
ludoo78, le vendredi 18 janvier 2008 à 17:42:36
Merci pour tous.

CharSniper
Ton programme ne fonctionne pas je crois. Je vais essayer de le comprendre pour voir ce qui va pas (c'est pas une mince affaire lol)

SebManfred
Mon programme je veux qu'en entrée je lui donne une sequence (plus ou moins longue) en hexadecimal et qu'il me donne la convertion en chaine de caractere ASCII.

jee pee,
Ton convertisseur n'est pas très efficace, qu'en la séquence est trop longue, il renvoi n'importe quoi.
Répondre à ludoo78

10


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
jee pee, le vendredi 18 janvier 2008 à 17:51:29
c'est combien trop long ?

chaque caractère hexa doit être séparé par un blanc, une virgule :

Tiens un poeme que j'aime :

42, 61, 75, 64, 65, 6c, 61, 69, 72, 65, 20, 3a, 20, c0, 20, 75, 6e, 65, 20, 50, 61, 73, 73, 61, 6e, 74, 65, 0a, 0a, 0a, 20, 20, 09, 4c, 61, 20, 72, 75, 65, 20, 61, 73, 73, 6f, 75, 72, 64, 69, 73, 73, 61, 6e, 74, 65, 20, 61, 75, 74, 6f, 75, 72, 20, 64, 65, 20, 6d, 6f, 69, 20, 68, 75, 72, 6c, 61, 69, 74, 2e, 0a, 4c, 6f, 6e, 67, 75, 65, 2c, 20, 6d, 69, 6e, 63, 65, 2c, 20, 65, 6e, 20, 67, 72, 61, 6e, 64, 20, 64, 65, 75, 69, 6c, 2c, 20, 64, 6f, 75, 6c, 65, 75, 72, 20, 6d, 61, 6a, 65, 73, 74, 75, 65, 75, 73, 65, 2c, 0a, 55, 6e, 65, 20, 66, 65, 6d, 6d, 65, 20, 70, 61, 73, 73, 61, 2c, 20, 64, 27, 75, 6e, 65, 20, 6d, 61, 69, 6e, 20, 66, 61, 73, 74, 75, 65, 75, 73, 65, 0a, 53, 6f, 75, 6c, 65, 76, 61, 6e, 74, 2c, 20, 62, 61, 6c, 61, 6e, e7, 61, 6e, 74, 20, 6c, 65, 20, 66, 65, 73, 74, 6f, 6e, 20, 65, 74, 20, 6c, 27, 6f, 75, 72, 6c, 65, 74, 20, 3b, 0a, 0a, 41, 67, 69, 6c, 65, 20, 65, 74, 20, 6e, 6f, 62, 6c, 65, 2c, 20, 61, 76, 65, 63, 20, 73, 61, 20, 6a, 61, 6d, 62, 65, 20, 64, 65, 20, 73, 74, 61, 74, 75, 65, 2e, 0a, 4d, 6f, 69, 2c, 20, 6a, 65, 20, 62, 75, 76, 61, 69, 73, 2c, 20, 63, 72, 69, 73, 70, e9, 20, 63, 6f, 6d, 6d, 65, 20, 75, 6e, 20, 65, 78, 74, 72, 61, 76, 61, 67, 61, 6e, 74, 2c, 0a, 44, 61, 6e, 73, 20, 73, 6f, 6e, 20, 6f, 65, 69, 6c, 2c, 20, 63, 69, 65, 6c, 20, 6c, 69, 76, 69, 64, 65, 20, 6f, f9, 20, 67, 65, 72, 6d, 65, 20, 6c, 27, 6f, 75, 72, 61, 67, 61, 6e, 2c, 0a, 4c, 61, 20, 64, 6f, 75, 63, 65, 75, 72, 20, 71, 75, 69, 20, 66, 61, 73, 63, 69, 6e, 65, 20, 65, 74, 20, 6c, 65, 20, 70, 6c, 61, 69, 73, 69, 72, 20, 71, 75, 69, 20, 74, 75, 65, 2e, 0a, 0a, 55, 6e, 20, e9, 63, 6c, 61, 69, 72, 2e, 2e, 2e, 20, 70, 75, 69, 73, 20, 6c, 61, 20, 6e, 75, 69, 74, 20, 21, 20, 2d, 20, 46, 75, 67, 69, 74, 69, 76, 65, 20, 62, 65, 61, 75, 74, e9, 0a, 44, 6f, 6e, 74, 20, 6c, 65, 20, 72, 65, 67, 61, 72, 64, 20, 6d, 27, 61, 20, 66, 61, 69, 74, 20, 73, 6f, 75, 64, 61, 69, 6e, 65, 6d, 65, 6e, 74, 20, 72, 65, 6e, 61, ee, 74, 72, 65, 2c, 0a, 4e, 65, 20, 74, 65, 20, 76, 65, 72, 72, 61, 69, 2d, 6a, 65, 20, 70, 6c, 75, 73, 20, 71, 75, 65, 20, 64, 61, 6e, 73, 20, 6c, 27, e9, 74, 65, 72, 6e, 69, 74, e9, 20, 3f, 0a, 0a, 41, 69, 6c, 6c, 65, 75, 72, 73, 2c, 20, 62, 69, 65, 6e, 20, 6c, 6f, 69, 6e, 20, 64, 27, 69, 63, 69, 20, 21, 20, 74, 72, 6f, 70, 20, 74, 61, 72, 64, 20, 21, 20, 6a, 61, 6d, 61, 69, 73, 20, 70, 65, 75, 74, 2d, ea, 74, 72, 65, 20, 21, 0a, 43, 61, 72, 20, 6a, 27, 69, 67, 6e, 6f, 72, 65, 20, 6f, f9, 20, 74, 75, 20, 66, 75, 69, 73, 2c, 20, 74, 75, 20, 6e, 65, 20, 73, 61, 69, 73, 20, 6f, f9, 20, 6a, 65, 20, 76, 61, 69, 73, 2c, 0a, d4, 20, 74, 6f, 69, 20, 71, 75, 65, 20, 6a, 27, 65, 75, 73, 73, 65, 20, 61, 69, 6d, e9, 65, 2c, 20, f4, 20, 74, 6f, 69, 20, 71, 75, 69, 20, 6c, 65, 20, 73, 61, 76, 61, 69, 73, 20, 21, 0a, 0a, 0a, 43, 68, 61, 72, 6c, 65, 73, 20, 42, 41, 55, 44, 45, 4c, 41, 49, 52, 45, 20, 28, 31, 38, 32, 31, 2d, 31, 38, 36, 37, 29, 0a, 28, 4c, 65, 73, 20, 66, 6c, 65, 75, 72, 73, 20, 64, 75, 20, 6d, 61, 6c, 29, 0a, 20,

et qui marche en conversion, dans les 2 sens, ascii -> hexa et hexa->ascii :-)

Répondre à jee pee

11


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
Char Snipeur, le lundi 21 janvier 2008 à 08:31:53
Non, bien sur il ne fonctionne pas, c'était une ébauche dont tu pouvais t'inspirer. En particulier, je sais pas si tu veux utiliser les entree sorties standard ou des fichiers. En tout cas, une fois fini il fonctionne :
#include <stdio.h>
int main(int argc, char** argv)
{
      unsigned int a,compt=0,n;
      char c,s[1024];
      scanf("%d",&n);
      for(n;n>0;n--)
          {
           scanf("%x",&a);
           c=char(a);
           s[compt++]=c;
           }
      s[compt]='\0';
      printf("%s",s);
      scanf("%d",&n);
      return 0;
}
Mais c'est pareil, il faut séparer chaque caractère hexadecimal soit par une espace, soit par un retour à la ligne.
Salutation ! Quand on sait pas, on touche pas !JBT
Char Snipeur
Répondre à Char Snipeur

12


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
ludoo78, le lundi 21 janvier 2008 à 11:46:55
Merci bien pour tous ça

C'est vrai que ça aurait été interessant de pouvoir convertir directement depuis un fichier hexadecimal.
Que faut-il remplacer pour cela?

Merci
Répondre à ludoo78

13


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
Char Snipeur, le lundi 21 janvier 2008 à 13:03:42
pour lire à partir d'un fichier hexadecimal en ASCII (c'est à dire lisible "1A F3 ..." par un humain) il suffit soit de faire une indirection lors de l'appel au programme, soit utiliser fscanf() à la place de scanf().
Salutation ! Quand on sait pas, on touche pas !JBT
Char Snipeur
Répondre à Char Snipeur

14


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
 ludoo78, le lundi 21 janvier 2008 à 14:12:02
ok ok merci pour tous les mecs
j'ai réussi à avoirce que je veux grace à vous
++
Répondre à ludoo78
Logiciels pertinents trouvés dans les téléchargements
Télécharger Free Mp3 Wma Converter 2.0Free Mp3 Wma Converter - Free Mp3 Wma Converter permet de convertir tout vos fichiers Mp3 , Wma , Ogg , AAC , m4a , mp4 , Ape , flac, Wav : ...Catégorie: Conversion
Licence: Freeware/gratuit
Télécharger AMV Convert Tool 3.68AMV Convert Tool - Le package MP3 Player Utilities contient notamment un lecteur permettant de lire les fichiers au format AMV ainsi qu'un...Catégorie: Edition vidéo
Licence: Freeware/gratuit
Télécharger Mobile 3GP Converter 1.0Mobile 3GP Converter - Le programme "Mobile 3GP Converter" permet de convertir des fichiers au format 3GP (extension *.3gp ou *.3g2) vers un...Catégorie: Edition vidéo
Licence: Freeware/gratuit
Télécharger Ipod converter 3.07Ipod converter - Destiné aux heureux possesseurs d'Ipod vidéo, le logiciel Ipod Converter permet de convertir des fichiers au format Mpeg,...Catégorie: Edition vidéo
Licence: Freeware/gratuit
Plus de logiciels gratuits sur « Convertir hexa ascii »