Binaire non Binaire

Signaler
Messages postés
38
Date d'inscription
vendredi 7 mai 2004
Statut
Membre
Dernière intervention
4 octobre 2007
-
Messages postés
38
Date d'inscription
vendredi 7 mai 2004
Statut
Membre
Dernière intervention
4 octobre 2007
-
Bonjour

Je suis en train de créer un bout de code pour écrire en binaire dans un fichier. Et à ma grande surprise, il n'écrit pas en binaire mais en texte claire dans le fichier.
Voilà mon code

FileStream Graveur = new FileStream(txt_connect.Text + ".lsn", FileMode.OpenOrCreate,FileAccess.Write,FileShare.Write,10000,true);
BinaryWriter Ecrire = new BinaryWriter(Graveur);
string Chaine;
Chaine = txt_hote.Text + "|" + txt_port.Text + "|" + txt_user.Text + "|" + txt_password.Text + "|" + txt_chemin.Text + "|";
Ecrire.Write(Chaine);
Ecrire.Close();
Graveur.Close();

Pouvez-vous éclaire ma lanterne ?

Merci d'avance

7 réponses

Messages postés
9
Date d'inscription
jeudi 1 avril 2004
Statut
Membre
Dernière intervention
1 octobre 2007

Le contenu du fichier est lisible puisque l'on ecrit une chaine de caracteres selon l'encodage par defaut (UTF-8 soit 1 caractere = 1 octet).

La classe BinaryWriter permet d'ecrire une valeur dans un flux:
- Si la valeur est de type texte, du texte est ecrit suivant l'encodage defini.
- Si la valeur est de type int (nombre entier coder sur 32 bits soit 4 octets), c'est 4 octets qui sont ecrits.

Avec Visual Studio, il est possible d'afficher au format binaire n'importe quel fichier:
- Menu Fichier -> Ouvrir -> Fichier
- Selectionner le fichier et cliquer sur ouvrir avec (autre choix du bouton ouvrir)
- Choisir Editeur binaire

Oui c'est moi, là-bas dans le noir!
Messages postés
38
Date d'inscription
vendredi 7 mai 2004
Statut
Membre
Dernière intervention
4 octobre 2007

Merci

Mais as-tu une idée pour écrire en binaire du texte ??
Messages postés
91
Date d'inscription
samedi 28 février 2004
Statut
Membre
Dernière intervention
25 janvier 2007

Salut, essaie tous simplement de convertir tes chaine en byte,
puis creer un fichier avec l'extention que tu veux.
et enfin ecrire tes bytes direcetement dans le fichier;
exp :

string texte=TextBox.text;
string path=@"c:\toto.xxx"//ton chemin pr creer ton fichier
byte[] conv=Encoding.ASCII.GetByte(texte);
TextWrite txt= new StrealWriter(path);
txt.Wrile(conv);

A bientot
NO TIME TO WASTE
Messages postés
91
Date d'inscription
samedi 28 février 2004
Statut
Membre
Dernière intervention
25 janvier 2007

n'oublie pas le

txt.Close();
:=)
NO TIME TO WASTE
Messages postés
38
Date d'inscription
vendredi 7 mai 2004
Statut
Membre
Dernière intervention
4 octobre 2007

Salut

j'ai donc essayé.
Je suis pas sur que cela fonctionne!!

car dans mon fichier il écrit

System.Byte[]

et rien d'autre

est-ce normal ??

Merci de ton aide

Cédric
Messages postés
91
Date d'inscription
samedi 28 février 2004
Statut
Membre
Dernière intervention
25 janvier 2007

wé, désolé, c'est tout a fait normale, car il te retourne le nom d'objet

essaie avec un

conv.GetValue(long [] index)

je te filerai le code si ça marche pas !!!
A bientot
NO TIME TO WASTE
Messages postés
38
Date d'inscription
vendredi 7 mai 2004
Statut
Membre
Dernière intervention
4 octobre 2007

Salut

désolé mais ca ne marche pas mieux!!
si tu as un code, je veux bien

Merci de ton aide

Cédric