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++ Discussion :

probleme de conversion ascii->text


Sujet :

C++

Vue hybride

kyo78 probleme de conversion... 14/09/2007, 15h14
Laurent Gomila A la base ton fichier ne... 14/09/2007, 15h18
kyo78 en fait apres m'etre mieu... 16/09/2007, 17h58
Médinoc Les fichiers binaires se... 16/09/2007, 18h35
kyo78 voila j'ai i ce code là à la... 16/09/2007, 20h14
Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    30
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 30
    Par défaut probleme de conversion ascii->text
    bonjour! bon voila je vous solicite pour un petit problem ... probleme de comprehension surtout! en fait je dois afficher le contenu d'un fichier binaire sous forme lisible dans un editbox mais voila, quand je l'ouvre, son contenu est en caractere ascii par exemple :   € r o d'apres ce que j'ai compris tous ces caracteres sont codés sur 8 bits et sont dans la table ascii étendue (de 128 à 255) or moi je voudrais traduire le contenu en texte de façon à ce qu'il soit humainement lisible ce qui correspond plus aux caracteres ascii entre 0 et 127 enfin il me semble vu que la premiere moitié des caractere ascii contient l'alphabet, les majuscules ainsi que certains symboles tels que >, <,... mais j'avoue que je suis un peu perdu
    en gros est ce que quelqu'un sait comment passer d'un code en caractere ascii en texte? ou bien de l'hexa au texte car j'arrive a convertir la chaine de caractere ascii en hexa?
    merci

  2. #2
    Rédacteur
    Avatar de Laurent Gomila
    Profil pro
    Développeur informatique
    Inscrit en
    Avril 2003
    Messages
    10 651
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2003
    Messages : 10 651
    Par défaut
    je dois afficher le contenu d'un fichier binaire sous forme lisible dans un editbox
    A la base ton fichier ne contient pas du texte compréhensible, mais des octets quelconques, c'est ça ? Donc il faudrait commencer par savoir comment tu veux transformer ça en quelque chose de lisible, non ?

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    30
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 30
    Par défaut
    en fait apres m'etre mieu renseigner je ne dois pas le traduire mais simplement l'afficher dans une editbox ce qui m'amene a un autre probleme. ma fonction qui me permet de lire et d'afficher est la suivante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    void lecture(HWND Dlg, char filetxt[501])
    {
    	char buf[2001];
    	char buf_temp[2001];
    	GetDlgItemText(Dlg,IDC_TEXT,buf_temp,1001);
    	strcpy(buf, buf_temp);
    	strcat(buf, filetxt);
    	strcat(buf, "\r\n\r\n");
    	std::ifstream fichier(filetxt);
    	if (fichier)
    	{
    		 std::string ligne;
    		 while(std::getline(fichier,ligne))
    		 {
    			 strcat(buf, ligne.c_str());
    		 }
            }
    	strcat(buf, "\r\n\r\n");
    	SetDlgItemText(Dlg,IDC_TEXT,buf);
    }
    filetxt est le nom de mon fichier et tous les strcat sont la parce que je boucle sur plusieurs fichiers pour afficher leur contenu a la suite dans l'editbox. j'ai utilisé getline justement pour ne pas avoir de probleme avec les caractere NUL mais malgré ça il ne lit pas la totalité du contenu de mon fichier (binaire je rappelle) soit il s'arrette avant la fin soit il saute des passage et reprend plus loin.
    est ce que quelqu'un voit ou est le probleme??
    merci

  4. #4
    Expert éminent
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 395
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 395
    Par défaut
    Les fichiers binaires se lisent avec les fonctions comme read() et s'ouvrent avec le flag binary.
    PS: Tu devrais utiliser une std::string juste après le GetDlgItemText(). Cela faciliterait les choses...
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    30
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 30
    Par défaut
    voila j'ai i ce code là à la place :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    void convert(HWND Dlg, char filetxt[501])
    {
      int length;
      char * buffer;
     
      ifstream is;
      is.open (filetxt, ios::binary );
     
      is.seekg (0, ios::end);
      length = is.tellg();
      is.seekg (0, ios::beg);
     
      buffer = new char [length];
     
      is.read (buffer,length);
      is.close();
     
      cout.write (buffer,length);
      SetDlgItemText(Dlg,IDC_TEXT,buffer);
      delete[] buffer;
    }
    j'ai enlevé les strcat pr le moment mais c'est encore pire qu'avant vu que la il s'arrette au premier NUL qu'il trouve

  6. #6
    Expert éminent
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 395
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 395
    Par défaut
    Commence par réfléchir à ce que tu cherches à faire.
    Veux-tu vraiment afficher le contenu brut d'un fichier binaire dans une TextBox ?
    Ou plus tôt afficher son contenu brut en hexa ?
    Ou afficher son contenu traité ?
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

Discussions similaires

  1. Conversion d'un texte en ASCII
    Par cleserv dans le forum VB 6 et antérieur
    Réponses: 7
    Dernier message: 25/05/2012, 11h33
  2. Probleme de Conversion de texte
    Par Seb33300 dans le forum C++/CLI
    Réponses: 6
    Dernier message: 13/04/2007, 18h15
  3. [debutant] Conversion ASCII
    Par septox dans le forum Débuter
    Réponses: 1
    Dernier message: 28/02/2005, 09h45
  4. [Math][Integer] Problème de conversion
    Par deathwing dans le forum API standards et tierces
    Réponses: 8
    Dernier message: 11/05/2004, 17h01
  5. conversion : (Ascii en hexa) => nombre
    Par tut dans le forum C++
    Réponses: 3
    Dernier message: 21/04/2004, 14h44

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