Ecrire un fichier texte, sans rajout d'octets...

Résolu
benjiiim94 Messages postés 96 Date d'inscription vendredi 17 décembre 2004 Statut Membre Dernière intervention 13 juillet 2007 - 7 juil. 2006 à 18:57
cs_coq Messages postés 6349 Date d'inscription samedi 1 juin 2002 Statut Membre Dernière intervention 2 août 2014 - 10 juil. 2006 à 18:34
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

apacheswiss Messages postés 154 Date d'inscription mercredi 13 octobre 2004 Statut Membre Dernière intervention 22 août 2007
7 juil. 2006 à 19:00
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
3
cs_coq Messages postés 6349 Date d'inscription samedi 1 juin 2002 Statut Membre Dernière intervention 2 août 2014 101
10 juil. 2006 à 18:26
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
*/
3
Lutinore Messages postés 3246 Date d'inscription lundi 25 avril 2005 Statut Membre Dernière intervention 27 octobre 2012 41
8 juil. 2006 à 01:56
Salut, effectivement... essaye avec Encoding.ASCIIou Encoding.UTF8 pour une plage de caractères plus étendue.
0
benjiiim94 Messages postés 96 Date d'inscription vendredi 17 décembre 2004 Statut Membre Dernière intervention 13 juillet 2007
8 juil. 2006 à 15:42
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 !
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_coq Messages postés 6349 Date d'inscription samedi 1 juin 2002 Statut Membre Dernière intervention 2 août 2014 101
10 juil. 2006 à 16:58
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#
*/
0
benjiiim94 Messages postés 96 Date d'inscription vendredi 17 décembre 2004 Statut Membre Dernière intervention 13 juillet 2007
10 juil. 2006 à 18:06
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
0
benjiiim94 Messages postés 96 Date d'inscription vendredi 17 décembre 2004 Statut Membre Dernière intervention 13 juillet 2007
10 juil. 2006 à 18:30
Bien chef merci !
0
cs_coq Messages postés 6349 Date d'inscription samedi 1 juin 2002 Statut Membre Dernière intervention 2 août 2014 101
10 juil. 2006 à 18:34
De rien :-)

/*
coq
MVP Visual C#
CoqBlog
*/
0
Rejoignez-nous