OVH Cloud OVH Cloud

Lecture de données

8 réponses
Avatar
ousta
Bonsoir, jai un petit probleme avec la lecture de données.

Jai un StreamReader sr.

Lorsque je lui demande
sr.ReadToEnd();

qui devrai lire juska la fin si je comprend bien tout? il se crashe
lamentablement et semble partir en boucle infinie

lorsque je lui dis

while (sr.Peek() >= 0) MessageBox.Show(sr.ReadLine());
Il ne lit pas tout pourtant Peek devrai aller juska la fin du fichier non?

Lorsque je lui demande

while((str =sr.ReadLine()) != null)

MessageBox.Show(str);

Alors il maffiche tout mais termine en boucle infinie.

Je ne maitrise pas bien les flux d'entrees sorties sous windows mais
j'aurais aimé savoir si le probleme venait de la methode que jutilisai ou
dailleurs.

PS: je precise tout de meme que il s'agit de reponses d'un serveur pop.

Merci de m'aiguiller.
--
"Je n'ai pas peur des ordinateurs.
J'ai peur qu'ils viennent à nous manquer"
Isaac Asimov

8 réponses

Avatar
Lebrun Thomas
JE crois que pour tout ce qui concerne les flux venant de serveur POP, SMTP,
etc....

la méthode de lecteure est différente : par exemple, pour un serveur POP,
une ligne se termine tjrs par rn


Si cela peut t'aider...


A+

Thomas LEBRUN.


"ousta" wrote:

Bonsoir, jai un petit probleme avec la lecture de données.

Jai un StreamReader sr.

Lorsque je lui demande
sr.ReadToEnd();

qui devrai lire juska la fin si je comprend bien tout? il se crashe
lamentablement et semble partir en boucle infinie

lorsque je lui dis

while (sr.Peek() >= 0) MessageBox.Show(sr.ReadLine());
Il ne lit pas tout pourtant Peek devrai aller juska la fin du fichier non?

Lorsque je lui demande

while((str =sr.ReadLine()) != null)

MessageBox.Show(str);

Alors il maffiche tout mais termine en boucle infinie.

Je ne maitrise pas bien les flux d'entrees sorties sous windows mais
j'aurais aimé savoir si le probleme venait de la methode que jutilisai ou
dailleurs.

PS: je precise tout de meme que il s'agit de reponses d'un serveur pop.

Merci de m'aiguiller.
--
"Je n'ai pas peur des ordinateurs.
J'ai peur qu'ils viennent à nous manquer"
Isaac Asimov





Avatar
Bismark Prods
Pourquoi ne pas utiliser le NetworkStream ? Si c'est pour un dialogue avec
POP(3)

Bismark

"ousta" a écrit dans le message de
news:
Bonsoir, jai un petit probleme avec la lecture de données.

Jai un StreamReader sr.

Lorsque je lui demande
sr.ReadToEnd();

qui devrai lire juska la fin si je comprend bien tout? il se crashe
lamentablement et semble partir en boucle infinie

lorsque je lui dis

while (sr.Peek() >= 0) MessageBox.Show(sr.ReadLine());
Il ne lit pas tout pourtant Peek devrai aller juska la fin du fichier


non?

Lorsque je lui demande

while((str =sr.ReadLine()) != null)

MessageBox.Show(str);

Alors il maffiche tout mais termine en boucle infinie.

Je ne maitrise pas bien les flux d'entrees sorties sous windows mais
j'aurais aimé savoir si le probleme venait de la methode que jutilisai ou
dailleurs.

PS: je precise tout de meme que il s'agit de reponses d'un serveur pop.

Merci de m'aiguiller.
--
"Je n'ai pas peur des ordinateurs.
J'ai peur qu'ils viennent à nous manquer"
Isaac Asimov




Avatar
Sébastien Curutchet
Le mieux est que tu utilises NetworkStream.Read(byte[] buffer, int start,
int length).

Sur http://drq.developpez.com/codessources/SMTP/ tu trouveras le code source
d'une lib SMTP. Tu peux te baser dessus pour faire la version POP : elle
contient la communication avec le serveur. Ca peut te donner des idées.


--
MVP VB (répond aussi aux question .NET et C# : faut bien se reconvertir ;) )
Membre de la communauté dotnet.developpez.com


"ousta" a écrit dans le message de
news:
Bonsoir, jai un petit probleme avec la lecture de données.

Jai un StreamReader sr.

Lorsque je lui demande
sr.ReadToEnd();

qui devrai lire juska la fin si je comprend bien tout? il se crashe
lamentablement et semble partir en boucle infinie

lorsque je lui dis

while (sr.Peek() >= 0) MessageBox.Show(sr.ReadLine());
Il ne lit pas tout pourtant Peek devrai aller juska la fin du fichier


non?

Lorsque je lui demande

while((str =sr.ReadLine()) != null)

MessageBox.Show(str);

Alors il maffiche tout mais termine en boucle infinie.

Je ne maitrise pas bien les flux d'entrees sorties sous windows mais
j'aurais aimé savoir si le probleme venait de la methode que jutilisai ou
dailleurs.

PS: je precise tout de meme que il s'agit de reponses d'un serveur pop.

Merci de m'aiguiller.
--
"Je n'ai pas peur des ordinateurs.
J'ai peur qu'ils viennent à nous manquer"
Isaac Asimov




Avatar
David Scime
Le lien ne fonctionne pas..

"Sébastien Curutchet" a écrit dans le
message de news:
Le mieux est que tu utilises NetworkStream.Read(byte[] buffer, int start,
int length).

Sur http://drq.developpez.com/codessources/SMTP/ tu trouveras le code


source
d'une lib SMTP. Tu peux te baser dessus pour faire la version POP : elle
contient la communication avec le serveur. Ca peut te donner des idées.


--
MVP VB (répond aussi aux question .NET et C# : faut bien se reconvertir


;) )
Membre de la communauté dotnet.developpez.com


"ousta" a écrit dans le message de
news:
> Bonsoir, jai un petit probleme avec la lecture de données.
>
> Jai un StreamReader sr.
>
> Lorsque je lui demande
> sr.ReadToEnd();
>
> qui devrai lire juska la fin si je comprend bien tout? il se crashe
> lamentablement et semble partir en boucle infinie
>
> lorsque je lui dis
>
> while (sr.Peek() >= 0) MessageBox.Show(sr.ReadLine());
> Il ne lit pas tout pourtant Peek devrai aller juska la fin du fichier
non?
>
> Lorsque je lui demande
>
> while((str =sr.ReadLine()) != null)
>
> MessageBox.Show(str);
>
> Alors il maffiche tout mais termine en boucle infinie.
>
> Je ne maitrise pas bien les flux d'entrees sorties sous windows mais
> j'aurais aimé savoir si le probleme venait de la methode que jutilisai


ou
> dailleurs.
>
> PS: je precise tout de meme que il s'agit de reponses d'un serveur pop.
>
> Merci de m'aiguiller.
> --
> "Je n'ai pas peur des ordinateurs.
> J'ai peur qu'ils viennent à nous manquer"
> Isaac Asimov
>
>




Avatar
David Scime
voici le bon lien..
http://dotnet.developpez.com/codessources/SMTP/


"Sébastien Curutchet" a écrit dans le
message de news:
Le mieux est que tu utilises NetworkStream.Read(byte[] buffer, int start,
int length).

Sur http://drq.developpez.com/codessources/SMTP/ tu trouveras le code


source
d'une lib SMTP. Tu peux te baser dessus pour faire la version POP : elle
contient la communication avec le serveur. Ca peut te donner des idées.


--
MVP VB (répond aussi aux question .NET et C# : faut bien se reconvertir


;) )
Membre de la communauté dotnet.developpez.com


"ousta" a écrit dans le message de
news:
> Bonsoir, jai un petit probleme avec la lecture de données.
>
> Jai un StreamReader sr.
>
> Lorsque je lui demande
> sr.ReadToEnd();
>
> qui devrai lire juska la fin si je comprend bien tout? il se crashe
> lamentablement et semble partir en boucle infinie
>
> lorsque je lui dis
>
> while (sr.Peek() >= 0) MessageBox.Show(sr.ReadLine());
> Il ne lit pas tout pourtant Peek devrai aller juska la fin du fichier
non?
>
> Lorsque je lui demande
>
> while((str =sr.ReadLine()) != null)
>
> MessageBox.Show(str);
>
> Alors il maffiche tout mais termine en boucle infinie.
>
> Je ne maitrise pas bien les flux d'entrees sorties sous windows mais
> j'aurais aimé savoir si le probleme venait de la methode que jutilisai


ou
> dailleurs.
>
> PS: je precise tout de meme que il s'agit de reponses d'un serveur pop.
>
> Merci de m'aiguiller.
> --
> "Je n'ai pas peur des ordinateurs.
> J'ai peur qu'ils viennent à nous manquer"
> Isaac Asimov
>
>




Avatar
Sébastien Curutchet
Oups dsl :/

--
Sébastien Curutchet
MVP VB (répond aussi aux question .NET et C# : faut bien se reconvertir ;) )
Membre de la communauté dotnet.developpez.com

"David Scime" a écrit dans le message de
news:
voici le bon lien..
http://dotnet.developpez.com/codessources/SMTP/


"Sébastien Curutchet" a écrit dans le
message de news:
> Le mieux est que tu utilises NetworkStream.Read(byte[] buffer, int


start,
> int length).
>
> Sur http://drq.developpez.com/codessources/SMTP/ tu trouveras le code
source
> d'une lib SMTP. Tu peux te baser dessus pour faire la version POP : elle
> contient la communication avec le serveur. Ca peut te donner des idées.
>
>
> --
> MVP VB (répond aussi aux question .NET et C# : faut bien se reconvertir
;) )
> Membre de la communauté dotnet.developpez.com
>
>
> "ousta" a écrit dans le message de
> news:
> > Bonsoir, jai un petit probleme avec la lecture de données.
> >
> > Jai un StreamReader sr.
> >
> > Lorsque je lui demande
> > sr.ReadToEnd();
> >
> > qui devrai lire juska la fin si je comprend bien tout? il se crashe
> > lamentablement et semble partir en boucle infinie
> >
> > lorsque je lui dis
> >
> > while (sr.Peek() >= 0) MessageBox.Show(sr.ReadLine());
> > Il ne lit pas tout pourtant Peek devrai aller juska la fin du fichier
> non?
> >
> > Lorsque je lui demande
> >
> > while((str =sr.ReadLine()) != null)
> >
> > MessageBox.Show(str);
> >
> > Alors il maffiche tout mais termine en boucle infinie.
> >
> > Je ne maitrise pas bien les flux d'entrees sorties sous windows mais
> > j'aurais aimé savoir si le probleme venait de la methode que jutilisai
ou
> > dailleurs.
> >
> > PS: je precise tout de meme que il s'agit de reponses d'un serveur


pop.
> >
> > Merci de m'aiguiller.
> > --
> > "Je n'ai pas peur des ordinateurs.
> > J'ai peur qu'ils viennent à nous manquer"
> > Isaac Asimov
> >
> >
>
>




Avatar
Mitsuru FURUTA [Ms]
Bonjour,

NetworkStream me semble en effet mieux adapté.
Lorsque tu lis ou écris un flux de données, il faut connaitre les
caractéristiques de la source de données (CanRead/CanWrite/CanSeek, etc ).
Dans le cas d'un flux réseau TCP, tu ne peux pas tout lire d'un coup car tu
ne sais pas combien de données sont déjà arrivées. il faut utiliser
DataAvailable pour le tester. Ensuite dans le cas de POP, tu ne connais pas
la longueur à l'avance, il faut parser les caractéristiques du protocole POP
à la recherche des caractères de fin de flux.

Bonne continuation,

Mitsuru FURUTA
[Microsoft FRANCE]


"Bismark Prods" <xanaia#nospam#@urbanet.ch> wrote in message
news:
Pourquoi ne pas utiliser le NetworkStream ? Si c'est pour un dialogue avec
POP(3)

Bismark

"ousta" a écrit dans le message de
news:
> Bonsoir, jai un petit probleme avec la lecture de données.
>
> Jai un StreamReader sr.
>
> Lorsque je lui demande
> sr.ReadToEnd();
>
> qui devrai lire juska la fin si je comprend bien tout? il se crashe
> lamentablement et semble partir en boucle infinie
>
> lorsque je lui dis
>
> while (sr.Peek() >= 0) MessageBox.Show(sr.ReadLine());
> Il ne lit pas tout pourtant Peek devrai aller juska la fin du fichier
non?
>
> Lorsque je lui demande
>
> while((str =sr.ReadLine()) != null)
>
> MessageBox.Show(str);
>
> Alors il maffiche tout mais termine en boucle infinie.
>
> Je ne maitrise pas bien les flux d'entrees sorties sous windows mais
> j'aurais aimé savoir si le probleme venait de la methode que jutilisai


ou
> dailleurs.
>
> PS: je precise tout de meme que il s'agit de reponses d'un serveur pop.
>
> Merci de m'aiguiller.
> --
> "Je n'ai pas peur des ordinateurs.
> J'ai peur qu'ils viennent à nous manquer"
> Isaac Asimov
>
>




Avatar
Quentin Pouplard
ousta wrote:
Bonsoir, jai un petit probleme avec la lecture de données.

Jai un StreamReader sr.

Lorsque je lui demande
sr.ReadToEnd();



Y'a pas de fin à un stream réseau (et heureusement ;).

Jette un oeil sur http://cvs.sourceforge.net/viewcvs.py/myoe/MyOE/Net/
ça devrait t'aider...

ps: le code est GPL

--
Quentin Pouplard
http://www.sf.net/projects/myoe