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

conversion ASCII



  1. #1
    Benoist85

    conversion ASCII


    ------

    Bonjour à tous

    voila j'ai un tous un fichier codé en ASCII et je dois le convertir en Décimal ou Hexadécimal.

    Connaiteriez vous un programme ou un logidciel qui ferai cela pour tout un texte car effectivement j'ai des tables mais j'ai plus de 1000 caractères à convertir.

    merci beaucoup

    Benoist35

    -----

  2. Publicité
  3. #2
    cricri

    Re : conversion ASCII

    tu as un fichier texte comprenant du texte et tu veux recuperer le code hexa c est bien ca ??

    abc -> 97 98 99

  4. #3
    cricri

    Re : conversion ASCII

    ce programme tourne sous vb ou vba dans excell word
    Sub a()
    Dim st As String
    Dim st2 As String
    Open "c:\a.txt" For Binary As #1
    Open "c:\b.txt" For Binary As #2

    st = " "
    While Not EOF(1)
    Get 1, , st ' lit un caractere
    st2 = Asc(st) 'convertie
    Put 2, , st2 ' ecrit
    Wend
    Close
    End Sub

  5. #4
    EspritTordu

    Re : conversion ASCII

    J'ai trouvé sur internet ce lien, si cela peut être utile :
    http://www-physics.mps.ohio-state.edu/~prewett/hexedit/
    C'est pour lire le fichier en ASCII, en Hexadécimal.

    Mais je ne comprends pas très bien la question. S'agit-il de lire les octets du fichier en ascii ou en hexadécimal, ou bien est-ce que vous souhaitez plutôt convertir une chaîne de caractères (ASCII) représentant un nombre en un format numérique du genre hexadécimal, integer (entier court), long (entier long)... ?

  6. A voir en vidéo sur Futura
  7. #5
    jepoirrier

    Post Re : conversion ASCII

    Bonsoir,

    Si tu as un compilateur sous la main, voici le code en C++ (assez basique mais fonctionnel) :

    Code:
    // Ouvre un fichier texte ASCII et en affiche le contenu en decimal
    // Reponse a http://forums.futura-sciences.com/thread35724.html
    // (c) jepoirrier@gmail.com 2005 ; under GNU GPL for this simple code
    
    #include <iostream>
    #include <fstream>
    
    using namespace std;
    
    int main()
    {
    	char filename[80];
    	char ch;
    
    	cout << "Nom du fichier : ";
    	cin >> filename;
    
    	ifstream fin(filename);
    	cout << "Contenu du fichier : " << endl;
    
    	while(fin.get(ch))
    	{
    		printf("%d", ch);
    		cout << " ";
    	}
    
    	cout << endl << "*** Fin du fichier ***" << endl;
    
    	fin.close();
    	return 0;
    }
    Là, je suis sous Linux (si tu es aussi sous Linux, l'archive contenant le code et l'executable est ici) et je n'arrive pas à cross-compiler pour DOS/Windows.

  8. #6
    jepoirrier

    Re : conversion ASCII


  9. Publicité
  10. #7
    coucou747

    Re : conversion ASCII

    c'est clair que les programmes C sont super pratiques...

    printf("%d", ch);

    pour l'avoir en hexa, je crois qu'on fait comme ça

    printf("%h", ch);

    ps, dans le programme précédent, le C et le C++ ont étés mélangés, c'est pas forcément super. Pas de vérification d'erreur d'ouvertures ou de fermetures, voir de lectures...
    on peu polémiquer longtemps comme ça, et est-ce que le monde tourneras plus rond ?

  11. #8
    jepoirrier

    Re : conversion ASCII

    Bonjour,
    J'ai écrit que le programme était "basique mais fonctionnel". Je ne prétends pas avoir écrit un programme révolutionnaire et respectueux de toutes les normes établies. Par contre, je ne vois pas où le C et le C++ ont été mélangés (à part le fait que le C++ dérive du C) et, comme j'apprends le C++, je suis intéressé de savoir comment le ré-écrire uniquement en C++.

    (c'est le printf qui dérange, c'est çà ? Mais comment afficher un ascii en (hexa)décimal sans printf ?)
    Dernière modification par jepoirrier ; 04/06/2005 à 16h49.

  12. #9
    coucou747

    Re : conversion ASCII

    la, t'avais pas affiché le char en hexa, mais simplement en décimal, pour ne pas afficher le caractère et l'afficher en décimale, tu fais :
    cout << car+0;

    et sinon, t'as une solution qui doit être plus simple (et plus propre), mais je ne l'ai pas testé :
    cout << (int)car;
    on peu polémiquer longtemps comme ça, et est-ce que le monde tourneras plus rond ?

  13. #10
    g_h

    Re : conversion ASCII

    Attention avec la conversion en int, je ne sais pas si en C++ le type par défaut pour le char est signed, mais en C c'est indéfini.
    Donc il vaudrait mieux insérer des signed ou des unsigned pour lever l'indétermination.

    Sinon pour l'hexa avec printf, il me semble que c'est %x (et %X pour avoir des majuscules). Mais c'est possible qu'il y ait plusieurs possibilités.

    En C++ il existe un moyen pour afficher directement de l'hexa avec cout.
    Un truc du genre cout << hex << ch; (à chercher, je ne connais pas trop le C++)

  14. #11
    coucou747

    Re : conversion ASCII

    C ou C++, par défaut, c'est signed !
    on peu polémiquer longtemps comme ça, et est-ce que le monde tourneras plus rond ?

  15. #12
    g_h

    Re : conversion ASCII

    Non, en C, c'est indéfini pour les char :
    [...] A plain char may be represented as either signed or unsigned depending upon the implementation [...]
    cf. ISO 9899:1999 ; §6.2.5

    Je viens de vérifier, c'est pareil en C++.

  16. Publicité

Discussions similaires

  1. fichier ascii en binaire
    Par vin_100 dans le forum Logiciel - Software - Open Source
    Réponses: 10
    Dernier message: 19/10/2007, 21h50
  2. Stéréogramme en ASCII
    Par arnaud 47 dans le forum Logiciel - Software - Open Source
    Réponses: 0
    Dernier message: 02/06/2007, 10h00
  3. ascii to décimal
    Par KHEOPS1982 dans le forum Logiciel - Software - Open Source
    Réponses: 2
    Dernier message: 30/05/2006, 21h35
  4. Joystick maison ( code ASCII)
    Par Bourkanieche dans le forum Électronique
    Réponses: 4
    Dernier message: 25/03/2004, 18h02
  5. Caractère ASCII sur Trame RS232
    Par JP dans le forum Électronique
    Réponses: 6
    Dernier message: 04/09/2003, 00h38
Découvrez nos comparatifs produits sur l'informatique et les technologies.