Ecrire un fichier texte, sans rajout d'octets... [Résolu]

Signaler
Messages postés
96
Date d'inscription
vendredi 17 décembre 2004
Statut
Membre
Dernière intervention
13 juillet 2007
-
Messages postés
6351
Date d'inscription
samedi 1 juin 2002
Statut
Modérateur
Dernière intervention
2 août 2014
-
Bonjour !

J'ai un problème tout bête mais surprenant.

Lorsque j'utilise un streamwriter pour créer un fichier texte tout simple, avec ce code par exemple :

System.IO.StreamWriter sw = new System.IO.StreamWriter("c:\\montexte",false,Encoding.Unicode);
sw.WriteLine("voici la ligne");
sw.Close();

Le fichier généré ne semble pas être un fichier texte "normal". En effet, si je prend tout le contenu de ce fichier, et que je le met dans un fichier texte que j'ai créé à la main dans l'explorateur windows, le premier (généré) a une taille plus importante que le second (après copier coller)...
Le problème, c'est que derrière le fichier doit être traiter par un autre logiciel, qui remarque cette différence et ne veut pas ouvrir le fichier...

Y a t'il un autre moyen d'écrire dans un fichier texte ?

Merci beaucoup

PS : désolé si ce n'est pas le bon thème, j'ai beaucoup réfléchi avant de choisir ! :p

8 réponses

Messages postés
154
Date d'inscription
mercredi 13 octobre 2004
Statut
Membre
Dernière intervention
22 août 2007

celà doit venir du type d'encodage....
System.IO.StreamWriter sw = new System.IO.StreamWriter("c:\\montexte",false,Encoding.Unicode);

Pas sûre... mais bon
Messages postés
6351
Date d'inscription
samedi 1 juin 2002
Statut
Modérateur
Dernière intervention
2 août 2014
86
En l'initialisant toi même :-)

Encoding monEncoding = Encoding.GetEncoding(1252);
ou
Encoding monEncoding = Encoding.GetEncoding("windows-1252");
ou
Encoding monEncoding = Encoding.GetEncoding("iso-8859-1");

/*
coq
MVP Visual C#
CoqBlog
*/
Messages postés
3246
Date d'inscription
lundi 25 avril 2005
Statut
Modérateur
Dernière intervention
27 octobre 2012
36
Salut, effectivement... essaye avec Encoding.ASCIIou Encoding.UTF8 pour une plage de caractères plus étendue.
Messages postés
96
Date d'inscription
vendredi 17 décembre 2004
Statut
Membre
Dernière intervention
13 juillet 2007

Merci de vos réponses.

J'avais déjà essayé de changer d'encodage, mais je n'arrivais pas à être totalement satisfait...
En ascii, le fichier fait exactement la même taille, mais ne garde pas les accents...
En UTF8, le fichier fait quelques octets supplémentaires...donc ne passe pas, mais garde les accents
J'ai essayé en tatonnant :
l'UTF7  : même taille, mais pas d'accents
UTF32, c'est pas la peine, ca fait des trucs bizarre... :p
BigEndianUnicode : accent, mais taille supèrieure
Unicode : accent, mais taille supèrieure

Et enfin, j'ai essayé Default, comme je pensai que Default prendrait l'un des types sus-cités, je n'y  croyais pas, mais en fait, c'est passé !

Default : accet, taille semblabe ! :p

Décidemment, j'y comprends rien à ces encodages...

Merci à vous deux !
Messages postés
6351
Date d'inscription
samedi 1 juin 2002
Statut
Modérateur
Dernière intervention
2 août 2014
86
Salut,

Encoding.Default te retourne un Encoding correspondant au réglage actuel du système (windows-1252 (iso-8859-1) dans ton cas je pense), donc forcément tu obtient la même chose que dans ton bloc note.

/*
coq
MVP Visual C#
*/
Messages postés
96
Date d'inscription
vendredi 17 décembre 2004
Statut
Membre
Dernière intervention
13 juillet 2007

Merci de cette précision, je vais en profiter pour te poser une dernière question pour assouvir ma soif de conaissance de cette fin d'après midi :

Comment on fait pour régler la sensibilité des outils sur Paint.net ???!!!??? A non, c'est bon, celle là j'ai trouvé la semaine dernière, malgré que j'utilise paint.net depuis de longs mois... ! :p

Plus serieusement, si jamais l'encodage du système surlequel tournait l'application n'était pas windows-1252 (iso-8859-1), comment aurais-je fais pour lui dire d'encoder avec cette "méthode" vu qu'elle n'est pas dans Encoding ?

Merci
++
Ben
Messages postés
96
Date d'inscription
vendredi 17 décembre 2004
Statut
Membre
Dernière intervention
13 juillet 2007

Bien chef merci !
Messages postés
6351
Date d'inscription
samedi 1 juin 2002
Statut
Modérateur
Dernière intervention
2 août 2014
86
De rien :-)

/*
coq
MVP Visual C#
CoqBlog
*/