Lire un TStream, contenu, entête d'une news...

Lineath Messages postés 8 Date d'inscription samedi 18 septembre 2004 Statut Membre Dernière intervention 15 août 2006 - 4 déc. 2004 à 18:32
yomane51100 Messages postés 69 Date d'inscription jeudi 8 juin 2006 Statut Membre Dernière intervention 17 septembre 2010 - 11 juil. 2007 à 14:06
Voila, en fait, mon but est d'arriver à lire le contenu d'une news postée sur un serveur.

J'arrive à me connecter sur (par exemple) news.free.fr, port 119, avec un identifiant et un mot de passe.

Ca se connecte donc, je m'identifie, je choisis un 'group' (proxad.free.adsl en l'occurence), je choisis le corps d'une news parmis toutes celles du group, et je récupère son contenu dans un TStream (ben... on peut pas faire autrement...)

J'aimerai en fait reussir à lire ce flux, pour le mettre soit dans un fichier, soit dans un richedit ou un memo, mais je ne vois pas comment y parvenir...

Si quelqun avait la solution...je suis prenant! Merci d'avance!!! :D

PS : J'utilise le composant "NNTPClient" d'ICS de François Piette...

4 réponses

florenth Messages postés 1023 Date d'inscription dimanche 1 août 2004 Statut Membre Dernière intervention 17 août 2008 3
4 déc. 2004 à 20:41
Bonjour,

Il faut d'abord qu'une premiere fois, tu l'enregistre sur le disque pour pouvoir étudier sa structure et, ensuite, tu récupere tout cela par le biais des fonctions Read() et ReadBuffer().

Mais, pour sauvegarder tu dois utiliser un TMemoryStream ou un TFileStream :
procedure X;
var
  S : TStream;
  Fs : TFileStream;
begin
Fs.CopyFrom(Stream,0)  // 0 pour tout copier
Fs.SaveToFile('C:\\fichier.xxx');

Et n'oublie pas de liberer tes flux ...

-----------------------

Pour ensuite recuperer tes infos, tu peux utiliser un parser.
Va voir ici pour avoir plus d'infos.

@ ++
Florent

Si tu ne te plantes pas ......
tu ne poussera jamais
0
Lineath Messages postés 8 Date d'inscription samedi 18 septembre 2004 Statut Membre Dernière intervention 15 août 2006
4 déc. 2004 à 21:00
Mmmmh, petit problème, je dois vraiment pas être doué ^^, mais SaveToFile n'est pas une procédure reconnue? On me dit de la déclarer...

Merci quand même pour cette première réponse :)
0
florenth Messages postés 1023 Date d'inscription dimanche 1 août 2004 Statut Membre Dernière intervention 17 août 2008 3
4 déc. 2004 à 21:32
Comme je te le disais , SaveToFile est une procedure dans TFileStream. Tu dois donc copier le contenu de ton stream dans un TFileStream pour pouvoir le sauvegarder.

Regarde l'exemple que je t'ai donné:
- S represente ton Stream que tu recupere avec ton NNTPClient.
- Fs represente un TFileStream qui sera créé et libéré (logique) et qui servira à sauvegarder ton Stream avec l'extension de ton choix.
- CopyFrom(Stream,0) copie ton Stream dans Fs.
- SaveToFile le sauve dans le chemin désiré.

Par contre il y a une erreur dans le code que j'ai donné : il faut evidemment remplacer Stream par S.

@ ++
Florent

Si tu ne te plantes pas ......
tu ne poussera jamais
0
yomane51100 Messages postés 69 Date d'inscription jeudi 8 juin 2006 Statut Membre Dernière intervention 17 septembre 2010
11 juil. 2007 à 14:06
bonjour a tous est toutes ges un petit probleme moi j utilise se code pour me connecter au service de news de free
<hr size="2" width="100%" />idnntp1.Host := 'news.free.fr';
idnntp1.Username := 'mon nom';
idnntp1.Password:='mon mots de pass';
idnntp1.Connect();
<hr size="2" width="100%" />le probleme il sa connecte bient mes je nes pa la liste de groupe de news .free.fr
je voudrait utiliser une listbox mes je ne connes pa de code pour sa

merci a tous est toutes
0
Rejoignez-nous