Probléme avec fin de ligne dans une chaîne de caractére récupérée à partir de St [Résolu]

Signaler
Messages postés
15
Date d'inscription
mercredi 8 octobre 2003
Statut
Membre
Dernière intervention
22 août 2005
-
Messages postés
15
Date d'inscription
mercredi 8 octobre 2003
Statut
Membre
Dernière intervention
22 août 2005
-
Salut,
Mon probléme c'est que je suis en train de récupérer un "string" à partir d'un StreamReader avec la méthode ReadLine() et je veux connaitre le marqueur de fin de cette chaîne(un '\n' ou '\r').

9 réponses

Messages postés
15
Date d'inscription
mercredi 8 octobre 2003
Statut
Membre
Dernière intervention
22 août 2005

Merci à tous j'ai trouvé comment contourner le probléme.
Messages postés
103
Date d'inscription
mardi 9 novembre 2004
Statut
Membre
Dernière intervention
10 septembre 2007
3
Hello,



Tu peux utiliser la méthode IndexOf() qui te retourne la position d'un caractere dans une chaine de caractères.



Exemple: string machaine = "salut";

int position = machaine.IndexOf('a');



Ici, position vaut 1 (le premier caractere a pour valeur 0). Si le
caractère n'est pas trouvé, la méthode IndexOf() te renvoie -1.



En espérant avoir bien compris ta question ...
Messages postés
15
Date d'inscription
mercredi 8 octobre 2003
Statut
Membre
Dernière intervention
22 août 2005

Merci pour la réponse mais le probléme c'est que ma chaîne une fois récupérée du StreamReader ne contient plus de '\n' ou '\r' et cette information est necessaire pour moi.
Messages postés
805
Date d'inscription
jeudi 22 mai 2003
Statut
Membre
Dernière intervention
30 octobre 2010

mais c'est normal, car tu utilise ReadLine(), lire une ligne, et dans une ligne, il ya pas de retour a la ligne

YaoYao !!
1 + 1 = 10
Messages postés
15
Date d'inscription
mercredi 8 octobre 2003
Statut
Membre
Dernière intervention
22 août 2005

Je sais trés bien qu'il n'y a pas de retour à la ligne dans une ligne. Mais ce que je veux c'est récupérer la ligne et le caractére qui marqué la fin de la ligne dans le fichier. Il y'a une solution c'est de lire caractére par caractére avec Read() mais ça ne m'interesse(probléme d'optimisation).

J'espére au moins que tu as compris cette fois.

YaoYao!!
1+1 = 11
Messages postés
3246
Date d'inscription
lundi 25 avril 2005
Statut
Modérateur
Dernière intervention
27 octobre 2012
32
Salut, c'est mieux avec StreamReader.ReadBlock( ... ) !?
Messages postés
3246
Date d'inscription
lundi 25 avril 2005
Statut
Modérateur
Dernière intervention
27 octobre 2012
32
Ou un ReadLine( ) suivi d'un Peek( ) !?
Messages postés
15
Date d'inscription
mercredi 8 octobre 2003
Statut
Membre
Dernière intervention
22 août 2005

Pour ReadBlock(....) ce n'est pas trés interessant car je n'ai une taille fixe de bloque à lire. Quant à Readline() suivi d'un Peek() ça ne sert aussi à rien car Peek() récupére le premier caractére de la ligne suivante. Le fameu caractére de fin de ligne est consommé par le précedent ReadLine().
Messages postés
3246
Date d'inscription
lundi 25 avril 2005
Statut
Modérateur
Dernière intervention
27 octobre 2012
32
Ouaip effectivement ReadLine consomme le newline, Tu peux te contenter de le lire qu'une fois avec Read( ), non ? Les performances sont peut être meilleures si tu augmentes la taille du buffer ou avec un BufferedStream, Je ne sais pas pourquoi tu as besoin du newline, mais si c'est pour le "réinjecter" dans un texte tu peux utiliser Environment.NewLine.