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

conversion ASCII



  1. #1
    invite3abb5cbf

    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. #2
    invitedebe236f

    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

  3. #3
    invitedebe236f

    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

  4. #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)... ?

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

    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.

  7. #6
    invite24357dd0

    Re : conversion ASCII


  8. #7
    invite42dac78c

    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...

  9. #8
    invite24357dd0

    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 ?)

  10. #9
    invite42dac78c

    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;

  11. #10
    invite97a92052

    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++)

  12. #11
    invite42dac78c

    Re : conversion ASCII

    C ou C++, par défaut, c'est signed !

  13. #12
    invite97a92052

    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++.

Discussions similaires

  1. fichier ascii en binaire
    Par invite58549cb8 dans le forum Logiciel - Software - Open Source
    Réponses: 10
    Dernier message: 19/10/2007, 22h50
  2. Stéréogramme en ASCII
    Par invitee58f5773 dans le forum Logiciel - Software - Open Source
    Réponses: 0
    Dernier message: 02/06/2007, 11h00
  3. ascii to décimal
    Par invite3c59dc04 dans le forum Logiciel - Software - Open Source
    Réponses: 2
    Dernier message: 30/05/2006, 22h35
  4. Joystick maison ( code ASCII)
    Par invite4aaa7617 dans le forum Électronique
    Réponses: 4
    Dernier message: 25/03/2004, 19h02
  5. Caractère ASCII sur Trame RS232
    Par JP dans le forum Électronique
    Réponses: 6
    Dernier message: 04/09/2003, 01h38
Dans la rubrique Tech de Futura, découvrez nos comparatifs produits sur l'informatique et les technologies : imprimantes laser couleur, casques audio, chaises gamer...