kineton
Messages postés7Date d'inscriptiondimanche 27 avril 2003StatutMembreDernière intervention14 février 2005
-
9 févr. 2005 à 20:25
cbeyls
Messages postés31Date d'inscriptionsamedi 22 janvier 2005StatutMembreDernière intervention13 mars 2005
-
12 févr. 2005 à 17:34
Bonjour à tous,
Je suis développeur en vc++ 6.0 et je commence juste à programmer en C# avec VS.Net.
Je cherche à lire un fichier binaire qui contient 2 types d'informations :
* 1 partie d'entête avec des données que je souhaite convertir en chaine de caractère
* 1 partie de données avec des entiers codés sur 1 octets
J'ai un problème car je ne parviens pas à convertir les données lues de l'entête en chaine de caractère (pour faire ensuite uen vérification de format).
kineton
Messages postés7Date d'inscriptiondimanche 27 avril 2003StatutMembreDernière intervention14 février 2005 11 févr. 2005 à 19:43
Voila ma fonction fonctionne bien et pour aider d'autres débutants, je vous la livre.
Elle permet de lire une partie d'un fichier binaire (en l'occurance en entete de 80 octets qui m'intéresse) et de la transformer en chaine de caractère. Pour la démo, j'affiche ensuite un messagebox avec cette chaine de caractère.
Voila, longue vie à l'hirondelle qui fait le printemps !!!!!!!!!
***************************************************************
Faire un using System.Text;
puis :
public
int TraduireFichierBinaire(
string chemin_fichier)
Athalus
Messages postés131Date d'inscriptionjeudi 17 juin 2004StatutMembreDernière intervention 7 juillet 2005 10 févr. 2005 à 20:05
J'ai pas VS.net sous la main mais une fois que tu as lu tes 80 bytes
avec
buffer_lecture = LectureStreamReader.ReadBytes(80);
essaye de voir avec la méthode Convert.Tostring
result = Convert.Tostring(buffer_lecture) je sais pas si ca marche pas pu tester ...mais faut peut etre creuser autour
Athalus
Messages postés131Date d'inscriptionjeudi 17 juin 2004StatutMembreDernière intervention 7 juillet 2005 10 févr. 2005 à 21:05
Ha oui je me rapelle j'avais eu aussi ce problème.
Mais vu que je suis chez moi j'ai pas mon code sous la main, je te met ca en ligne demain matin, mais il me semble qu'avec les Convert c'etait la bonne voie
cbeyls
Messages postés31Date d'inscriptionsamedi 22 janvier 2005StatutMembreDernière intervention13 mars 20051 12 févr. 2005 à 17:32
Travailler byte par byte, ce n'est pas très clean tout ça, et
probablement pas très performant non plus étant donné que tu fais un
cast à chaque fois. Pourquoi ne pas utiliser un StreamReader? C'est
fait pour ça! Il suffit de déterminer d'abord l'encodage, ici il semble
que ce soit ANSI/ASCII, bref, un byte = un caractère, comme en C. et
les return 0 à la fin, c'est ce qu'on faisait à l'époque du C, ce qu'on
fait avec les langages modernes quand il y a une erreur c'est lever une
exception !
Ce qui donne:
public void TraduireFichierBinaire(string chemin_fichier)