Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1475 connectés 

  FORUM HardWare.fr
  Programmation
  C++

  [Visual C] Recuperation de fichier par CInternetFile ... a l'aide : (

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[Visual C] Recuperation de fichier par CInternetFile ... a l'aide : (

n°223135
disq8
Posté le 03-10-2002 à 14:01:57  profilanswer
 

J utilise CInternetFile pour recuperer un fichier sur le net
Puis je souhaite analyser son contenu (je stock donc mon instance de CInternetFile dans ma classe afin de pouvoir le reutiliser -> plusieurs lectures ...)
 
J arrive bien a recuperer mon fichier, j arrive egalement a le lire, mais seulement une seule fois.
Si je tente de le relire une 2eme fois, c est comme si le fichier etait vide.
Probablement parceque je pointe sur la fin du fichier apres l avoir lu une premiere fois.
 
J essaye donc de me repositionner au debut, mais lorsque je fais (juste avant la lecture) un :
 
   file->SeekToBegin();
   j obtien --> "erreur d'application interne"
 
Quelqu un a une idee ?
 
voila un exemple simple (donc un peu stupide) resumant ce que je veux faire :
 

Code :
  1. CInternetSession session;
  2. CInternetFile* file = NULL;
  3. try
  4. {
  5.    file = (CInternetFile*) session.OpenURL("http://www.google.com" );
  6.    if (file)   
  7.    {
  8.     CString line;
  9. CString strFile_ = "";
  10. while (file->ReadString(line))
  11. { strFile_ += line;
  12. }
  13. // j insere ici l instruction pour repositionner mon pointeur sur le debut du fichier
  14. strFile_ = "";
  15. while (file->ReadString(line))
  16. { strFile_ += line;
  17. }
  18.     file->Close();
  19.     delete file;
  20.    }
  21.    else AfxMessageBox(":-(" );
  22. }
  23. catch(...)
  24. {
  25.  AfxMessageBox("Error Session" );
  26. }


Message édité par disq8 le 03-10-2002 à 15:47:50
mood
Publicité
Posté le 03-10-2002 à 14:01:57  profilanswer
 

n°223171
BifaceMcLe​OD
The HighGlandeur
Posté le 03-10-2002 à 15:56:23  profilanswer
 

Je ne suis pas spécialiste, mais ce comportement ne me surprend pas trop : ton fichier est lu comme un fichier séquentiel. Donc, il est impossible de se (re-)positionner à un endroit particulier du fichier. Tu ne peux faire que lire les caractères non ecnore lus.
 
Moralité, si tu veux parcourir ton fichier plusieurs fois, tu dois d'abord stocker son contenu dans un buffer mémoire quand tu le lis. Ensuite, ben... tu parcours ton buffer autant de fois que tu veux.  :sarcastic:

n°223187
disq8
Posté le 03-10-2002 à 16:42:08  profilanswer
 

Pourquoi pas, cependant les methodes existent (SeekToBegin, Seek ...) il doit donc exister un mode de lecture adapté, a moins que ce soit seulement du a l'heritage de la classe mere CFile  :??:
 
Pas d'autres idees ?
 
Sinon, j vais contourner le probleme en faisant une copie en local du fichier.
 
Merci de ton aide bifacemcleod  :hello: .

n°223290
disq8
Posté le 03-10-2002 à 20:48:03  profilanswer
 

up  :cry:


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C++

  [Visual C] Recuperation de fichier par CInternetFile ... a l'aide : (

 

Sujets relatifs
Ouverture d'un fichier propertiesprogrammation d'impression avec visual basic 6
[Visual C++]Desactiver ou controler les boutons systemes d une fenetrecréation d'un fichier
[VC++] qui a deja utiliser visual c+ de microsftExtraire un nom de fichier d'une chaine de caractère
Besoin d'aide en php, explication et eclairissement[Delphi] Lecture de fichier
Manipulation des dates en visual C++Récupération d'un SELECT MULTIPLE
Plus de sujets relatifs à : [Visual C] Recuperation de fichier par CInternetFile ... a l'aide : (


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR