IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C++Builder Discussion :

Conversion hexa vers fichier binaire [Langage/Algorithme]


Sujet :

C++Builder

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    229
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 229
    Points : 79
    Points
    79
    Par défaut Conversion hexa vers fichier binaire
    Bonjour,

    je cherche l'algo ou la fonction utilisé par exemple par ce site : http://bin-hex-converter.online-domain-tools.com/
    qui permet de convertir du texte en hexadécimal en un texte binaire
    Exemple : a040f919fd6704e3ae87f44186c98f4c591a817b
    devient @ ù . ý g . ã ® . ô A . É L
    Y . . {

    merci beaucoup pour votre aide !!
    Pascale38

  2. #2
    Membre habitué
    Homme Profil pro
    Chercheur génie électrique
    Inscrit en
    Mai 2002
    Messages
    263
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Chercheur génie électrique
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2002
    Messages : 263
    Points : 136
    Points
    136
    Par défaut
    Bonjour,
    pour convertir Hexa en ASCII, tu peux utiliser les codes suivants:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    	Word ibyte = StrToInt("0X" + LabeledEdit4->Text);
    	char ccc = char(ibyte);
    	LabeledEdit5->Text = ccc;
    Pour WideString, il faut chercher des codes similaires
    Bon courage
    Xavier

  3. #3
    Membre chevronné
    Avatar de DjmSoftware
    Homme Profil pro
    Responsable de compte
    Inscrit en
    Mars 2002
    Messages
    1 044
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Responsable de compte
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2002
    Messages : 1 044
    Points : 2 187
    Points
    2 187
    Billets dans le blog
    1
    Par défaut
    bonjour
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    Word ibyte = StrToInt("0X" + LabeledEdit4->Text);
    	char ccc = char(ibyte);
    	LabeledEdit5->Text = ccc;
    Attention aux nombres signés
    char ccc = char(ibyte); ne fonctionne qu’avec des entiers plus petit que 128 hors la valeur décimale du premier groupe de caractère 'A0" est égale à 160 équivalent ASCII á voir tableaux ci-dessous
    il convient donc d'utiliser des <unsigned char>

    http://www.asciitable.com/index/asciifull.gif
    http://www.asciitable.com/index/extend.gif

    pour l'ago je dirais
    (le texte d'entrée est de l'hexadécimal représenté en minuscule)
    1.Tester si la longueur du texte d'entrée est bien divisible par 2
    2. convertir le code en majuscule
    3. tant que le texte d'entrée n'est pas complétement parcouru
    4. décoder par groupe de 2 le texte d'entrée
    5 transformer le groupe de 2 en décimal
    6. remplacer les codes de contrôle et de fonction par des points (valeur inférieure à 32, + 127 et 255)
    7 Afficher le code ASCII correspondant

    cdlt
    vous trouverez mes tutoriels à l'adresse suivante: http://djmsoftware.developpez.com/
    je vous en souhaite une excellente lecture ...

    A lire : Les règles du forum

  4. #4
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    229
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 229
    Points : 79
    Points
    79
    Par défaut
    Bonjour,

    merci pour vos réponses , voilà le code que j'avais trouvé entre temps :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    AnsiString hexa = "a040f919fd6704e3ae87f44186c98f4c591a817b";
    int size = hexa.Length() / 2;	
    unsigned char* buffer = new unsigned char[size];	
    HexToBin(hexa.c_str(), buffer, size);
    Bonne journée !
    Pascale38

  5. #5
    Membre chevronné
    Avatar de DjmSoftware
    Homme Profil pro
    Responsable de compte
    Inscrit en
    Mars 2002
    Messages
    1 044
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Responsable de compte
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2002
    Messages : 1 044
    Points : 2 187
    Points
    2 187
    Billets dans le blog
    1
    Par défaut
    ton code est incorrect
    une solution ci-dessous

    Edit1 contient la valeur texte a transformer (en minuscule)
    le Memo est utilisé pour visualiser la sortie
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    Memo1->Clear();
    int longueur=Edit1->Text.Length();	   
    AnsiString Tmp(Edit1->Text);
    	   AnsiString Result;
    	   unsigned char* Buffer = new  unsigned char[longueur*2];
    	   HexToBin(Tmp.c_str(),Buffer,longueur*2);
    	   Result=(char*)Buffer; // on caste en type char
    	   for(int n=0;n<Result.Length();n++)
    		 if(Buffer[n]<' ') Result[n+1]='.';     // transformation de tous les caractères non imprimables en '.'
    	   Memo1->Lines->Add(Result);
    	   delete []Buffer;
    cdlt
    vous trouverez mes tutoriels à l'adresse suivante: http://djmsoftware.developpez.com/
    je vous en souhaite une excellente lecture ...

    A lire : Les règles du forum

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. script conversion Excel vers fichier KML ou KMZ
    Par aminepop dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 2
    Dernier message: 26/07/2010, 12h19
  2. [AC-2003] conversion table vers fichier txt
    Par novice06 dans le forum VBA Access
    Réponses: 6
    Dernier message: 02/05/2010, 09h16
  3. Conversion hexa vers float (selon norme IEEE754)
    Par vinssieux dans le forum Macros et VBA Excel
    Réponses: 0
    Dernier message: 29/05/2008, 11h58
  4. Problème d'écriture vers fichier binaire
    Par Mr Light dans le forum C++
    Réponses: 6
    Dernier message: 27/02/2008, 21h25
  5. Conversion hexa vers double
    Par EnigmuS dans le forum C
    Réponses: 13
    Dernier message: 16/05/2007, 14h06

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo