01/06/2005, 10h37
|
#1 |
Date d'inscription: avril 2005
Messages: 2
| 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
|
| | Aujourd'hui
| | | | Liens sponsorisés | |
|
|
01/06/2005, 11h20
|
#2 |
Date d'inscription: juillet 2004
Messages: 914
| 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
|
| |
01/06/2005, 11h28
|
#3 |
Date d'inscription: juillet 2004
Messages: 914
| 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
|
| |
01/06/2005, 12h54
|
#4 |
Date d'inscription: janvier 2005
Messages: 1 036
| 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)... ?
|
| |
01/06/2005, 23h51
|
#5 |
Date d'inscription: août 2004
Messages: 1 123
| 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.
|
| |
02/06/2005, 10h37
|
#6 |
Date d'inscription: août 2004
Messages: 1 123
| Re : conversion ASCII |
| |
04/06/2005, 15h07
|
#7 |
Date d'inscription: janvier 2005 Localisation: loin
Messages: 207
| 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 ?
|
| |
04/06/2005, 17h45
|
#8 |
Date d'inscription: août 2004
Messages: 1 123
| 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 à 17h49.
|
| |
04/06/2005, 19h28
|
#9 |
Date d'inscription: janvier 2005 Localisation: loin
Messages: 207
| 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 ?
|
| |
04/06/2005, 20h43
|
#10 |
Date d'inscription: décembre 2004 Âge: 21
Messages: 844
| 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++)
|
| |
05/06/2005, 08h49
|
#11 |
Date d'inscription: janvier 2005 Localisation: loin
Messages: 207
| 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 ?
|
| |
06/06/2005, 00h35
|
#12 |
Date d'inscription: décembre 2004 Âge: 21
Messages: 844
| Re : conversion ASCII
Non, en C, c'est indéfini pour les char : Citation: |
[...] 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++.
|
| | |
|