IdentifiantMot de passe
Loading...
Mot de passe oubli� ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les r�ponses en temps r�el, voter pour les messages, poser vos propres questions et recevoir la newsletter

Visual C++ Discussion :

fstream => bug avec Visual c++ 2005 Express Edition ?


Sujet :

Visual C++

Mode arborescent

Message pr�c�dent Message pr�c�dent   Message suivant Message suivant
  1. #1
    Futur Membre du Club
    Inscrit en
    Avril 2007
    Messages
    4
    D�tails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 4
    Par d�faut fstream => bug avec Visual c++ 2005 Express Edition ?
    Bonjour,

    j'utilise:
    - Windows XP SP2
    - Visual c++ 2005 Express Edition SP1

    Mon programme fonctionne parfaitement quand j'utilise: g++ 3.4.4.
    (Autant sous linux que sous windows)

    Le programme parcours le fichier et annalyse le texte.
    J'ai commenc� avec une lecture caract�re par caract�re et je constate que de temps � autre, j'ai besoin de lire des lignes.
    �a ne pose pas de probl�me sur de tr�s petit fichier ( < 4'096 caract�res)

    Maintenant que mon parser est quasi fini, je constate que j'ai un soucis de temps en temps au moment o� je dois revenir en arri�re sur des fichiers plus grand que 4'096 caract�res.


    Ce qui se passe:
    avec le debugger, j'ai pu constater que le fichier est parcourus par bloque de 4'096 caract�res.
    Le programme d�passe se bloque de 4'096 en appelant la fonction get() ou getline().
    Ensuite le bug survient au moment o� le programme doit revenir sur ces pas. J'utilise unget() plusieurs fois dans une boucle for (En raison d'un autre bug, voir rem ci-dessous).
    A ce moment le pointeur doit se perdre car je n'arrive plus � lire de caract�res.


    A) Donc est-ce que c'est possible de modifier le nombre de caract�res charg� ?
    (J'ai observ� avec le debugger en me pla�ant sur pointeur de type fstream puis j'ai parcourus les �l�ments suivants /+ _Filebuffer /+ _Myfile /+ _bufsize = 4096

    B) Est-ce qu'il est possible d'indiquer lorsque l'on ouvre le fichier qu'il soit totallement charg� en m�moire ? (fichier toujours plus petit que 10Mo)

    C) Est-ce qu'il y a qqch � modifier ou indiquer sous Visual C++ pour utiliser correctement la classe fstream ?


    REM:
    Ouvrir le fichier:
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    	string thefile = "nom du fichier";
    	fstream * pOpenedFile;
    	pOpenedFile = new fstream(thefile.c_str());
    lire un caract�re:
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    	char readChar;
    	pOpenedFile->get(readChar);
    lire une ligne:
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    	string strLine;
    	getline(*pOpenedFile,strLine);
    retour en arri�re:
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    	for(unsigned int i=0; i <= (strLine.length() - found ); i++)
    	{
    		pOpenedFile->unget();
    	}

    Si j'utilise pas les fonctions tellg() et seekg() c'est que les pointeurs retourn� n'ont aucun sens lors que les fins de lignes sont signal�es par Line Feed ( 0x0A ou '\n' )
    (Un autre bug sous Visual C++ 2005 enfin, j'en suis pas certain.)

    Et comme je souhaite pouvoir annalyser des fichiers texte au format UNIX ou Dos, je ne me limite pas au fin de ligne: Carriage Return et Line Feed ( 0x0D 0x0A ou "\r\n" ) donc, je n'ai pas utilis� ces 2 fonctions (tellg et seekg).

    Voir: http://forums.microsoft.com/MSDN/Sho...08912&SiteID=1
    (Message concernant ce probl�me.)

    PS:
    Si vous avez des conseilles pour annalyser (parser) un fichier texte, je suis preneur. Mais, je ne pense pas pouvoir les mettre tout de suite en pratique car je souhaite �viter de devoir r��crire la moiti� de mon code pour les mettre en pratique.


    PS2:
    S'il vous manque des infos, n'h�sitez pas � me l'indiquer.
    Fichiers attach�s Fichiers attach�s

Discussions similaires

  1. service windows avec Visual Basic 2005 Express
    Par horzy dans le forum VB.NET
    R�ponses: 1
    Dernier message: 29/05/2007, 22h58
  2. Compilation avec Visual C++ 2005 Express pour avoir un module python
    Par Freyja dans le forum D�ploiement/Installation
    R�ponses: 6
    Dernier message: 13/07/2006, 12h12
  3. [D�butant] Linker avec Visual C++ 2005 Express
    Par EL0807 dans le forum VC++ .NET
    R�ponses: 2
    Dernier message: 03/04/2006, 16h24
  4. DLL avec Visual C++ 2005 Express
    Par Jloox dans le forum MFC
    R�ponses: 5
    Dernier message: 09/03/2006, 18h24

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo