[Appli Windows][c#] problème de longueur de chaine avec StreamReader

Signaler
Messages postés
19
Date d'inscription
lundi 3 mai 2004
Statut
Membre
Dernière intervention
13 mai 2004
-
Messages postés
19
Date d'inscription
lundi 3 mai 2004
Statut
Membre
Dernière intervention
13 mai 2004
-
Voila j'ai un fichier txt, chaque ligne fait 266 Charactères, j'ai ouvert le fichier avec ultraEdit pour vérifier.

Quand je l'ouvre en utilisant StreamReader et que je regarde la longueur de chaque ligne en utilisant length, et bien la je varie entre 263 et 265 charactères suivant la ligne.
Ceux qui ne m'aide pas à récupérer les données dont j'ai besoin :-(

Voila j'ai peut-être fait une erreur quelque part, si quelqu'un peut m'éclairer?

mon code:
StreamWriter sw = File.CreateText(monFichierSortie);
StreamReader sr = File.OpenText(monFichier);
string record;
while ((record=sr.ReadLine())!=null)
{
int longueurChaine = article.Length;
sw.WriteLine(longueurChaine);
}

et donc dans mon fichier texte de sortie ca varie entre 253 à 255.

Merci d'avance

7 réponses

Messages postés
19
Date d'inscription
lundi 3 mai 2004
Statut
Membre
Dernière intervention
13 mai 2004

je pense avoir trouvé
en fait dans le fichier texte j'ai des charactères accentué ce qui fait qu'il les supprime et du coup j'ai un décalage.
si quelqu'un connait une solution pour ce genre de charactère.
Car sinon je ne vois que de la "bidouille" pour arriver à un format propre.
Messages postés
6351
Date d'inscription
samedi 1 juin 2002
Statut
Modérateur
Dernière intervention
2 août 2014
84
tu dois pouvoir preciser le type d'encodage dans les differentes surcharges de CreateText et OpenText

Cocoricoooooooo !!!!
Messages postés
19
Date d'inscription
lundi 3 mai 2004
Statut
Membre
Dernière intervention
13 mai 2004

j'ai pas trouvé :-(
du coup je teste les valeurs que je recup et décale en cas de besoin.
Messages postés
6351
Date d'inscription
samedi 1 juin 2002
Statut
Modérateur
Dernière intervention
2 août 2014
84
effectivement je viens de ragarder il n'y a pas de surcharge
essaie en créant directement tes StreamReader et StreamWriter

Cocoricoooooooo !!!!
Messages postés
6351
Date d'inscription
samedi 1 juin 2002
Statut
Modérateur
Dernière intervention
2 août 2014
84
cool.txt contenant juste : aàeé

StreamReader sr = File.OpenText(@"C:\cool.txt");
string cool = sr.ReadLine();
MessageBox.Show(cool);
sr.Close();

donne ae

StreamReader sr = new StreamReader(@"C:\cool.txt", Encoding.UTF7);
string cool = sr.ReadLine();
MessageBox.Show(cool);
sr.Close();

donne aàeé

en fait je pense que par defaut quand on ne precise pas d'encoding c'est l'UTF8 qui est utilisé.

Cocoricoooooooo !!!!
Messages postés
19
Date d'inscription
lundi 3 mai 2004
Statut
Membre
Dernière intervention
13 mai 2004

je vais essayer merci
Messages postés
19
Date d'inscription
lundi 3 mai 2004
Statut
Membre
Dernière intervention
13 mai 2004

C'est bizare,
ca marche à moitié je dirais,
je vais voir ca de plus près, il me prends mettenant les charactère pourri que j'avais mais il y a un autre truc qui le mets dedans, je vais chercher.