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

Résolu
kikoj Messages postés 15 Date d'inscription mercredi 8 octobre 2003 Statut Membre Dernière intervention 22 août 2005 - 29 juil. 2005 à 10:55
kikoj Messages postés 15 Date d'inscription mercredi 8 octobre 2003 Statut Membre Dernière intervention 22 août 2005 - 29 juil. 2005 à 14:16
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

kikoj Messages postés 15 Date d'inscription mercredi 8 octobre 2003 Statut Membre Dernière intervention 22 août 2005
29 juil. 2005 à 14:16
Merci à tous j'ai trouvé comment contourner le probléme.
3
cispo Messages postés 103 Date d'inscription mardi 9 novembre 2004 Statut Membre Dernière intervention 10 septembre 2007 3
29 juil. 2005 à 11:11
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 ...
0
kikoj Messages postés 15 Date d'inscription mercredi 8 octobre 2003 Statut Membre Dernière intervention 22 août 2005
29 juil. 2005 à 11:27
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.
0
Fildomen Messages postés 805 Date d'inscription jeudi 22 mai 2003 Statut Membre Dernière intervention 30 octobre 2010
29 juil. 2005 à 12:09
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
0

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

Posez votre question
kikoj Messages postés 15 Date d'inscription mercredi 8 octobre 2003 Statut Membre Dernière intervention 22 août 2005
29 juil. 2005 à 12:23
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
0
Lutinore Messages postés 3246 Date d'inscription lundi 25 avril 2005 Statut Membre Dernière intervention 27 octobre 2012 41
29 juil. 2005 à 12:39
Salut, c'est mieux avec StreamReader.ReadBlock( ... ) !?
0
Lutinore Messages postés 3246 Date d'inscription lundi 25 avril 2005 Statut Membre Dernière intervention 27 octobre 2012 41
29 juil. 2005 à 12:50
Ou un ReadLine( ) suivi d'un Peek( ) !?
0
kikoj Messages postés 15 Date d'inscription mercredi 8 octobre 2003 Statut Membre Dernière intervention 22 août 2005
29 juil. 2005 à 13:06
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().
0
Lutinore Messages postés 3246 Date d'inscription lundi 25 avril 2005 Statut Membre Dernière intervention 27 octobre 2012 41
29 juil. 2005 à 14:12
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.
0