Bonjour voici un bout de code que j'ai simplifié au max pour isoler mon problème:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
 
#include <QtCore/QCoreApplication>  
#include <QFile>  
#include <QTextStream>  
int main(int argc, char *argv[])  
{  
    if (argc > 1){  
        qint32 lineCounter = 0;  
        QFile myfile(argv[1]);  
        if(myfile.exists()){  
            if(myfile.open(QIODevice::ReadOnly)){  
                    QTextStream stream(&myfile);  
                    while(!stream.atEnd()){  
                        qint64 position = stream.pos();  
                        QString line = stream.readLine();  
                        lineCounter++;  
                    }  
            }  
        }  
         return lineCounter;  
    }  
    return -1;  
}
Le but est de parser un fichier texte ligne par ligne ( ici pour simplifier je me contente de les compter)
Ca marche tant que le fichier que je passe en paramètre ne fait pas plus d'environ 16500 octets.
Mais dés que le fichier est trop gros ça boucle sans fin ( stream.pos() renvoi -1, atEnd() ne renvoie jamais true, readLine() renvoi les lignes du debut du fichier).

Configuration : QT4.6.4 opensource-vs2008 ( dll en release ), windows XP, env: Qt creator ou visual studio

En utilisant directement le QFile ça à l'air de marcher, mais j'aimerais savoir pourquoi le QTextStream ne fonctionne pas, ou si c'est mon cerveau.
Merci
JB